Linux下Web压力测试工具
简介做web开发,如果需要高并发就离不开压力测试,本文主要介绍几种Linux中使用的压力测试工具。
一、Webbench
这个使用就最为简单的,比Apache自带的ab压力测试要好使一点
1、下载
wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
2、安装
tar zxf webbench-1.5.tar.gz && cd webbench-1.5
make && make install
3、常用参数
- -t 测试时间
- -c 并发连接数
4、测试
模拟1000并发数,测试时间300秒。
webbench -c 1000 -t 300 http://www.baidu.com
二、Http_load
单一进程运行,以并行复用的方式运行,用以测试web服务器的吞吐量与负载。一般简单的压力测试可以使用它
1、下载
wget http://www.acme.com/software/http_load/http_load-14aug2014.tar.gz
2、安装
tar zxvf http_load-12mar2006.tar.gz && cd http_load-12mar2006
make && make install
3、常用参数
- -p 并发访问进程数
- -f 总的访问次数
- -r 每秒的访问频率
- -s 总的访问时间
4、举个例子
http_load -p 100 -f 1000 url.txt
总访问1000次,并发100
http_load -r 100 -s 300 url.txt
持续300秒,每秒100次访问
三、ab
ApacheBench安装apache后就可以使用,不过测试效果一般
1、安装
centos: yum install apr-util
debian: apt-get install apache2-utils
2、常用参数
- -n 请求总次数
- -c 并发请求数,不能大于-n
3、举个例子
ab -c 100 -n 1000 http://www.百度.com
并行发送100个请求,执行1000次
四、Siege
多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行
1、下载
wget http://download.joedog.org/siege/siege-3.1.0.tar.gz
2、安装
tar zxvf siege-3.1.0.tar.gz && cd siege-3.1.0/
./configure
make && make install
3、常用参数
- -i 多个url,随机访问
- -c 并发用户数
- -r 重复次数
- -t 测试时间
- -l 输出测试日志
4、举个例子
siege -c 200 -t 10 http://www.baidu.com
并发数200,持续时间10秒。
siege -c 50 -r 100 http://www.baidu.com
50个用户(每次并发量,注意不是每秒并发量) 重复100次 共产生 50 * 100 = 5000个请求
siege -c 50 -r 100 http://www.baidu.com/?name=test
50个用户 重复100次 发送GET参数
siege -c 50 -r 100 "http://www.baidu.com POST name=test" 50个用户 重复100次 发送POST参数 (注意引号)
结果说明
Transactions: 30000 hits //完成30000次处理
Availability: 100.00 % //100.00 % 成功率
Elapsed time: 68.59 secs //总共使用时间
Data transferred: 817.76 MB //共数据传输 817.76 MB
Response time: 0.04 secs //响应时间,显示网络连接的速度
Transaction rate: 437.38 trans/sec //平均每秒完成 437.38 次处理
Throughput: 11.92 MB/sec //平均每秒传送数据
Concurrency: 17.53 //实际最高并发连接数
Successful transactions: 30000 //成功处理次数
Failed transactions: 0 //失败处理次数
Longest transaction: 3.12 //每次传输所花最长时间
Shortest transaction: 0.00 //每次传输所花最短时间
五、Jmeter
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
六、Tsung
开源的多协议分布式负载测试工具,基于erlang,使用perl+gnuplot生成图表,它能用来压力测试HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和 Jabber/XMPP的服务器。它可以分布在多个客户机,并能够模拟成千上万的虚拟用户数并发。