主要功能模块

取样器:进行脚本逻辑控制
线程组:压测场景控制
监视器:监控压测运行,获取性能指标

录制回放

1.JMeter 脚本录制之前的业务步骤梳理明确
2.创建代理 HTTP(S) Test Script Recorder
3.添加线程组 Thread Group
4.添加录制控制器 添加 Recorder Controller
5.代理中的配置: 端口、包含URL过滤(include)、排除URL过滤(exclude)、存放位置
6.添加监听器中的查看结果树
7. 开启JMeter代理
8. 配置浏览器的代理
9. 在浏览器中完成业务操作
10. JMeter 中完成录制之后回放检查

调试样本 Debug Sampler

用于调试和查看设置的变量值

Debug Sampler的配置:
一般只显示JMeter 变量就够用了

image.png

提取响应的数据

请求之间有数据关联时(后面的请求需要用到前面请求的响应数据),使用后置处理器->正则表达式提取器,将响应到数据存为变量,后面请求可以直接引用

image.png

tips:可以在查看结果树中打开 JSON Path Tester来确定所匹配的JSON变量 路径的正确性

image.png

接口之间的数据传递

JMeter中引用变量的方法 ${变量名}
上面提取的token,在请求头中的引用如下

image.png

全局参数设置

将常用、多处使用、易发生变化的参数设置为全局变量,方便修改,例如 hostname, IP, 端口号, 协议 等可以定义为全局变量

image.png

image.png

在请求中使用全局变量

image.png

csv数据导入

同一个接口需要测试使用不同数据测试不同场景,可以将参数数据保存在csv文件中

image.png

配置csv数据

image.png

image.png

请求中引用设置的参数

image.png

压测实施计划

验证错误率,定义可接受范围, <= 0.1% or <= 0.5% or must = 0%
通过对比并发数与流量还有错误率的关系,找到一个最合理的系统可支撑最大并发数
可以先把并发数往大增加,压出问题之后,再逐步减少

找到系统可以支持的最合理最大并发数

聚合压测报告

1.聚合报告:比较常用的一套展示压测结果的报告
2.累计值压测数据值的展示
3.建议连续压测,如果中间有间断需要数据清零

性能指标解读

Average:平均响应时间
Median:中位数
90%Line:按响应时间排序后,前90%用户中的最大响应时间
95%Line:按响应时间排序后,前95%用户中的最大响应时间
99%Line:按响应时间排序后,前99%用户中的最大响应时间
Min:最小的请求响应时间
Max:最大的请求响应时间
Error%:错误率
Throughput:吞吐量,单次业务中,客户端与服务器端进行的数据交互总量
Received KB/sec:每秒从服务器端接收到的数据量
Sent KB/sec:每秒从客户端发送的请求的数量