背景:
最近在做一些web相关工作,就发现了webbench这个性能测试工具,非常简单易用。但是在用的过程中也是不尽如人意,于是萌生了改进的念头。
webbench是基于GPL授权协议的,我自然可以取得源码修改,然后作为webbench_pro这个项目发布。
简介:
WebBenchPro 是由webbench改进而来的一款简单易用的web性能测试工具
WebBenchPro 是依照GPL V2.0发布的
WebBenchPro 是遵循POSIX标准的C语言编写的程序
主要改动如下:
0、名字改了 –!
1、更正connect()服务器失败时,不能close()的bug
2、使用多线程代替多进程,提供更高的效率
3、自动资源限制检测和设置(线程数和打开文件数限制)
4、测试时间到达后,快速关闭套接字,不用再等待服务器响应(在WAN的情况下,这会占用很多时间)
5、加入了检测HTTP响应号的功能,这样就可以分辨HTTP是否返回了正确的信息(HTTP2XX)
6、重新组织了下代码结构,使得阅读更方便(其实全局变量什么的还是漫天飞的,以后慢慢改)
使用示范:
[dave@dave webbench_pro]$ webbench_pro webbenchpro [option]... URL -f|--force Don't wait for reply from server. -r|--reload Send reload request - Pragma: no-cache. -t|--time <sec> Run benchmark for <sec> seconds. Default 30. -p|--proxy <server:port> Use proxy server for request. -c|--clients <n> Run <n> HTTP clients at once. Default one. -9|--http09 Use HTTP/0.9 style requests. -1|--http10 Use HTTP/1.0 protocol. -2|--http11 Use HTTP/1.1 protocol. --get Use GET request method. --head Use HEAD request method. --options Use OPTIONS request method. --trace Use TRACE request method. -?|-h|--help This information. -V|--version Display program version.
[dave@dave webbench_pro]$ webbench_pro -c 10000 http://127.0.0.1/ WebBenchPro - Advanced Simple Web Benchmark 0.1 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software. Modified By Davelv 2011-11-03 Set NOFILE limit failed. Try less clients or use higher authority or set "ulimit -n -u" manualy
[root@dave webbench_pro]# webbench_pro -c 10000 -t 10 http://127.0.0.1/ WebBenchPro - Advanced Simple Web Benchmark 0.1 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software. Modified By Davelv 2011-11-03 Benchmarking: GET http://127.0.0.1/ (using HTTP/1.1) 10000 clients, running 10 sec. Speed=5105 pages/sec, 19970823 bytes/sec. Requests: 51050 ok, 0 http error, 0 failed.
项目资源:
主页 https://github.com/davelv/WebBenchPro
git git://github.com/davelv/WebBenchPro.git
代码 https://github.com/davelv/WebBenchPro/zipball/master
坐沙发,dave大人威武~
以鄙人现在的功力,还不能领会其中奥妙~
加我qq 我不能lianxupinglun
878177392
D大V5啊!
过奖了,其实,这个程序写得挺烂的。