Jmeter-如何发出请求,直到获得特定响应

时间:2019-02-27 12:48:53

标签: jmeter jmeter-3.2

请求为:

  1. request_a已发送,并且我收到“正在进行中”的回复
  2. 同样,发送了request_a,并且我收到了“进行中”的回复
  3. 同样,发送了request_a,并且得到了“完整数据”的响应

当目标服务器响应“进行中”时,发生了什么事,原因是该服务器花费时间在服务器中缓存数据。在这里,第三个请求将返回完整的数据。

我需要的是:所有3个请求都应等待,直到获得完整的数据。这样我就可以检查request_a的实际负载,该请求连接到获取数据库的数据并给出响应

注意:我正在通过从服务器手动清除缓存进行检查。

1 个答案:

答案 0 :(得分:1)

  1. 将您的请求放在While Controller下。使用以下__jexl3() function作为条件:

    ${__jexl3("${response}" != "complete data",)}
    
  2. 使用合适的后处理器将响应提取到JMeter Variable中。例如,以下Regular Expression Extractor设置适用:

    enter image description here

  3. 就是这样,虽然Controller会循环运行,直到${response}变量不会变为complete data

    enter image description here