Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是不是;如果控制器;在jmeter中,是否以某种方式降低了吞吐量?_Jmeter_Performance Testing - Fatal编程技术网

是不是;如果控制器;在jmeter中,是否以某种方式降低了吞吐量?

是不是;如果控制器;在jmeter中,是否以某种方式降低了吞吐量?,jmeter,performance-testing,Jmeter,Performance Testing,我在我的API上做了性能测试,在尝试一些事情的时候,我发现如果我将采样器(http请求)放在一个“if控制器”中,结果总是为true,那么我得到的吞吐量是使用没有if控制器的采样器时的一半。为什么会这样 if控制器中的比较只是比较随机变量是否大于某个阈值 我的实际用例明显不同,但if控制器的这种行为正在影响我。 编辑: 这是我的if控制器配置的图像。 您应该检查参考,它是使用If控制器而不影响性能的一个很好的例子 将条件解释为变量表达式?如果选中此选项,则条件必须是计算结果为“true”的表达式

我在我的API上做了性能测试,在尝试一些事情的时候,我发现如果我将采样器(http请求)放在一个“if控制器”中,结果总是为true,那么我得到的吞吐量是使用没有if控制器的采样器时的一半。为什么会这样

if控制器中的比较只是比较随机变量是否大于某个阈值

我的实际用例明显不同,但if控制器的这种行为正在影响我。 编辑: 这是我的if控制器配置的图像。

您应该检查参考,它是使用If控制器而不影响性能的一个很好的例子

将条件解释为变量表达式?如果选中此选项,则条件必须是计算结果为“true”的表达式(忽略大小写)。例如,${FOUND}或${uuujexl3(${VAR}>100)}

在您的情况下,您应该选中
将条件解释为变量表达式?
复选框,并使用以下条件(不带引号):

您还可以用函数替换_jexl3

检查此项并在条件下使用_jexl3或_groovy函数可提高性能


任何测试元素都会增加开销,所以在If控制器就位的情况下,测试计划将消耗更多的资源,或者在资源不足的情况下执行得更慢

关于If控制器,请确保使用而不是默认的JavaScript,因为每次调用If控制器时,JMeter都会使用JavaScript解释器评估条件,这是一种缓慢的速度

因为If控制器默认将条件解释为变量表达式,这在理论上应该会加快速度

还要确保使用解析为
true
的函数,或者使用
\u groovy()
函数而不是JavaScript



即使假设控制器的开销,您的测试吞吐量也不应下降2倍,因此请确保您遵循并仔细检查JMeter是否有足够的空间在CPU和RAM方面运行。

在使用If控制器时,您没有检查“将条件解释为变量表达式”,您的代码将由Javascript执行,根据中的警告,Javascript将执行得非常糟糕

由于(强烈建议升级),警告清楚地解释了问题:

要修复它,只需使用函数替换代码并选中“解释…”:


您能否展示If控制器的配置(屏幕截图),并说明您使用的是哪个版本的JMeter?感谢@UBIKLOADPACK,在我的问题中添加。
${__jexl3(${breachPercent} > 10)}