使用来自多个REST端点的结果开发JMeter测试计划

时间:2016-05-27 16:28:04

标签: jmeter

这是否可以在JMeter中开发一个测试计划,该测试计划将在下一个测试中输入下一个测试(一个ID)等等,直到4个测试,因为每个测试生成一个唯一的ID,并且每个测试都是ID彼此依赖。每个相关如下:提交ID>执行ID>两者都将生成结果通过或失败的完成ID。这些是REST API调用。我需要运行并发用户负载测试。最后,我需要测量延迟,每次测试的吞吐量。

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

看起来应该是这样的。

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

谢谢大家提出工作解决方案的建议。但我需要以不同的方式来达到以下要求。

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