我正在阅读JMeter文档并遇到有关"如果控制器"的信息框:
当条件被解释为Javascript时,脚本没有可用的变量.如果需要访问此类变量,请选择"将条件解释为变量表达式?" 并使用__javaScript()函数调用.然后,您可以在脚本中使用对象"vars","log","ctx"等.
我不太关注这个.这是否意味着如果我想访问"用户定义的参数",那么我只能通过编写一些JavaScript来访问它?然后,此框后面的示例引用"$ {COUNT}"
有人可以澄清一下If控制器的用法吗,可能只有一两个例子吗?
jam*_*her 33
所有这些答案都是错误的!您需要将变量引用放在引号中,如下所示:
"${my_variable}"=="foo"
Run Code Online (Sandbox Code Playgroud)
Ger*_*nck 21
你可以简单地使用类似的东西
${my_variable}=='1'
Run Code Online (Sandbox Code Playgroud)
有时JMeter文档可能会令人困惑:)
2017年9月27日编辑:
这里的答案有效,但当线程数超过40时,性能影响非常严重.
请参阅下面的正确和最佳表现答案:
看到:
小智 8
UNCHECK CHECKBOX"将条件解释为变量表达式"
没有取消选中此复选框,我浪费了几个小时.它在声明结尾处使用和不使用分号(;).确保在调用if控制器之前设置了用户定义的变量.
以下所有变体在雅加达Jmeter 1.5中都适用于我
如果Controller将在内部使用javascript评估条件,但这会导致性能下降。
更好的选择(从JMeter 4开始的默认选项,请参阅https://bz.apache.org/bugzilla/show_bug.cgi?id=61675)是检查“将条件解释为变量表达式? ”,然后在条件字段中检查有2个选项:
$ {JMeterThread.last_sample_ok}
或任何您想要的包含true / false的变量
$ {myVar}
$ {__ jexl3(“ $ {COUNT}” ==“ 1”,)}
要么
$ {__ jexl3($ {COUNT} == 1,)}
从4.0开始,如果您不使用“解释条件作为变量表达式?”,则会显示红色警告:
如果您想了解有关JMeter和性能测试的更多信息,这本书可以为您提供帮助。
正如格里所说,你需要检查你的变量
${my_var} == 'value'
Run Code Online (Sandbox Code Playgroud)
但要小心' 用户定义的变量 '
请注意,测试计划中的所有UDV元素 - 无论它们在何处 - 都会在开始时进行处理.
这基本上意味着你不能在'If Controller'中定义'User Defined Variables'.看一下'BeanShell'吧.
| 归档时间: |
|
| 查看次数: |
86029 次 |
| 最近记录: |