有些时候我们只想对一些简单静态页面的进行压力/性能测试,这个时候用loadrunner或者jmeter就有些显得大材小用了。这里推荐一个工具siege。
Siege是Linux/Unix下的一个WEB系统的压力测试工具。
安装siege
1、下载最新版本的siege:
wget http://download.joedog.org/siege/siege-latest.tar.gz
2、安装解压:
tar -zxvf siege-latest.tar.gz
3、进入到解压后的目录:
./configure
make && make install
4、安装完成后,输入siege,出现这些东西,差不多就是安装完成了。

图上左边为运行是的参数,右边是对参数的说明;
使用实例:
siege -c 20 -r 3 https://www.baidu.com/
结果:

Transactions: 对服务器的访问次数。
Availability: 连接的成功率。(所有请求-失败请求) / 总请求数
Elapsed time: 所有请求耗费的时间
Data transferred: 所有请求传输的数据量,包括请求的headers和content。所以这个数值可能比server端统计的数值要大一点
Response time: 平均响应时间
Transaction rate: Transactions / Elapsed time
Throughput: 每秒平均传输的数据量
Concurrency: 平均并发的请求数
Successful transactions: 状态码为1XX,2XX,3XX的数量
Failed transactions: 状态码为4XX,5XX的数量
Longest transaction: 最耗时的请求时间
Shortest transaction: 最短单个请求时间
再来看看siege的参数吧:

-c 30 并发数30
-r 5 循环5次
-f urls.txt 制定url的文件
-d 请求无需等待 delay=0
-t 5 指定执行时间,比如-t 10s -t 1M(H)之类
-H 头部信息
-l或--log=[File] 指定测试结果的路径
# -r和-t一般不同时使用

从指定文件中读取url
siege -c 5 -r 3 -f urls.txt
我们看一下,现在我创建了一个urls.txt 文件里面放入了百度和qq的首页
使用-f 参数可以从指定的文件中读取url

如果想指定header信息:
siege -c 5 -r 3 -f urls.txt -H "Accept-Encoding:gzip"