问题现象

如果您在本地JMeter脚本中配置了一个线程组,并在其内部配置了仅一次控制器(Once Only Controller),但是将脚本上传至PTS的JMeter压测后,线程组的请求还是会循环重复执行。如下图所示。

once_only_controller

可能原因

因为PTS中增加了可调速及设置非固定量级施压的功能,会改变原生的Thread Group设置,使得JMeter脚本中Once Only Controller的配置不生效。此外,如果JMeter脚本中只有一个可执行的Once Only Controller,则用PTS进行压测和脚本在本地调试并无区别,达不到性能测试的目的。

解决办法

请在同一个线程组中,保证除Once Only Controller外,仍有其他生效的Sampler,这样Once Only Controller中的内容只会执行一次,而其余的Sampler会根据配置循环执行。

once_only_controller2