我的测试有2个API请求。在第二个API请求主体中传递的参数每次都是唯一的。所以我使用JSR223预处理器和groovy来使用RandomUtils生成它。线程组设置为有3个线程,上升时间为15秒,并使用循环控制器,循环计数为10。第一个API在线程组中,第二个API在循环控制器中,因为它需要多次运行。但在测试执行期间,对于第二个API,一个线程多次使用相同的参数传递相同的请求主体。2因此测试失败。3这怎么可能呢?
mspsb9vt1#
如果没有看到Groovy代码,就不可能说出"这怎么可能"。最常见的错误是在Groovy脚本中使用JMeter函数或变量。JSR223测试元素有一个功能(编译)可以显著提高性能。要从该功能中获益:
使用此功能时,请确保脚本代码不直接在脚本代码中使用JMeter变量或JMeter函数调用,因为缓存只会缓存第一个替换。请使用脚本参数。如果是这种情况,请重构代码以使用vars shorthand for JMeterVariables class instance而不是JMeter函数或变量语法,这样应该可以解决问题。
vars
1条答案
按热度按时间mspsb9vt1#
如果没有看到Groovy代码,就不可能说出"这怎么可能"。
最常见的错误是在Groovy脚本中使用JMeter函数或变量。
JSR223测试元素有一个功能(编译)可以显著提高性能。要从该功能中获益:
使用此功能时,请确保脚本代码不直接在脚本代码中使用JMeter变量或JMeter函数调用,因为缓存只会缓存第一个替换。请使用脚本参数。
如果是这种情况,请重构代码以使用
vars
shorthand for JMeterVariables class instance而不是JMeter函数或变量语法,这样应该可以解决问题。