JMeter循环,直到响应值发生变化

JMeter循环,直到响应值发生变化,jmeter,Jmeter,我想使用JMeter完成以下工作流 从URL调用获取结果(例如:) 如果响应消息包含“someVar=SUCCESS”,JMeter测试将通过 否则,如果响应消息包含“someVar=FAIL”,JMeter测试将失败 否则,如果响应消息不同,请等待x秒,然后重试该代码块。尝试重试代码块最多y次 在JMeter中是否可能出现类似的情况?如果有,有人举个例子吗?最简单的方法是使用 其中最强大的是 对于您的用例,以下代码示例可能会有所帮助: if new String(data).contain

我想使用JMeter完成以下工作流

  • 从URL调用获取结果(例如:)
  • 如果响应消息包含“someVar=SUCCESS”,JMeter测试将通过
  • 否则,如果响应消息包含“someVar=FAIL”,JMeter测试将失败
  • 否则,如果响应消息不同,请等待x秒,然后重试该代码块。尝试重试代码块最多y次

在JMeter中是否可能出现类似的情况?如果有,有人举个例子吗?

最简单的方法是使用

其中最强大的是

对于您的用例,以下代码示例可能会有所帮助:

if new String(data).contains("someVar=SUCCESS")
    Failure = false;
else
    Failure = true;
对于
FAIL


对于重试,您可以使用一些变量作为条件,如设置为
true
continue
。当您感觉良好时,根据需要重试多次-只需将
continue
变量设置为
false

是的,很有可能

我没有现成的例子,但这里是您需要的组件。 逻辑应该是直截了当的:

HTTP采样器

断言(这将引发用户定义的错误)

而控制器

JMeter中的正则表达式(文章)

用户定义的Vaiables(文章)

本教程应完全满足您的需要:


如果链路损坏,则使用WHILE循环查看提供的链路详细信息。在循环外设置用户定义的变量,在WHILE条件下使用该变量,然后使用beanshell采样器根据响应设置变量。是。并添加错误消息以通知问题的内容和位置:FailureMessage=“Thread:”+ctx.getThreadGroup().getName()+“someVar:”+data;