gpt4 book ai didi

java - jMeter 按条件发送 http 请求

转载 作者:行者123 更新时间:2023-11-29 04:40:27 27 4
gpt4 key购买 nike

我有一个包含 2 个 http 请求的 jMeter 测试计划:提交和检索。第一个向服务器提交一些数据。没关系。

然后,在第二个任务中,我必须从服务器检索信息。 Response 是json,包含taskStatus,可以是“pending”或“done”。逻辑如下:如果 taskStatus 是“pending”,我必须自动重复 this http 请求并延迟一些时间(例如 3 秒)。但是,我发现无法使用 Http Request Sampler 执行此操作。希望可以有人帮帮我。 (使用Http Request Sampler不是必须的)

最佳答案

它不能单独使用 Http Request Sampler 来完成,但是 While Controller是为了救援。

像这样构建你的测试:

enter image description here

地点:

  • 重置状态(ShellBean 采样器或任何其他可编程采样器)是测试开始时运行的第一个项目。它会重置测试的状态,这样它就不会被之前的迭代所混淆。它所做的只是:

    enter image description here

  • 提交保持原样,但检索While Controller<下移动/em> 并且现在附加了一个后处理器。这 2 个元素在一起(当 Controller 和后处理器时,确保 Retrieve 在循环中运行,并且一旦状态变为“完成”,该循环就存在。所以

  • While Controller 看起来像这样:

    enter image description here

    即它检查变量“Status”的值,只有当状态不是“完成”时才进入循环 (${__javaScript("${Status}"!="done")})

  • 最后,有人需要在每次执行 Retrieve 后更新 ${Status} 变量。这是通过从响应中提取状态 完成的。对于后处理器我不能更具体,因为你没有说你的结果看起来如何,但你基本上需要配置它来提取状态('pending' 或 'done' 并将其保存在变量 $ {Status}。它可能看起来像这样(只是一个例子,您的语法,甚至后处理器的类型可能会有所不同,具体取决于响应的类型):

    enter image description here

下面是这个测试如何运行的例子,如果它在几次迭代后才收到“完成”:

enter image description here

关于java - jMeter 按条件发送 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414799/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com