根据CSV中的值评估Jmeter中的If条件

根据CSV中的值评估Jmeter中的If条件,csv,if-statement,jmeter,conditional,Csv,If Statement,Jmeter,Conditional,由于我对jmeter缺乏了解,我在一些简单的事情上遇到了很多问题 我的测试包括: CSV Data Set config Http Request If controller(containing Json Path extractor and an assertion) 我只希望在CSV中的特定变量设置为“Y”时执行If语句的内容 CSV中的变量名=检查\u选择器的\u 我在IF上设置的条件是“${Check\u For\u Selector}”=“Y” 这不管用,我也不知道为什么 请注意,

由于我对jmeter缺乏了解,我在一些简单的事情上遇到了很多问题

我的测试包括:

CSV Data Set config
Http Request
If controller(containing Json Path extractor and an assertion)
我只希望在CSV中的特定变量设置为“Y”时执行If语句的内容

CSV中的变量名=检查\u选择器的\u 我在IF上设置的条件是
“${Check\u For\u Selector}”=“Y”

这不管用,我也不知道为什么

请注意,我使用的是Jmeter 2.13(被迫使用它而不是3.1)


我到底做错了什么?

在JavaScript中,您需要使用
==
操作符才能喜欢它


有关如何借助Dmitri所述的

有条件地执行JMeter采样器的更多详细信息,请参阅,您必须使用
=
而不是
=
运算符进行比较


如果仍然不工作,请检查以下内容:

在其作用域中,如果没有任何封闭的采样器,则不应保留
后处理器和断言
(还有
前处理器
)。如果在它们的范围内没有采样器,它们将不会被执行

正如您所说,
JSON路径提取器和断言
位于
If控制器
内,它们的作用域现在仅限于控制器,它们不知道采样器(
HTTP请求
,位于
If控制器
外),
JMeter
不会执行它们

解决方案:

HTTP请求
作为
HTTP请求
的子项保留在
If控制器
中或
JSON路径提取器和断言

参考资料:


  • 我一直在看那篇文章,它对我来说没有什么意义。我已经按照您的建议尝试了求值,但它无法执行If语句的内容。假设您的
    ${Check\u For\u Selector}
    变量等于
    Y
    ,则上述表达式应该可以工作。If控制器只能执行采样器,所以您需要在If控制器下有一个采样器。1.检查jmeter.log文件的内容。2.使用组合检查
    ${Check_For_Selector}
    变量值。仅当csv中的值正确时,您可以建议执行JSON路径提取器和断言的替代方法吗?据我所知,没有替代方法。规则是将前后处理器和断言保持在采样器的范围内。您必须遵守定义的范围规则。感谢您在这方面的帮助。我认为主要的问题是,我正在测试的记录非常复杂,不适合在Jmeter中进行测试。话虽如此,我现在已经成功地重新配置了脚本,以消除使用一组“if”语句时收到的多余日志警告。虽然不漂亮,但至少能用。
    "${Check_For_Selector}"=="Y"