http_load的主页(实在是有点简陋):http://www.acme.com/software/http_load/
下载回来一个压缩包,解压出来之后连configure都不用,直接make即可生成可执行程序 http_load(视系统情况不同,可能你需要自己修改Makefile再编译)。注意:make的时候可能会有若干警告,但是可能并不影响使用生成的http_load程序,例如我在自己的机器上make,出现了这些警告:
gcc -Wall -O -c http_load.c
http_load.c: In function 'main':
http_load.c:413: warning: implicit declaration of function 'time'
http_load.c: In function 'handle_connect':
http_load.c:937: warning: pointer targets in passing argument 5 of 'getsockopt' differ in signedness
gcc -Wall -O -c timers.c
gcc -Wall -O http_load.o timers.o -s -o http_load
用http_load来测试web服务,需要在一个文件(文件名随意)中写上你需要访问的URL列表,每行写一个URL(这种做法可能有点怪?)。
http_load用法非常简单,并且虽然它是一个web服务性能测试工具,我仍然可以用它来以很小的访问频率来测试web服务,这在某些特定的情况下是很有用的。例如,我想让http_load以每秒钟5次的频率访问web服务、连续访问10分钟,这种情况已经不算压力测试了,但是我们有可能在某些时候需要实现这样的条件,http_load就可以派上用场了。
例如,执行:
./http_load -rate 1 -fetches 10 url_file
该命令表示以每秒1次的频率来访问文件url_file中定义的URL,总共访问10次。
返回的结果:
10 fetches, 2 max parallel, 5.36172e+06 bytes, in 11.4289 seconds
536172 mean bytes/connection
0.874978 fetches/sec, 469139 bytes/sec
msecs/connect: 131.448 mean, 136.034 max, 122.539 min
msecs/first-response: 132.763 mean, 138.524 max, 125.897 min
HTTP response codes:
code 200 -- 10
最后的 “200”表示客户端请求已成功。