测试驿栈-由浅入深学性能 性能测试连载 (17)-动态线程分析 HTML 测试报告
性能答疑 QQ 群:697244251
概述
jmeterGUI 模式下,性能测试的结果往往误差很大,因为 GUI 本身就会消耗一部分资源。所以我们常常用命令行去跑性能脚本,得出结果。
同时,jmeter 在命令行下还可以生成多维度的测试报告,里面包含了常用的性能指标和监听器图表。
操作步骤
jmeterGUI 模式下,性能测试的结果往往误差很大,因为 GUI 本身就会消耗一部分资源。所以我们常常用命令行去跑性能脚本,得出结果
同时,jmeter 在命令行下还可以生成多维度的测试报告,里面包含了常用的性能指标和监听器图表。
报告生成
注:如果想动态的执行线程数,我们需要在 GUI 模式下把线程组和持续时间设置成全局属性
${P(threadNum,)} 获取线程组属性
${P(cycle,)} 获取迭代次数属性
${__P(time,)} 获取时间属性
动态执行的命令如下:
jmeter -JthreadNum=100 -Jtime=180 -n -t 命令行动态设置线程数/时间(秒)
下图表示 100 线程并发运行 180s
用户登录 - 考勤 - 退出并发测试 - 结果分析
针对负载测试统计超时率,我们用命令行重新生成测试报告并分析一下结果
目标值
测试结果
- 响应时间、业务成功率、并发量 根据 JMeter 命令行生成的 html 样式测试报告结果分析,统计数据如下: 从图中初步分析 1)响应时间:登录并发测试场景中,并发量=100 时,本次以 max 采样数据统计,总体请求的平均响应时间≈1s,没有超时。登录,考勤打卡、退出系统这些过程达到预期目标
2)业务成功率:并发量=100 时,业务成功率=100%(测试脚本中设置有断言,可结合检查断言效果),符合预期目标
3)并发量:线程组设置 100 个线程,运行过程中未出现任何异常,满足 100 个线程并发操作的需求
APDEX 性能指数
Apdex:APDEX 性能指数(Application Performance Index),是一个国际通用标准,Apdex 是用户对应用程序性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,把最终的用户体验和应用性能作为一个完整的指标进行统一度量
下图表示通用用户满意度区域,0 表示没有满意的用户,1 代表所有用户都满意。实际业务系统开发过程中,1 是团队所追求的目标
对于 opms 业务,100 个用户并发登录的 APDEX 指标如下所示。从图中分析,整体 Apdex 值和单个步骤的 Apdex 值都比较大,表示用户满意度比较大,侧面说明此时服务器响应速度较快。
接下来我们将线程数修正为 200,持续时间 5 分钟,观察 html 报告
1)响应时间:登录并发测试场景中,并发量=200 时,本次以 max 采样数据统计,退出系统的业务响应时间未达到预期目标
2)业务成功率:并发量=200 时,退出系统的业务成功率=99.3%(测试脚本中设置有断言,可结合检查断言效果),不符合预期目标
3)并发量:线程组设置 200 个线程,退出系统的出现系统异常,有 12 个请求没有接收到响应。