【问题标题】:Jmeter - Set status after few request have been sentJmeter - 在发送几个请求后设置状态
【发布时间】:2016-03-01 15:05:25
【问题描述】:

我可以通过 JMeter 解决以下场景吗?:

  1. 发送请求1
  2. 将 request1 的响应插入到 request2
  3. 发送请求2
  4. 发送请求3
  5. 比较 response3 和 response1
  6. 如果 response3 = response1 -> setResponseOK() for request2 ELSE 失败

提前致谢。

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    解决这种情况的建议

    1. 发送请求 1
    2. 在 var1 中捕获请求 1 的响应(使用相关性-->取决于您的要求)
    3. 先发送请求 3(因为您不需要响应请求 2 来输入请求 3)
    4. 在 var2 中捕获请求 3 的响应
    5. 现在通过将请求 1 的响应作为存储在 var1 中的输入传递来点击请求 2
    6. 将 beanshell 后处理器应用为请求 2 的子项
    7. 现在在 if 条件下比较请求 1 和 3 的响应: 如果匹配使上一个请求(即请求 2)通过,否则失败
      if(vars.get("var1").equals(vars.get("var2")))
     {
     prev.setSuccessful(true);
     }
     else
     {
     prev.setSuccessful(false); 
     }
    

    【讨论】:

    • @KaushlendraJha,感谢您的回答。根据您的解决方案,“查看结果树”将包含 3 个请求的状态还是我错了?
    • 是的结果树将包含所有三个请求的状态,但您是否要使第二个请求通过或失败由您决定
    【解决方案2】:

    如下设计你的测试:

    1. 请求 1

      • Regular Expression Extractor 将整个响应提取到配置为的 JMeter 变量中:

        • 参考名称:任何有意义的名称,即response1
        • 正则表达式:(?s)(^.*)
        • 模板:$1$
    2. 请求 2:在需要时使用 ${response1}

    3. 请求 3

      • Response Assertion 配置如下:

        • 模式匹配规则:Equals
        • 要测试的模式 -> ${response1}

    参考资料:

    【讨论】:

    • 嗨,Dmitri,感谢您的回答,根据您的解决方案,我将在查看结果树中看到所有 3 个请求,但我的目的是“查看”仅 request2 的状态,而不是所有 3 个请求。
    猜你喜欢
    • 2020-07-18
    • 2019-04-03
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    相关资源
    最近更新 更多