Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JMeter持续时间断言重写响应代码_Javascript_Apache_Jmeter_Stress Testing_Http Response Codes - Fatal编程技术网

Javascript JMeter持续时间断言重写响应代码

Javascript JMeter持续时间断言重写响应代码,javascript,apache,jmeter,stress-testing,http-response-codes,Javascript,Apache,Jmeter,Stress Testing,Http Response Codes,我有一个JMeter测试计划,它每秒只执行一个HTTP请求多次。作为一个参数,我对测试执行的每个请求都有一个特定的超时。为此,我添加了“持续时间断言”采样器/Listener/IDK^^ 现在我正在运行测试,并且我总是得到响应代码200,因为请求是正常的,但是超过了持续时间断言。这导致在结果树中有成功和失败的请求,但所有请求的状态代码均为200。问题是,在“每秒响应代码”侦听器中,它显示所有请求都正常,并且响应代码为200。但由于持续时间断言,它们不正常 我的问题:我想覆盖那些由于持续时间断言而

我有一个JMeter测试计划,它每秒只执行一个HTTP请求多次。作为一个参数,我对测试执行的每个请求都有一个特定的超时。为此,我添加了“持续时间断言”采样器/Listener/IDK^^

现在我正在运行测试,并且我总是得到响应代码200,因为请求是正常的,但是超过了持续时间断言。这导致在结果树中有成功和失败的请求,但所有请求的状态代码均为200。问题是,在“每秒响应代码”侦听器中,它显示所有请求都正常,并且响应代码为200。但由于持续时间断言,它们不正常

我的问题:我想覆盖那些由于持续时间断言而失败的请求的状态代码。我希望它们在“每秒响应代码”侦听器中显示为不同的响应代码(但仅当它们超过持续时间断言时),因为我无法区分它们。 或者,当它们超过超时时间时,我是否有办法让它们失败


我真的很抱歉我的英语,我希望你能理解我的问题。非常感谢

我不知道有任何测试元素允许更改响应代码,但是您可以通过如下脚本实现:

  • 添加为要失败的请求的子级。Beanshell断言应该在Duration断言之后

  • 将以下代码添加到“脚本”区域:

  • 有关通过断言有条件地传递/失败JMeter采样器的更多信息,请参阅

    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");
            }
        }
    }