Linux下Web压力测试工具

xiaohai 2020-10-17 21:45:48 4599人围观 标签: Linux 
简介做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的服务器。它可以分布在多个客户机,并能够模拟成千上万的虚拟用户数并发。