如何在不使用Jenkins的情况下每5分钟运行JMeter 5.x脚本持续1小时
无需Jenkins实现JMeter脚本每5分钟运行一次并持续1小时的方案
方案1:操作系统定时任务
Linux/macOS(Cron)
- 编辑crontab配置:
crontab -e - 添加定时规则,假设从10:00开始到11:00结束,每5分钟执行一次:
该规则会在10点整到10点55分之间,每5分钟触发一次。若需动态控制时长,可在执行脚本中加入时间判断,超过1小时自动退出。*/5 10 * * * /path/to/jmeter -n -t /path/to/your_test.jmx -l /path/to/result_$(date +\%Y\%m\%d\%H\%M).jtl
Windows(任务计划程序)
- 打开「任务计划程序」,点击「创建任务」
- 在「触发器」选项卡新建触发器:
- 设置启动时间,选择「重复任务间隔」为5分钟,「持续时间」设为1小时
- 在「操作」选项卡新建操作:
- 程序或脚本选择JMeter的
jmeter.bat路径 - 添加参数:
-n -t "C:\path\to\your_test.jmx" -l "C:\path\to\result_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%.jtl"
- 程序或脚本选择JMeter的
- 保存任务即可自动执行。
方案2:编写脚本循环调用JMeter
Linux/macOS(Bash脚本)
创建run_jmeter.sh脚本:
#!/bin/bash # 1小时共12次执行(60/5=12) for run_count in {1..12} do echo "开始第${run_count}次测试" jmeter -n -t your_test_plan.jmx -l result_$(date +%Y%m%d_%H%M%S).jtl # 最后一次执行后无需等待 if [ $run_count -lt 12 ]; then sleep 300 fi done
给脚本加执行权限:chmod +x run_jmeter.sh,直接运行即可。
Windows(Batch脚本)
创建run_jmeter.bat脚本:
@echo off setlocal enabledelayedexpansion :: 循环12次,对应1小时每5分钟一次 for /l %%i in (1,1,12) do ( echo 开始第%%i次测试 jmeter -n -t your_test_plan.jmx -l result_!date:~0,4!!date:~5,2!!date:~8,2!_!time:~0,2!!time:~3,2!!time:~6,2!.jtl :: 最后一次执行后不等待 if %%i lss 12 ( timeout /t 300 /nobreak ) ) endlocal
双击运行脚本即可。
方案3:JMeter内置组件实现
无需外部工具,直接修改测试计划:
- 添加
While Controller,设置条件为:
该表达式会让控制器循环12次(对应1小时的执行次数)${__jexl3(${__counter(TRUE, run_num)} <= 12,)} - 在
While Controller下,先添加你的测试逻辑(线程组、采样器等) - 在测试逻辑之后添加
Constant Timer,设置「线程延迟(毫秒)」为300000(即5分钟)- 注意:若希望第一次执行立即启动,不要把Timer放在测试逻辑前面
- 保存测试计划后,用命令行运行:
jmeter -n -t modified_test_plan.jmx -l result.jtl
内容的提问来源于stack exchange,提问作者cHaNkx
相关产品推荐
相关产品推荐

