【问题标题】:Developing JMeter test plan with results from multiple REST end points使用来自多个 REST 端点的结果开发 JMeter 测试计划
【发布时间】:2016-05-27 16:28:04
【问题描述】:

这是否可能在 JMeter 中开发一个测试计划,该计划将具有第一个测试的结果(一个 ID)将作为下一个测试的输入,依此类推,在下一个测试中最多 4 个测试,因为每个测试都会生成一个唯一的 ID,并且其中的每一个ID 相互依赖。每一项的关系如下:提交 ID > 执行 ID > 两者都会生成完成 ID,结果通过或失败。这些是 REST API 调用。我需要运行并发用户负载测试。最后,我需要测量每个测试的延迟和吞吐量。

【问题讨论】:

  • 是的,这是可能的,但是您的问题太宽泛,无法提供任何实际示例(有很多方法可以做到,具体取决于您的测试计划的样子)

标签: jmeter


【解决方案1】:

在采样器请求之间,使用 JSON 后处理器解析 api 响应,将其分配给 ${variable_name} 并在其他请求中使用。

【讨论】:

    【解决方案2】:

    它应该看起来像这样。

    Thread group
         Userdefined variables
         Http Sampler
           Regex to get id
         Http Sampler
           Regex to get id
    

    如果你想测量所有采样器的响应时间,有一个简单的控制器作为所有采样器的父级

    【讨论】:

      【解决方案3】:

      感谢您的快速提示。通过将 ID 传递给正则表达式,我能够使一步工作,但相同的正则表达式不适用于第 3 步。让我在这里提供更多细节。基本上,第一个 post 命令给出了提交 ID > 我将该 ID 用于正则表达式 > 在下一步中使用类似“/../2ndStep/submissionId”的 URL 运行 get 命令 > 这已通过 > 我正在使用相同的正则表达式在下一个带有类似 '/../3rdStep/submissionId/executions'> 的 URL 的 get 命令中,这应该给出另一个 executionId,但它对我来说失败了。我不确定我错过了什么。

      【讨论】:

      • 如果我像这样在采样器中传递变量值而不是变量名,则测试通过。 /../3rdStep/${submissionId}/executions/.我希望这是传递下一个采样器的正确方法
      【解决方案4】:

      感谢大家提出可行的解决方案。但我需要用这种不同的方式来实现以下要求。

      当我使用 JMeter 对我的 REST API HTTP 请求运行 POST 命令测试时,它会返回一个 ID 作为响应。其他步骤将使用此 ID 来完成作业。我目前正在将 ID 传递给正则表达式,并在每个步骤的采样器之间使用它,就像上面建议的那样,然后测量延迟,但是依赖于该 ID 的 GET 步骤可能需要一些时间才能完成。所以我不能将这些 GET 步骤放到一个线程中,因为其中两个步骤失败了,因为它们可能需要一些时间才能完成。有没有办法将 POST 命令与剩余命令分开,并自动开始轮询剩余步骤的 GET 命令以解决此问题。底线是我也需要测量每个步骤的延迟和吞吐量。请让我知道是否有办法在 JMeter 中实现这一点? 再次感谢, 桑塔纳

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-15
        • 2021-08-29
        • 1970-01-01
        • 2017-03-22
        • 1970-01-01
        • 1970-01-01
        • 2015-11-13
        • 2017-05-02
        相关资源
        最近更新 更多