问题现象
如果您在本地JMeter脚本中配置了一个线程组,并在其内部配置了仅一次控制器(Once Only Controller),但是将脚本上传至PTS的JMeter压测后,线程组的请求还是会循环重复执行。
在 JMeter Summary Report 中,Once Only Controller 下的 HTTP 请求共执行了 20 次(# Samples 为 20),平均响应时间 31ms,错误率 15.00%,吞吐量 20.4/sec,表明请求随线程循环重复执行而非仅执行一次。
可能原因
因为PTS中增加了可调速及设置非固定量级施压的功能,会改变原生的Thread Group设置,使得JMeter脚本中Once Only Controller的配置不生效。此外,如果JMeter脚本中只有一个可执行的Once Only Controller,则用PTS进行压测和脚本在本地调试并无区别,达不到性能测试的目的。
解决办法
请在同一个线程组中,保证除Once Only Controller外,仍有其他生效的Sampler,这样Once Only Controller中的内容只会执行一次,而其余的Sampler会根据配置循环执行。
按照上述方式调整后,运行压测可在 Summary Report 中查看结果:共 3309 个请求全部成功,错误率为 0.00%,平均响应时间 24ms,吞吐量 714.0/sec。其中 HTTP Request-out 为 Once Only Controller 外的 Sampler,按配置循环执行了 3289 次。
该文章对您有帮助吗?