HTTP响应代码上的JMeter if控制器

HTTP响应代码上的JMeter if控制器,jmeter,Jmeter,我希望测试的某个分支仅在来自前一个示例的响应代码返回某个HTTP代码200时执行 我尝试了以下作为“if控制器”的条件: "{httpCode}"== "200" 但是没有运气(调试它也没有运气,调试采样器什么也没说) 谢谢您是否事先提取了变量httpCode的响应代码?使用正则表达式提取器 然后检查变量的值,如下所示: ${__javaScript(${httpCode}=="200")} 或者,您也可以使用断言,请参见我想您只是缺少变量前面的$符号 此外,JMeter还公开了一个名为$

我希望测试的某个分支仅在来自前一个示例的响应代码返回某个HTTP代码200时执行

我尝试了以下作为“if控制器”的条件:

"{httpCode}"== "200"
但是没有运气(调试它也没有运气,调试采样器什么也没说)


谢谢

您是否事先提取了变量httpCode的响应代码?使用正则表达式提取器

然后检查变量的值,如下所示:

${__javaScript(${httpCode}=="200")} 

或者,您也可以使用断言,请参见

我想您只是缺少变量前面的$符号

此外,JMeter还公开了一个名为${JMeterThread.last_sample_ok}的变量,该变量可以是true或false。我建议您在If控制器中使用它


只需将
${JMeterThread.last_sample_ok}
变量放入将HTTP请求添加到“IF Controller”中,所有请求都要检查之前的结果条件,并定义以下内置JavaScript条件“${JMeterThread.last_sample_ok}”。

Hi。我有一个正则表达式提取器,它完成了这项工作(我可以在结果树中看到“httpCode=200”)。我尝试了上面的建议,只是${httpCode}==“200”-似乎不起作用。我错过了什么?好吧,我还有一个见解。如果我的控制器工作。。问题是,我试图根据结果代码提取一些内容。但是,如果我将提取器放在if控制器中,它就不再具有原始结果(我正在使用JSONPath来提取某些内容)。这听起来真的很混乱,没有if控制器,JSONPath提取器可以工作吗?尝试将提取器(或多个提取器)放在if控制器之前,然后根据httpCode使用其结果。JSONPath提取器似乎无法访问if中的响应。