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

如何在JMeter中配置1小时周期、每2分钟执行特定事务的负载测试

JMeter 1小时负载测试配置方案

核心结构与基础配置

  1. 线程组设置
    • 添加Thread Group,在「Duration (seconds)」字段填入3600,确保测试持续1小时。线程数、Ramp-Up时间根据你的负载需求自行调整。
    • 添加Once Only Controller到线程组下,将「Launch」「Login」对应的采样器(如HTTP Request)放入其中,保证每个线程仅在启动时执行一次登录流程。

每2分钟执行的事务配置(第5-8项)

要实现每2分钟触发一次「Create order item」「Fill details save」「Order history」「View order」,推荐两种实用方案:

方案1:并行分支(持续执行3、4项 + 定时执行5-8项)

适合需要同时运行常规操作和定时任务的场景:

  • 在线程组下添加Parallel Controller,拆分两个并行分支:
    • 分支1:持续执行3、4项事务
      • 添加Loop Controller(不设置循环次数,默认无限循环至测试结束),将「Click product」「Click item」采样器放入其中。可添加Constant Timer设置这两项操作的执行间隔(如1000毫秒,按需调整)。
    • 分支2:每2分钟执行5-8项事务
      • 添加Loop Controller,设置循环次数为30(1小时包含30个2分钟周期)。
      • 在该Loop Controller内,先添加Constant Timer,设置延迟时间为120000毫秒(即2分钟)。如果需要第一次启动就执行5-8项,可配合If Controller判断循环次数,第一次跳过定时器(条件:${__jexl3(${__jm__Loop Controller__idx} == 0,)})。
      • 将5-8项的采样器按顺序放入,建议用Transaction Controller包裹这四个采样器,方便后续统计整体事务指标。

方案2:串行触发(常规操作中插入定时任务)

适合按顺序执行常规操作,每2分钟插入一次5-8项的场景:

  • 在线程组下添加Loop Controller(无限循环),内部包含:
    • 「Click product」「Click item」采样器,添加Constant Timer设置执行间隔。
    • 添加If Controller,使用时间函数判断是否到达触发节点:
      • 条件填写:${__jexl3(${__time(,)} - ${__P(lastRun,0)} >= 120000,)}
      • 在5-8项事务执行完成后,添加__setProperty()函数更新lastRun为当前时间(如${__setProperty(lastRun,${__time(,)},)}),确保下一次触发间隔为2分钟。
    • 将5-8项采样器放入If Controller内,满足条件时自动执行。

额外优化建议

  • 所有独立事务尽量用Transaction Controller包裹,便于统计响应时间、成功率等核心指标。
  • 添加Summary Report「View Results Tree」等监听器,实时监控测试数据。
  • 注意定时器作用域:若定时器放在控制器下,会作用于控制器内所有采样器;若放在单个采样器前,仅对该采样器生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:57:46