Java Jmeter:如果在响应cookie中找不到分词字符串,则调用HTTP采样器请求
我必须实现一个场景,在这个场景中,如果同一个请求失败,我必须最多调用5次,并且基于响应,我正在文件中写入一些内容。 当从cookie中找不到字符串时,就会发生失败,我将其捕获为常规exp 为了解决这个问题,我添加了带有计数器的while循环,但脚本一直工作到50000次迭代,然后出现内存不足错误。 如果我不让while循环调用同一个请求5次,那么同一个脚本可以在同一个JVM上运行100万次,没有任何问题 看起来Jmeter中的控制器以某种方式消耗了更多内存并抛出了内存 是否可以通过Beanshell后处理器调用相同的HTTP请求Java Jmeter:如果在响应cookie中找不到分词字符串,则调用HTTP采样器请求,java,while-loop,jmeter,Java,While Loop,Jmeter,我必须实现一个场景,在这个场景中,如果同一个请求失败,我必须最多调用5次,并且基于响应,我正在文件中写入一些内容。 当从cookie中找不到字符串时,就会发生失败,我将其捕获为常规exp 为了解决这个问题,我添加了带有计数器的while循环,但脚本一直工作到50000次迭代,然后出现内存不足错误。 如果我不让while循环调用同一个请求5次,那么同一个脚本可以在同一个JVM上运行100万次,没有任何问题 看起来Jmeter中的控制器以某种方式消耗了更多内存并抛出了内存 是否可以通过Beanshe
- whilecontroller:condition
${uuuu javaScript(${counter}<5&&“${foo}”!=“bar”,)}
- 计数器:开始
,递增1
,参考名称1
计数器
- 你的取样器
- 计数器:开始
您的采样器将被执行5次,或者直到${foo}
变量值不等于条
,无论最先出现的是什么。有关全面的解释和更多示例,请参见
if (!prev.getResponseDataAsString().contains("foo")) {
ctx.getCurrentSampler().sample(null);
}
如果响应中没有foo
子字符串,则放入的上述代码将再次执行父采样器,但这样您将无法在侦听器中看到执行结果,并且不会将其存储到.jtl文件中,基本上只有一次执行谢谢你的快速回答。事实上,我已经添加了第一个解决方案,在从csv文件读取50000条记录后,内存不足。如果我不将while循环设置为这种情况,它将从csv读取所有100万条记录,并在没有任何错误的情况下完成事务,但在这种情况下,如果失败,我将无法重试5次。因此,我想检查任何替代解决方案,以便在没有While循环的情况下执行相同的操作。对于方法2,我有一个问题,如果我在beashell后处理器中添加这个,它会捕获正则表达式吗?它会再次返回后处理器以获取失败的采样器吗?有没有办法把计数器这样的逻辑放在这里?