这是一个出单接口压力测试的小例子,了解一下压力测试最最基础的基础。出单接口是用来保险出单的,不需要在UI界面下一步下一步的出单,接口一调数据入库完事~~~。再啰嗦一句接口应该都知道是什么吧?一个完整的系统可以大概分为3个部分:前端,后台,数据库。前端传数据给后台,后台将数据入库并将数据库返回数据传给前端做页面展示。接口就在后台部分。接口接收前端的参数即请求报文,响应报文为返回数据和提示信息。
测试步骤:
(1) lib/ext下添加插件JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar
(2) 测试计划添加线程(用户)jp@gc - stepping thread group
(3) 添加http请求
(4) 添加聚合报告
(5) 添加查看结果树
(6) 添加CSV数据文件设置
JMeter 3.1 地址:https://pan.baidu.com/s/1wPgbwS1dzWdsleS11wJ-Dw 提取码:oe5t
JMeterPlugins-Extras.jar 地址:https://pan.baidu.com/s/1H2tBWGV2FClyFnKWUP2_IA 提取码:9sh6
JMeterPlugins-Standard.jar 地址:https://pan.baidu.com/s/1vPVXty2ZyiAr68v1wWss0w 提取码:q95o
ServerAgent-2.2.3 地址:https://pan.baidu.com/s/1WnQFFsw7DMF6lYN87s-Eng 提取码:4wry
-
案例:
l 测试目的
200并发下:
- 出单接口响应时间1s内
- 出单成功率100%
l 执行方案
- 测试工具:Jmeter
- 执行时间:工作日白天(a.白天应急能力强 b.获取保险公司真实的压测数据)
- 场景:从100并发开始,每60s加压50并发,直至达到目的并发数(中途发现问题随时停掉)并维持5min,之后保持每60s停止50并发的速率关闭
- 结果:tps、响应时间、并发数的关系图表(硬件占用数据无法监控,需保险公司关注)
-
操作步骤
1、安装插件
将JMeterPlugins-Extras-1.4.0.zip解压,找到lib/ext文件夹里的JMeterPlugins-Extras.jar放到JMeter安装目录的lib/ext里面,
同理将JMeterPlugins-Standard-1.4.0.zip解压,lib/ext下的JMeterPlugins-Standard.jar放到JMeter安装目录的lib/ext里面即可。如下图
插件安装好之后运行JMeter,可以看到插件已经安装好了
2、使用jp@gc - Stepping Thread Group插件
右键测试计划->添加->Threads(Users)->jp@gc - Stepping Thread Group
控制面板介绍
l This group will start Max threads - 设置单台负载机,线程组启动的线程总数为Max个
l First,wait for N seconds - 启动第一个线程之前,需要等待N秒
l Then start N threads - 设置最开始时启动N个线程
l Next add N1 threads every N2 seconds, using ramp-up N3 seconds - 然后,每隔N2秒,在N3秒内启动N1个线程
l Then hold load for N seconds - 单台负载机启动的线程总数达到Max之后,持续运行N秒
l Finally,stop N1 threads ervery N2 seconds - 最后,每隔N2秒,停止N1个线程数。
最高200并发,100并发开始,0s内立即启动50个线程运行60s,达到最高并发后维持300s,之后保持每60s停止50并发的速率关闭。
设置好之后,添加刚才的出单请求,查看结果数,聚合报告,点击绿色三角号运行就可以了,最重要就是聚合报告。下图表示压测过程中,一共发送了526个请求,所有请求的平均响应时间为2.001s,95%的请求的响应时间为2.877s,99%的请求的响应时间为3.457s,错误率为0,吞吐量为3.6/sec
压测小例子完毕。这里压测响应时间为2.001s没有达到压测目标1s内。如果在实际压测过程中还产生了其他问题以及都有什么解决办法,欢迎大家留言讨论!!!