【问题标题】:JMeter duration assertion Override Response CodeJMeter 持续时间断言覆盖响应代码
【发布时间】:2017-01-31 07:48:40
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: javascript apache jmeter stress-testing http-response-codes


    【解决方案1】:

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

    1. Beanshell Assertion 添加为您希望失败的请求的子项。 Beanshell 断言应该持续时间断言之后

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

      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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多