本文首发于:行者 AI
jmeter 能够通过命令行生成比较完善的可视化测试数据记录报告,为了可能更准确的得出性能测试瓶颈数据,须要咱们对测试数据记录报告进行剖析。
1. 性能测试计划的设计
性能测试须要依据不同测试目标设计不同的测试计划,因为不是本文的主题这里不过多的形容。
假如咱们的测试目标为:找出零碎 API 最大吞吐量,咱们采纳依据每秒减少线程数量的形式来摸索最大吞吐量。
(1)依据我的项目业务需要编 jmeter 测试脚本。
(2)如下进行线程组设置。
1- 4 场景设置为 300 个线程,启动工夫为 600s,相当于每个场景每秒启动 0.5 个线程。
第 5 个场景设置为 600 个线程,启动工夫为 600s,相当于每秒启动 1 个线程。
综上所有场景,相当于每秒启动 3 个线程。
(3)将脚本保留并命名为 test001.jmx, 放在 D:\jmeter_script 下。
(4)为了测试后果更精确,可屡次测试求平均值,咱们抉择在深夜屡次主动运行。
2. 执行性能测试
2.1 执行性能测试的命令
jmeter -n -t D:\test0420.jmx -l D:\jmeter_script\report.csv -e -o D:\jmeter_script\report
(1)-n 设置命令行模式。
(2)-t 执行运行脚本门路。
(3)-l 指定后果文件门路。
(4)-e 设置测试实现后生成报表。
(5)-o 指定生成的报表文件夹门路,文件夹必须为空或者不存在。
2.2 如何让其主动执行测试
为了缩小外部环境的烦扰,抉择在深夜屡次压测取平均值作为后果,应用 windows 的定时工作性能定时启动 bat 脚本调用 jmeter 命令。
(1)写一个 bat 脚本
不仅仅是要运行命令,还须要保留测试报告,保留为 run.bat 放在 D 盘下。
脚本如下参考:
@echo off
if %time:~0,2% GTR 9 (SET curtime=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%) else (SET curtime=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~1,1%-%time:~3,2%)
D:
cd D:\jmeter_script
mkdir report%curtime%
cd D:\soft\apache-jmeter-5.2.1\bin
jmeter -n -t D:\jmeter_script\test001.jmx -l D:\jmeter_script\report%curtime%\report.csv -e -o D:\jmeter_script\report%curtime%\report > D:\jmeter_script\report%curtime%\OutputLog%curtime%.txt
(2)在 windows 中能够设置定时工作
win7 在控制面板 - 管理工具
win10 在电脑右键 - 治理
以下设置
名称:本人取名。
触发器配置如下:会在早晨 10 点启动,每隔两小时启动一次。
操作配置如下:会在触发时去启动 bat 文件。
3. 执行实现后的后果
3.1 执行实现后的测试报告
这里拿的之前的测试报告做示例。
3.2 测试报告剖析
(1)Apdex(利用性能指标)
Apdex 定义:性能指数 Apdex(Application Performance Index)是一个国内通用规范,Apdex 是用户对利用性能满意度的量化值。它提供了一个对立的测量和报告用户体验的办法,把最终用户的体验和利用性能作为一个残缺的指标进行对立度量。Apdex 规范从用户的角度登程,将对利用响应工夫的体现,转为用户对于利用性能的可量化范畴为 0 - 1 的满意度评估。
如何计算 Apdex:
Apdex 对利用中产生的工作进行采样,并且按其响应工夫把采样划分到相应的满意度区间,计数,再用一个公式计算 Apdex 指数:
在测试报告中 Apdex 的地位如下:
(2)最大吞吐量剖析
Throughput-Total Transactions Per Second 每秒事物总数:
OverTime-Active Threads Over Time 全程沉闷的线程数量:
OverTime-Response Times Over Time 响应工夫:
依据下面三个图得悉线程数在 152 个时,响应工夫集中在 0.2-0.6 之间,此时吞吐量达到最大在 364TPS 左右,之后再减少线程,呈现报错,且响应工夫减少,吞吐量降落。
4. 将测试论断汇总
总共测试了五次,咱们将五次测试报告别离做剖析,而后汇总到如下表格,便能够得出测试论断。