繁体   English   中英

Jmeter:如果在响应Cookie中找不到特殊字符串,则调用HTTP采样器请求

[英]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请求?

  1. 使用While控制器计数器组合的方法:

    • While Controller:条件${__javaScript(${counter} < 5 && "${foo}" != "bar",)}
      • 计数器:开始1 ,增量1 ,参考名称counter
      • 您的采样器

    假设以上设置, Your Sampler将执行5次,或者直到${foo}变量值不等于bar时执行,直到第一个执行。 有关全面的解释和更多示例,请参见在JMeter中使用While控制器

  2. 如果您仍在寻找Beanshell方式,则可以使用以下方法:

     if (!prev.getResponseDataAsString().contains("foo")) { ctx.getCurrentSampler().sample(null); } 

    如果响应中没有foo子字符串,则上述放置在Beanshell PostProcessor中的代码将再次执行父采样器,但是这种方式将无法在侦听器中看到执行结果,也不会将其存储到中。 jtl文件,基本上您只会执行一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM