【安装http_load】
$ wget http://acme.com/software/http_load/http_load-09Mar2016.tar.gz
#从官网下载安装包
$ tar xfz http_load-09Mar2016.tar.gz
#解压下载的安装包
$ cd http_load-09Mar2016/ $ make && sudo make install
#进到解压好的文件夹下,使用make命令进行安装
因为包小,所以很快就能安装完成。
$http_load
输入验证下是否安装成功,你应该可以看到下面的信息:
$vi urls.txt
新建存放待测url的txt文件;
每行放一条你要测试的URL地址(默认只支持HTTP),”http_load”在运行时会从中随机抽取地址访问。当然你也可以只放一条,那就是针对特定地址做压测。
注意:
1.urls.txt内不要有多余的空格、tab换行,否则会报错【./http_load: unknown protocol -】
2.urls.txt文件不要从Windows新建后再复制至Linux上,否则会因编码方式不同报错【No such file or directory】
解决方案:
用vim打开urls.txt,输入:
:set ff //回车,显示fileformat=dos 当前编码格式为dos
:set ff=unix //重新设置下文件格式
:wq //保存退出
【命令格式】
http_load <参数> <url列表文件>
“http_load”的参数主要有:
- -parallel 简写 -p: 同一时间发起的并发连接数
- -rate 简写 -r: 每秒开启的并发连接数
-parallel或-rate必须且只能有一个
- -fetches 简写 -f :总计的访问次数
- -seconds 简写 -s :总计的访问时间
-fetches或-seconds必须且只能有一个
- -proxy host:port: 指定需经过的代理地址和端口
- timeout secs: 连接闲置后多久超时,默认60秒
- -verbose: 控制台输出详细信息
示例:
- 起50个并发,运行10秒
$ http_load -p 50 -s 10 urls.txt
结果:
60119 fetches, 50 max parallel, 1.8471e+09 bytes, in 10.0032 seconds 30724 mean bytes/connection 6009.95 fetches/sec, 1.8465e+08 bytes/sec msecs/connect: 0.336331 mean, 12.37 max, 0.021 min msecs/first-response: 4.59145 mean, 26.663 max, 0.089 min HTTP response codes: code 200 -- 60119
每行的含义: 1. 共访问了60119次,50个最大并发,获取了18亿字节的数据,用时10.0032秒 1. 每次访问平均获取30724字节 1. 每秒6009.95次访问,每秒1.8亿字节数据 1. 平均每次访问0.336331毫秒,最大12.37毫秒,最小0.021毫秒 1. 首次响应平均4.59145毫秒,最大26.663毫秒,最小0.089毫秒 1. HTTP响应代码,60119次200,说明所有访问都成功了
- 每秒访问1000次(http_load上限每秒1000),总共访问10000次
http_load -r 1000 -f 10000 urls.txt
这个测试方式可以用来压每秒最大并发数。
备注:执行命令要在urls.txt所在目录下执行