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

如何用JMeter 5构建符合特定规则的API负载测试计划?

JMeter 5测试计划实现方案

线程组选择:2个线程组

分开用2个线程组更合理:一个单线程处理API A的初始化重试和定时调用,另一个多线程负责API B的负载测试,逻辑清晰且互不干扰。


线程组1:单线程处理API A

核心配置

  • 线程数:1
  • Ramp-Up时间:0
  • 循环次数:永久(直到API B线程组执行完毕)

元件编排顺序(从上到下)

  1. While Controller(处理API A初始化重试)
    • 条件表达式:${__jexl3(${JMeterThread.last_sample_ok} == false,)}
    • 内部嵌套元件:
      • HTTP请求:配置API A的请求方法、URL、Headers等
      • 响应断言:勾选「响应代码」,模式匹配选「Equals」,值填200
      • 固定定时器:设置1000(可选,避免高频重试压垮服务)
  2. Constant Timer(每10分钟调用一次API A)
    • 延迟时间:600000(10分钟=600秒=600000毫秒)
  3. HTTP请求:API A(定时调用,配置和初始化的API A一致)
  4. While Controller(控制线程组持续运行)
    • 条件表达式:${__jexl3(${__threadGroupFinished(线程组2)},)}(替换线程组2为实际API B线程组的名称,判断其是否结束)

线程组2:多线程负载测试API B

核心配置

  • 线程数:根据负载需求设置(如10、50等)
  • Ramp-Up时间:按需设置(如线程数×100,让线程逐步启动)
  • 循环次数:永久(由CSV配置控制停止)

元件编排顺序(从上到下)

  1. CSV Data Set Config
    • 文件名:CSV文件的绝对/相对路径
    • 变量名称:对应CSV列的变量名(如param1,param2)
    • 分隔符:匹配CSV实际分隔符(逗号、制表符等)
    • 遇到文件结束符时:选择「停止线程」
    • 其他:按需设置是否允许带引号、文件编码等
  2. HTTP请求:API B
    • 配置请求方法、URL,在参数/请求体中引用CSV变量(如${param1})
  3. (可选)响应断言、监听器(查看结果树、聚合报告等)

关键补充说明

  1. 线程组执行顺序:在测试计划的「线程组行为」中,设置「运行线程组顺序」为「按顺序运行」,确保线程组1先完成API A的初始化重试,再启动线程组2。
  2. 线程组结束判断:如果没有安装jmeter-plugins-functions插件,可改用全局变量实现:在线程组2的最后添加BeanShell后置处理器,写入props.put("apiBFinished", "true");,然后线程组1的最后一个While Controller条件改为${__jexl3(${__property(apiBFinished, false)} == false,)}。
  3. 重试逻辑:第一个While Controller会循环调用API A,直到响应断言通过(状态码200),之后进入定时调用的循环逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 04:05:55