概述
jmeterGUI模式下,性能测试的结果往往误差很大,因为GUI本身就会消耗一部分资源。所以我们常常用命令行去跑性能脚本,得出结果
同时,jmeter在命令行下还可以生成多维度的测试报告,里面包含了常用的性能指标和监听器图表。
操作步骤
注:如果想动态的执行线程数,我们需要在GUI模式下把线程组和持续时间设置成全局属性
${__P(threadNum,)} 获取线程组属性
${__P(cycle,)} 获取迭代次数属性
${__P(time,)} 获取时间属性
动态执行的命令如下:
jmeter -JthreadNum=100 -Jtime=180 -n -t 命令行动态设置线程数/时间(秒)
下图表示100线程并发运行180s
用户登录-考勤-退出并发测试-结果分析
针对Jmeter(四十七)_负载测试统计超时率这篇文章,我们用命令行重新生成测试报告并分析一下结果
目标值:
测试结果:
1. 响应时间、业务成功率、并发量
根据JMeter命令行生成的html样式测试报告结果分析,统计数据如下:
从图中初步分析:
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个请求没有接收到响应。
登录和退出的Apdex值相对较低,表示用户满意度不高,侧面说明此时服务器响应速度略慢。