Jmeter 杰米。为什么';语句是否有效?

Jmeter 杰米。为什么';语句是否有效?,jmeter,Jmeter,我对未能触发一个简单的IF语句感到沮丧,并开始怀疑我不理解IF语句在JMeter中的实现方式 我试图做的是查询一个API,它在处理请求时返回202个响应,然后在返回结果时返回200个响应。最后,如果在得到结果后再次查询,则返回404 我有一个没有条件的while控制器来执行这个查询,它在404上退出 这似乎行得通 我要做的是确认我为202和200返回了有效的JSON,但忽略404 我想我可以在循环中的每个查询之后添加一个IF控制器,以便在我有202或200个时运行BSF断言,但我似乎无法让它工作

我对未能触发一个简单的IF语句感到沮丧,并开始怀疑我不理解IF语句在JMeter中的实现方式

我试图做的是查询一个API,它在处理请求时返回202个响应,然后在返回结果时返回200个响应。最后,如果在得到结果后再次查询,则返回404

我有一个没有条件的while控制器来执行这个查询,它在404上退出

这似乎行得通

我要做的是确认我为202和200返回了有效的JSON,但忽略404

我想我可以在循环中的每个查询之后添加一个IF控制器,以便在我有202或200个时运行BSF断言,但我似乎无法让它工作。即使我输入“true”或“1==1”作为条件,也不会调用断言

"${httpCode}" == "200"
在我的断言中,我添加了一个故意的错误“eval x;”,如果我将其拖放到套件的其他部分,则会导致断言失败-

try {
   eval('var response = ' + prev.getResponseDataAsString());
   eval x;
} catch(e) {
      prev.setSuccessful(false);
      prev.setResponseMessage("Invalid response. Expected a valid JSON.");
}
正如我所说,即使我添加true或1==1,断言错误也不会显示在断言结果中。我是否从根本上误解了IF控制器的工作方式?当然,与我一起工作的Java程序员看不出这里出了什么问题

不幸的是,这个网站不允许我发布套件的图片

顺便说一句

很抱歉问了一个“模糊”的问题,但我已经对JMeter进行了一周多的评估,发现在线资源缺少“如何”类型的教程。对特定JMeter对象的大量引用和基本的“Getting Started”类型的文章,但没有详细说明。此外,大多数参考文献似乎是循环的和过时的;我不断发现自己又回到了同样的页面

apache站点似乎更适合作为对象引用


有人能推荐一个真正好的在线资源吗?

你有什么JMeter版本?在我的2.10版中,如果控制器的1==1工作正常

此外,我还建议您使用带有的If控制器。如果前一个采样器正常,则返回true。 你可以在假设条件下使用

尝试以下操作:


${uuuu BeanShell(${httpCode}).equals(“200”)}

为什么不试试BeanShell前后处理器呢?谢谢Jay。我想测试响应代码,并对每个可能的响应采取不同的操作。我最终在Beanshell中实现了它,这可能是一种更通用的方法。我的版本是2.11。再次感谢。布拉德