一、题目要求
1. 在自己的设备上启动order service 服务,创建http请求服务实施分组压测,并根据压测报告中的数据进行服务性能分析;
2. 请使用CSV文件导入多用户token进行压测,csv文件位置: ijmeter project]/jmx/users.Csv
3. 将Order Service服务作为事务进行压测
4. 挑战题1:请尝试将压测自动化 → 自动分组并发
5. 挑战题2:使用自动化压测脚本对order service服务进行分组压测,并分析服务性能
二、实操部分
1.在自己的设备上启动order service 服务,创建http请求服务实施分组压测,并根据压测报告中的数据进行服务性能分析;
2. 请使用CSV文件导入多用户token进行压测,csv文件位置: ijmeter project]/jmx/users.Csv
- 第一组并发线程数50,启动时间3s,持续一分钟
- 第二组并发线程数100,启动时间5s, 持续一分钟
- 第三组并发线程数150,启动时间8s,持续一分钟
- 第四组并发线程数125,启动时间7s,持续一分钟
- 第五组并发线程数130,启动时间7s,持续一分钟
- 第六组并发线程数135,启动时间7s,持续一分钟
- 第六组并发线程数140,启动时间7s,持续一分钟
** 1.在并发量为140的时候开始产生错误,并发量在135时无错误产生,去除调试取样器的吞吐量,并发吞吐量在192.2/sec,由此可知此系统能承受的最大并发量在135。
** 2.在脚本中使用csv数据文件设置,选择文件路径,设置变量名称,分隔符,忽略首行等:
然后,在脚本中引用变量
- 将Order Service服务作为事务进行压测
- 在线程组下添加逻辑控制器-事务控制器,将采样器,监视器移至事务控制器下,再次进行压测
- 第一组并发线程数100,启动时间7s, 持续一分钟
- 第二组并发线程数125,启动时间7s, 持续一分钟
- 第三组并发线程数130,启动时间5s, 持续一分钟
- 第四组并发线程数135,启动时间5s, 持续一分钟
- 第四组出现异常,可知事务最大并发数在130,事务吞吐量为48.8/sec。
- 挑战题1:请尝试将压测自动化 → 自动分组并发
-
将脚本线程数、启动时间、并发数进行参数化
-
编写batch处理文件进行no-GUI模式运行jmeter,设置好需要分组并发的并发量,启动时间,持续时间,bat文件放在jmeter bin目录下,运行bat文件就可以自动分组并发了
chcp 65001 > nul
rem 获取用户输入的值
@echo off
set durationTime=60
rem set /p durationTime=请输入持续时间:
set ramUp=5
rem set /p ramUp=请输入 ramUp 时间:
set threadslist=50 100 110 120 125 130 135 140
rem 获取当前时间的小时、分钟、秒,作为文件名的一部分
SET Time=%Date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
rem 使用 for /L 命令进行循环,这里调整参数范围和步长
for %%T in (%threadslist%) do (
rem 获取当前时间的小时、分钟、秒,作为文件名的一部分
rem 输出循环次数和用户输入的值
@echo off
echo 进入循环 %%T,%ramUp%,
rem 调用 jmeter 命令进行测试,这里假设 jmeter 可执行文件在系统路径中
call Jmeter -JthreadCount=%%T -JrampUp=%ramUp% -JdurationTime %durationTime% -n -t D:\99ck\demo.jmx -l D:\99ck\report\%%T_%Time%_demo.jtl -e -o D:\99ck\report\%%T_%Time%_report
rem 等待一段时间,这里暂定为 5 秒
timeout /t 30
)
- 执行后生成报告文件
- 挑战题2:使用自动化压测脚本对order service服务进行分组压测,并分析服务性能
分别对并发数50,100,110,120,125,130,135,140进行压测,保持1分钟,每次压测结束停止30s,查看报告如下:
100并发:
110并发:
120并发:
125并发:
130并发:
在并发数为120时,无报错,在并发数为125时开始出现错误,事务吞吐量在45.82/s.