Web压力测试-Webbench

运行在linux上的一个性能测试工具

官网:http://home.tiscali.cz/~cz210552/webbench.html

原理

webbench首先fork出多个子进程,每个子进程都循环做web访问测试。子进程把访问的结果通过pipe告诉父进程,父进程做最终的统计结果(转至百度百科)

下载

[root@walle ~]# cd /mydata/software/
[root@walle software]# wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
--2016-11-08 10:42:04--  http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
正在解析主机 home.tiscali.cz... 82.208.6.172
正在连接 home.tiscali.cz|82.208.6.172|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:7675 (7.5K) [application/x-tar]
正在保存至: “webbench-1.5.tar.gz”

100%[=====================================================================================================>] 7,675       --.-K/s   in 0s      

2016-11-08 10:42:11 (216 MB/s) - 已保存 “webbench-1.5.tar.gz” [7675/7675])

[root@walle software]#

安装

[root@walle software]# tar zxf webbench-1.5.tar.gz 
[root@walle software]# cd webbench-1.5
[root@walle webbench-1.5]# make && make install
[root@walle webbench-1.5]# which webbench
/usr/local/bin/webbench
[root@walle webbench-1.5]# webbench --help
webbench [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.
[root@walle webbench-1.5]#
## 测试
因为文档是简单使用,我们一般只用c:客户端个数 t:持续时间这个2个参数,如果不设置t参数,默认是执行30秒
进入webbench文件夹后,执行命令:webbench -c 10 [http://www.baidu.com](http://www.baidu.com/)
命令就是用10个客户端并发百度网站30秒,但是在执行的命令报错了:Invalid URL syntax - hostname don't ends with '/'.
解决办法就是在url后加个“/”
执行命令后的结果反馈
[root@walle webbench-1.5]# webbench -c 10 http://www.baidu.com/
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://www.baidu.com/
10 clients, running 30 sec.

Speed=1306 pages/min, 2254555 bytes/sec.
Requests: 653 susceed, 0 failed.
[root@walle webbench-1.5]#

说明

在上个步骤中的结论是

Speed:每分钟的处理1482个请求;每秒的处理数据量:2495637字节=604.64k/s(2495637/8/1024)=0.29M/s(2495637/8/1024/1024)

Requests:处理的请求中成功740,失败1

小结

webbench的并发是采用进程运行而非线程,是其为吃内存的一种做法,如果需要长时间进行性能测试,还是推荐用loadrunner


-------------本文结束感谢您的阅读-------------