在JMeter中,是否可以开发一个测试计划,使第一个测试的结果(一个ID)成为下一个测试的输入,并且在接下来的4个测试中都如此,因为每个测试都会生成一个唯一的ID,每个这些ID都是相互依赖的。 它们之间的关系如下:提交ID > 执行ID > 两者将生成完成ID以表示结果是否通过。 这些都是REST API调用。 我需要运行并发用户负载测试。 最后,我需要从每个测试中测量延迟和吞吐量。
在JMeter中,是否可以开发一个测试计划,使第一个测试的结果(一个ID)成为下一个测试的输入,并且在接下来的4个测试中都如此,因为每个测试都会生成一个唯一的ID,每个这些ID都是相互依赖的。 它们之间的关系如下:提交ID > 执行ID > 两者将生成完成ID以表示结果是否通过。 这些都是REST API调用。 我需要运行并发用户负载测试。 最后,我需要从每个测试中测量延迟和吞吐量。
在采样器请求之间,使用JSON后处理器解析API响应,将其分配给${variable_name}并在其他请求中使用。
It should look something like this.
Thread group
Userdefined variables
Http Sampler
Regex to get id
Http Sampler
Regex to get id
感谢您的快速提示。我通过将ID传递到正则表达式中使第一步骤工作,但是同样的正则表达式在第三步骤中不起作用。让我在这里提供更多细节。基本上,第一个post命令会给出提交ID>我将该ID用于正则表达式>在下一步中使用类似于'/../2ndStep/submissionId'的URL运行get命令>这被传递了>我在下一个get命令中使用相同的正则表达式,其URL类似于'/../3rdStep/submissionId/executions'>这应该给出另一个executionId,但对我来说失败了。我不确定我错过了什么。
感谢大家提供的解决方案。但是我需要以不同的方式来实现以下要求。
当我使用JMeter在我的REST API HTTP请求上运行POST命令测试时,它会返回一个ID作为响应。其他步骤将使用此ID完成工作。我目前正在将ID传递到正则表达式中,并在每个步骤的采样器之间使用它,如上所建议,然后测量延迟,但是依赖于该ID的GET步骤可能需要一些时间才能完成。因此,我不能将这些GET步骤放入一个线程中,因为其中两个步骤失败了,因为它们可能需要一些时间才能完成。有没有办法将POST命令与其余部分分开,并自动开始轮询其余步骤上的GET命令以解决此问题。底线是我需要测量每个步骤的延迟和吞吐量。请让我知道是否有一种方法可以在JMeter中实现这一点?
再次感谢,Santana