JMeter JMS采样器负载测试报告出现重复事务问题咨询
针对你遇到的JMeter负载测试中采样器执行次数翻倍、出现重复事务的问题,结合配置细节,可能的原因如下:
吞吐量控制器"Per User"模式与线程组"Same user on each iteration"的冲突
线程组启用"Same user on each iteration"时,JMeter会让线程复用同一个用户上下文;而吞吐量控制器的"Per User"模式是基于每个独立线程(用户)计算采样器执行概率。这种复用机制可能导致吞吐量控制器计数逻辑异常:线程复用后,控制器未重置该线程的执行计数,使得同一个线程在单次生命周期内被重复判定为需要执行采样器,最终执行次数翻倍。JMS采样器的重试或重复触发逻辑
即便设置了采样器错误后动作为"继续",若JMS Provider的消息确认(ACK)机制配置不当,可能导致JMS Publisher误认为消息发送失败,触发隐式重试;或者JMS Consumer因超时、连接波动等问题重复拉取消息,产生重复事务。此外,若采样器启用了"重试"类高级配置(如JMeter重试控制器或JMS采样器内部重试),也会导致执行次数超出预期。线程组生命周期与循环次数的协同问题
虽然设置了循环次数为1,但若线程组"指定生命周期"时长远大于单线程完成一次循环的时间,部分JMeter版本可能存在逻辑漏洞:线程完成单次循环后,因生命周期未结束而重新启动循环(忽略循环次数设置),每个线程执行两次采样器,最终总负载翻倍。CLI执行时的测试计划加载异常
若测试计划存在逻辑分支或控制器嵌套问题,CLI模式下JMeter对测试计划的解析可能与GUI模式不一致,导致采样器被重复触发。例如,吞吐量控制器的范围设置错误,使得采样器被多个父控制器同时调度执行。
内容的提问来源于stack exchange,提问作者ggffgg7

