0, https://www.cnblogs.com/TankXiao/p/4045439.html
1, ab是apachebench命令的缩写。
ab是一个httpd自带的很好用的压力测试工具,ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问
2, 如果不想安装apache但是又想使用ab命令,可以直接安装apache的工具包httpd-tools。先cd到httpd-tools的所在目录,使用如下命令安装:
yum -y install httpd-tools
查看ab是否安装成功
ab -V
用whereis查看安装在何处
whereis ab
模拟1000人同一时间访问; 其中-n代表请求数,-c代表并发数
ab -n 1000 -c 1000 http://localhost:3000/
ab -c 100 -n 1000000 -k http://127.0.0.1:8080/
参数解释:
Server Software: Apache/2.2.25 (服务器软件名称及版本信息)
Server Hostname: localhost (服务器主机名)
Server Port: 80 (服务器端口)
Document Path: /index.php (供测试的URL路径)
Document Length: 10 bytes (供测试的URL返回的文档大小)
Concurrency Level: 100 (并发数)
Time taken for tests: 0.247 seconds (压力测试消耗的总时间)
Complete requests: 1000 (压力测试的总次数)
Failed requests: 0 (失败的请求数)
Write errors: 0 (网络连接写入错误数)
Total transferred: 198000 bytes (传输的总数据量)
HTML transferred: 10000 bytes (HTML文档的总数据量)
Requests per second: 4048.34 [#/sec] (mean) (平均每秒的请求数)
Time per request: 24.701 [ms] (mean) (所有并发用户(这里是100)都请求一次的平均时间)
Time per request: 0.247 [ms] (mean, across all concurrent requests) (单个用户请求一次的平均时间)
Transfer rate: 782.78 [Kbytes/sec] received (传输速率,单位:KB/s)
Server Software: Apache/2.2.25 (服务器软件名称及版本信息) Server Hostname: localhost (服务器主机名) Server Port: 80 (服务器端口) Document Path: /index.php (供测试的URL路径) Document Length: 10 bytes (供测试的URL返回的文档大小) Concurrency Level: 100 (并发数) Time taken for tests: 0.247 seconds (压力测试消耗的总时间) Complete requests: 1000 (压力测试的总次数) Failed requests: 0 (失败的请求数) Write errors: 0 (网络连接写入错误数) Total transferred: 198000 bytes (传输的总数据量) HTML transferred: 10000 bytes (HTML文档的总数据量) Requests per second: 4048.34 [#/sec] (mean) (平均每秒的请求数) Time per request: 24.701 [ms] (mean) (所有并发用户(这里是100)都请求一次的平均时间) Time per request: 0.247 [ms] (mean, across all concurrent requests) (单个用户请求一次的平均时间) Transfer rate: 782.78 [Kbytes/sec] received (传输速率,单位:KB/s)
性能测试,难点在于你确认要测什么?是压力测试还是负载测试。这点很重要,如果这2个概念你还不清楚,请搜索。
其次在于如何确定测试策略和测试指标。也就是在性能测试中常说的测试场景。这个选择的面和方法很复杂。可以另开题在说了。这里就说步骤好了。
以上确认完毕后,再次确认测试环境,内网,无网络问题,带宽足够,线上,线下服务器配置相同,架构同样。缓存设置,等等一系列。
OK了,以上都确认完毕了,可以看看选择什么工具了。简单的AB WB JM 复杂的LR 对吧。选择方法另说。
以上都OK了,才可以按照测试策略来进行测试。这只是到了性能测试的实施阶段。
后续还有调优,复测,。。。。。。。循环100次。
所以说,你这个问题问的巨大无比,一些同学的回复 ,上来就大谈工具。都是不正确的。工具只是这里边最简单的一环。
性能测试,不是简单的一点二点就说清楚的。上边的每一条展开了说都是一部长篇,供您参考
3,
webbench是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。
下载地址:http://soft.vpser.net/test/webbench/webbench-1.5.tar.gz
这个程序更小,解压后不到50K,呵呵
安装非常简单
#tar zxvf webbench-1.5.tar.gz
#cd webbench-1.5
#make && make install
会在当前目录生成webbench可执行文件,直接可以使用了
用法:
webbench -c 并发数 -t 运行测试时间 URL
如:
webbench -c 5000 -t 120 http://www.vpser.net
每秒钟响应请求数:3230/60= X pages/sec,每秒钟传输数据量11614212 bytes/sec。
当并发1615时,已经显示有0个连接failed了,说明未负荷了。
补充:
1、压力及性能测试工作应该放到产品上线之前,而不是上线以后;
2、测试时并发应当由小逐渐加大,比如并发100时观察一下网站负载是多少、打开页面是否流畅,并发200时又是多少、网站打开缓慢时并发是多少、网站打不开时并发又是多少;
3、更详细的进行某个页面测试,如电商网站可以着重测试购物车、推广页面等,因为这些页面占整个网站访问量比重较大。
备注:webbench 做压力及性能测试时,该软件自身也会消耗CPU和内存资源,为了测试准确,建议将 webbench 安装在其他的服务器上,已达到测试数据更加精确。