我有一个 JMeter 测试计划,它每秒只执行 1 个 HTTP 请求多次。作为参数,我对测试执行的每个请求都有一定的超时时间。为此,我添加了“Duration Assertion”Sampler/Listener/IDK^^
现在我正在运行测试,并且总是收到响应代码 200,因为请求正常但超过了持续时间断言。这导致在结果树中有成功和失败的请求,但所有请求的状态代码都是 200。问题是在“每秒响应代码”监听器中,它显示所有请求都正常并且响应代码为 200。但由于持续时间断言,它们不正常!
我的问题:我想覆盖那些由于持续时间断言而失败的请求的状态代码。我希望它们在“每秒响应代码”监听器中显示为不同的响应代码(但仅当它们超过 DURATION ASSERTION 时),因为我无法区分它们。 或者有什么方法可以让它们在超过超时时失败?
我真的很抱歉我的英语不好,我希望你能理解我的问题。非常感谢!
最佳答案
我不知道有任何允许更改响应代码的测试元素,但是您可以通过脚本编写如下:
添加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"); } } }
参见 How to Use JMeter Assertions in Three Easy Steps有关通过断言有条件地通过/失败 JMeter 采样器的更多信息。
关于javascript - JMeter 持续时间断言覆盖响应代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39644022/