我有一个JMeter测试计划,每秒多次执行1个HTTP请求。作为参数,我对测试执行的每个请求都有一定的超时。为此,我添加了"持续时间断言"采样器/监听器/ IDK ^^
现在我正在运行测试,我总是得到响应代码200,因为请求没问题,但超出了持续时间断言。这导致在结果树中有成功和失败的请求,但它们都具有状态代码200.问题在于每秒响应代码中的#34;监听器显示所有请求都正常并且响应代码为200.但由于持续时间断言它们不正常!
我的问题:我想覆盖由于持续时间断言而失败的那些请求的状态代码。我希望它们在"每秒响应代码中显示为不同的响应代码(但仅在它们超过持续时间的情况下)。听众,因为我无法区分他们。 或者有什么方法可以让它们在超时时失败?
我真的很抱歉我的英语,我希望你能理解我的问题。非常感谢!
答案 0 :(得分:2)
我不知道任何允许更改响应代码的测试元素,但您可以通过脚本执行以下操作:
将Beanshell Assertion添加为您要失败的请求的子项。 Beanshell断言应该 持续时间断言
将以下代码添加到"脚本"面积:
import org.apache.jmeter.assertions.AssertionResult;
AssertionResult[] results = prev.getAssertionResults();
for (AssertionResult result : results) {
if (result.isFailure()) {
if (result.getFailureMessage().contains("The operation lasted too long")) {
SampleResult.setResponseCode("1000");
}
}
}
有关通过断言有条件地传递/失败JMeter采样器的更多信息,请参阅How to Use JMeter Assertions in Three Easy Steps。