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

JMeter脚本部分采样器仅每用户执行1次未按设定时长运行问题排查

JMeter压测部分接口单线程仅执行1次问题排查与解决

核心现象匹配

90并发下3个接口累计执行90次,刚好对应每个虚拟用户生命周期内仅执行1次,优先按以下优先级逐一排查:

排查步骤与对应解决方案

1. 优先检查控制器层级配置(最高发原因)

  • 直接在测试计划树里展开事务控制器,确认这3个异常Sampler是否被误嵌套在*仅一次控制器(Once Only Controller)*内部:仅一次控制器的默认逻辑就是每个线程全测试周期仅执行1次内部元件,和你遇到的现象完全匹配。如果是该问题,直接把3个Sampler拖出仅一次控制器,和其余7个正常Sampler放在事务控制器下的同层级即可。
  • 检查这3个Sampler外层是否嵌套了额外的If控制器/开关控制器/吞吐量控制器:
    • If控制器是否写了仅首次执行才成立的判断条件(比如判断某标记变量不存在才执行,执行完就给变量赋值)
    • 吞吐量控制器是否设置了Total Executions模式,执行次数填了1
    • 事务控制器本身是否误勾选了异常配置项,导致子Sampler执行逻辑异常

2. 检查关联元件的执行逻辑

  • 检查3个接口关联的配置元件:如果接口依赖CSV数据集配置,确认CSV配置没有设置Recycle on EOF = False且文件内仅1条测试数据,避免线程读一次数据后无数据可用跳过请求。
  • 检查3个接口绑定的前置/后置处理器、断言:
    • 是否存在JSR223/Groovy脚本逻辑,首次执行后给变量打标记,后续直接跳过该Sampler
    • 是否存在断言配置错误,首次请求后后续请求全部触发断言失败,同时Sampler错误处理策略配置为「跳过当前Sampler」
    • 是否在这3个Sampler前后加了Flow Control Action(流控制动作),配置了首次执行后直接跳过这几个Sampler的逻辑

3. 检查定时器与引用元件配置

  • 检查这3个Sampler的作用域内是否存在配置错误的定时器:比如固定定时器、常数吞吐量定时器被误设置了极大的等待时间/极低的吞吐量,导致整个测试周期内每个线程仅能触发1次请求。可以先看HTML报告里这3个请求的平均响应时间、吞吐量数据,如果吞吐量数值远低于其他正常接口、响应时间异常偏大,优先排查定时器。
  • 如果这3个Sampler是通过模块控制器、Include控制器引用的外部测试片段,打开对应测试片段检查内部是否存在仅执行一次的逻辑配置。

快速验证方法

  • 先把线程组改成1线程、循环次数设为10次、取消调度器配置,本地短时间跑测试,通过查看结果树监听器看这3个Sampler是不是仅在第一次循环出现,快速复现问题。
  • 在3个异常Sampler前后添加调试取样器,跑2-3次循环后查看变量值、控制器执行状态,结合jmeter.log日志里的报错/执行记录,10分钟内就能定位具体根因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:24:18