因此,对于我的问题,请看一下我的Jmeter设置:
让我解释发生了什么,然后继续我的问题。
说明
在服务器上,我有一个番石榴缓存(超时为5秒)和一个连接到它的数据库。请求A将数据(从csv文件读取)发送到服务器,并将其放入缓存中。它返回与该数据相对应的唯一ID。请求B发送一个秒请求(具有唯一ID),该请求从缓存中逐出该项目并将其保存到DB。第三个请求C再次使用该唯一ID从DB读取并处理数据。
现在,为了在线程组之间共享该唯一ID(和一些其他URL参数),我将它们放在Jmeter中的队列中(使用jp @ gc-线程间通信预处理器和后处理器)。 Jmeter和Server都可以正常工作。
题
要完成此设置,我需要再添加一件事...对于每个请求,仅将10%(随机)的唯一ID放入队列A。对于每个请求B,同样,仅将10%(随机)的唯一ID放入队列A。这些唯一的ID需要放在队列B中。
如果Jmeter不允许将if-controllers作为http-request的一部分放置,该如何做最后一部分?
最佳答案
如果有人对答案感兴趣。我发现最简单的方法是在Http请求A下创建一个随机变量(在变量rnd
中)和一个beanshell后处理器。beanshell代码为:
import kg.apc.jmeter.modifiers.FifoMap;
if (vars.get("rnd").equals("1")) {
FifoMap.getInstance().put("QUEUE_A", "${uniqueId");
}
对于请求B,类似于请求A的过程。完美运行。