我们的服务有以下方式:
首先,发送带有搜索参数的请求,然后我们返回searchId。然后,此searchId用于继续获取信息,直到服务响应它没有剩余数据(hasMore参数变为" false")。
问题是这个 - 我已经设置了jMeter来发送第一个请求,但不确定如何继续为线程组中的每个响应并行发送请求,并且需要你的建议。我的想法是设置另一个Thread Group,因为我无法在第一个中设置它,但是我如何能够访问响应并并行处理它们?
EDITED :
这就是我最终的结果。 First Beanshell Sampler提取searchId和hasMore并将其放入变量中。第二个采样器提取hasMore并再次将其放入变量中,覆盖第一个。最后,While循环按预期工作,使用$ {__ javaScript(" $ {hasMore}" ==" 1",)}。
答案 0 :(得分:1)
我建议您按如下方式设计测试:
searchId
${__javaScript("${hasMore}" != "false",)}
hasMore
参数并将其存储到相关的JMeter Variable 这种方式"获取信息"请求将在hasMore
参数变为false
之前执行。有关详细信息,请参阅Using the While Controller in JMeter文章。
答案 1 :(得分:0)
我建议2个线程组
第一个线程组:
将searchIds保存在文件(JSR223 Sampler)或数据库(JDBC Sampler)中,键为counter(1,2,...),value为searchId值
在属性$ {__ setProperty(threadCount,$ {counter})}中保存多个ID。
第二个线程组:
在定义中 - 线程使用数$ {__ P(threadCount)}
从文件(JSR223采样器)或数据库(JDBC采样器)读取
使用$ {__ threadNum}作为密钥获取您需要的相关searchId