You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不使用Jenkins的情况下每5分钟运行JMeter 5.x脚本持续1小时

无需Jenkins实现JMeter脚本每5分钟运行一次并持续1小时的方案

方案1:操作系统定时任务

Linux/macOS(Cron)

  1. 编辑crontab配置:crontab -e
  2. 添加定时规则,假设从10:00开始到11:00结束,每5分钟执行一次:
    */5 10 * * * /path/to/jmeter -n -t /path/to/your_test.jmx -l /path/to/result_$(date +\%Y\%m\%d\%H\%M).jtl
    
    该规则会在10点整到10点55分之间,每5分钟触发一次。若需动态控制时长,可在执行脚本中加入时间判断,超过1小时自动退出。

Windows(任务计划程序)

  1. 打开「任务计划程序」,点击「创建任务」
  2. 在「触发器」选项卡新建触发器:
    • 设置启动时间,选择「重复任务间隔」为5分钟,「持续时间」设为1小时
  3. 在「操作」选项卡新建操作:
    • 程序或脚本选择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"
  4. 保存任务即可自动执行。

方案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内置组件实现

无需外部工具,直接修改测试计划:

  1. 添加While Controller,设置条件为:
    ${__jexl3(${__counter(TRUE, run_num)} <= 12,)}
    
    该表达式会让控制器循环12次(对应1小时的执行次数)
  2. 在While Controller下,先添加你的测试逻辑(线程组、采样器等)
  3. 在测试逻辑之后添加Constant Timer,设置「线程延迟(毫秒)」为300000(即5分钟)
    • 注意:若希望第一次执行立即启动,不要把Timer放在测试逻辑前面
  4. 保存测试计划后,用命令行运行:jmeter -n -t modified_test_plan.jmx -l result.jtl

内容的提问来源于stack exchange,提问作者cHaNkx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:26:20