概述
压力测试是软件性能测试的一部分。
在同一时间段内,向系统发送预期数量的请求,测试在不同压力下的效率状况,以及系统可以承受的压力情况。并分析系统并发性能和可靠性,测试系统的不同负载下响应效率和吞吐量,评价系统的抗压能力,发现系统性能的瓶颈。
通俗一点就是测试一下在线软件服务器在不同负载下测试系统的运行状况(并发量,吞吐量及服务质量),查漏补缺。
压力测试的方法
压测流程
压测计划
压测用例
- 明确测试目的
- 准备测试环境
- 确定测试数据
- 确定测试运行程序(工具或脚本)
- 明确测试结果
监控对象
- 网络状况
- 服务器注解响应情况
- cpu,内存,缓存等使用情况
... ...
监控结果
- 服务器连接情况
- 服务器响应情况
- 服务器流量监控
- 服务器响应结果统计
... ...
http_load
工具介绍
基于linux平台的一种性能测工具。以并行复用的方式运行,用以测试web服务器的吞吐量与负载,测试web页面的性能。
优点
1.基于命令行,简单、易于上手
2.小巧轻便,解压缩后不到100k
3.开源,免费
缺点
1.仅适用于web页面的性能测试,不适用于访问数据库
2.测试结果分析有限
3.平台依赖linux
安装
进入工作目录:
cd /usr/local/
- 下载安装包:
wget -c http://soft.kwx.gd/tools/http_load-12mar2006.tar.gz
- 解压
tar xvf http_load-12mar2006.tar.gz
- 进入http_load 目录:
cd http_load-12mar2006
- 编译和安装
make && make install
基本用法
http_load -p 并发访问进程数 -s 访问时间 需要访问的URL文件
参数其实可以自由组合,参数之间的选择并没有什么限制。
比如你写成http_load -parallel 5 -seconds 300 urllist.txt也是可以的。我们把参数给大家简单说明一下。
-parallel 简写-p :含义是并发的用户进程数。
-fetches 简写-f :含义是总计的访问次数
-rate 简写-r :含义是每秒的访问频率
-seconds 简写-s :含义是总计的访问时间
准备URL文件:urllist.txt,文件格式是每行一个URL,URL最好超过50-100个测试效果比较好。
结果分析
-
294 fetches, 30 max parallel, 3.83835e+06 bytes, in 60.0026 seconds
说明在上面的测试中运行了294个请求,最大的并发进程数是30,总计传输的数据是3.83835e+06bytes,运行的时间是60.0026秒 -
13055.6 mean bytes/connection
说明每一连接平均传输的数据量3.83835e+06/294=13055.6 -
4.89979 fetches/sec, 63969.7 bytes/sec
说明每秒的响应请求为4.89979,每秒传递的数据为63969.7 bytes/sec -
msecs/connect: 312.009 mean, 1319.57 max, 209.994 min
说明每连接的平均响应时间是312.009 msecs,最大的响应时间1319.57 msecs,最小的响应时间209.994 msecs - msecs/first-response: 1191.01 mean, 10212.4 max, 220.78 min
-
HTTP response codes:
code 200 -- 127
code 502 -- 166
说明打开响应页面的类型
如果403的类型过多,那可能要注意是否系统遇到了瓶颈。
特殊说明:
测试结果中主要的指标是 fetches/sec、msecs/connect 这个选项,即服务器每秒能够响应的查询次数。
用这个指标来衡量性能。似乎比 apache的ab准确率要高一些,也更有说服力一些。
Qpt-每秒响应用户数和response time,每连接响应用户时间。
测试的结果主要也是看这两个值。
当然仅有这两个指标并不能完成对性能的分析,我们*还需要对服务器的cpu、men进行分析,才能得出结论。
其他工具
webbench
webbench是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。
ab
ab是apache自带的一款功能强大的测试工具。
安装了apache一般就自带了。
Siege
一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。
... ...
补充
http_load测试https接口
https://blog.csdn.net/pbymw8iwm/article/details/6668983