2014-03-03 115 views
0

我很沮丧,因为我没有得到一个简单的IF语句触发,并开始怀疑我不明白IF语句在JMeter中的实现方式。。为什么没有声明工作?

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

我有一个执行此查询没有条件的,同时控制器和退出的404

这似乎是工作确定。

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

我认为我可以在回路每次查询后添加一个IF控制器运行AA BSF断言,当我有202或200,但我似乎无法得到它的工作。即使我把“真”或“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."); 
} 

就像我说的,即使我添加真或1 == 1的断言错误永远显示断言结果。我从根本上误解了IF控制器的工作方式?当然,与我一起工作的Java程序员在这里看不到有什么问题。

不幸的是这个网站不会让我发布套件的图像...

BTW

对不起,问一个“模糊”的问题,但我已经一个多星期了,现在评估JMeter的和在“How To”类型教程中找到缺乏的在线资源。很多对特定JMeter对象和基本“入门”类型帖子的引用,但没有详细说明。此外,大多数参考文献似乎都是循环而且过时的;我不断重新找回自己在相同的页面。

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

是否有人能够推荐一个非常好的在线资源?

+0

你为什么不尝试BeanShell的岗前处理器? –

回答

0

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

另外我可以推荐你使用如果控制器与 JMeterThread.last_sample_ok function。如果以前的采样器正常,它将返回true。 你可以使用,如果条件。

+0

谢谢Jay。我想测试响应代码并针对每种可能的响应采取不同的操作。我最终在Beanshell中实现它,无论如何这可能是一种更加通用的方法。我的版本是2.11。再次感谢。布拉德 – steadyonabix

0

尝试以下操作:

$ {__的BeanShell( “$ {} httpCode” 等于( “200”)。)}

相关问题