[英]JMeter Beanshell sampler that runs when HTTP Request Sampler fails
[英]Jmeter: Recall HTTP sampler request if a particalar string is not found in response cookie
我必须实现一个方案,如果失败,我必须最多调用同一请求5次,并且基于响应,我正在文件中写入一些内容。 当从cookie中找不到字符串时会发生失败,而我正在捕获它作为常规exp。
为了解决这个问题,我添加了带计数器的while循环,但是脚本可以工作到50000次迭代,然后发出内存不足错误。 如果我不使用while循环调用5次相同的请求,那么对于具有相同JVM的一百万个脚本来说,相同的脚本没有任何问题。
看起来Jmeter中的While控制器以某种方式消耗了更多内存,并耗尽了内存。
是否可以通过Beanshell Post处理器调用相同的HTTP请求?
${__javaScript(${counter} < 5 && "${foo}" != "bar",)}
1
,增量1
,参考名称counter
假设以上设置, Your Sampler
将执行5次,或者直到${foo}
变量值不等于bar
时执行,直到第一个执行。 有关全面的解释和更多示例,请参见在JMeter中使用While控制器 。
如果您仍在寻找Beanshell方式,则可以使用以下方法:
if (!prev.getResponseDataAsString().contains("foo")) { ctx.getCurrentSampler().sample(null); }
如果响应中没有foo
子字符串,则上述放置在Beanshell PostProcessor中的代码将再次执行父采样器,但是这种方式将无法在侦听器中看到执行结果,也不会将其存储到中。 jtl文件,基本上您只会执行一次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.