JMeter的“如果控制器”的参数?
问题内容:
我正在阅读JMeter文档,并遇到有关“
If Controllers”的信息框:
当条件被解释为Javascript时,脚本将不使用任何变量。如果需要访问此类变量,请选择“将条件解释为变量表达式?”。并使用__javaScript()函数调用。然后,您可以在脚本中使用对象“
vars”,“ log”,“ ctx”等。
我不太明白这一点。这是否意味着如果我要访问“用户定义的参数”,那么只能通过编写一些JavaScript来访问它?然后,此框后面的示例引用“ $
{COUNT}”
有人可以用一个或两个例子来阐明If Controller的用法吗?
问题答案:
您可以简单地使用类似
${my_variable}=='1'
有时JMeter文档可能会令人困惑:)
编辑2017年9月27日:
答案是可行的,但是 当线程数超过40时,会对性能造成严重影响。
参见以下正确和效果最佳的答案:
如果Controller将在内部使用javascript评估条件,但这会导致性能下降。
更好的选择(从JMeter 4开始的默认选项,请参阅https://bz.apache.org/bugzilla/show_bug.cgi?id=61675)是检查“将条件解释为变量表达式吗? ”,然后在条件字段中检查有2个选项:
选项1:使用包含true或false的变量。例如,如果要测试上一个样本是否成功,则可以使用
$ {JMeterThread.last_sample_ok}
如果Controller以JMeter 3.4开头
或任何您想要的包含true / false的变量
$ {myVar}
选项2:使用函数(建议使用$ { __jexl3()})评估必须返回true或false的表达式。例如,如果COUNT等于1:
$ {__ jexl3(“ $ {COUNT}” ==“ 1”,)}
要么
$ {__ jexl3($ {COUNT} == 1,)}
从4.0开始,如果不使用“解释条件为变量表达式?”,则将显示红色警告:
如果您想了解有关JMeter和性能测试的更多信息,这本书可以为您提供帮助。
看到: