如果失败或 ResponseCode 不等于 200,则 Jmeter 重试请求

Jmeter Retry Request if failed or ResponseCode not equal to 200

我有一个包含数百条记录的 CSV 文件,我现在有时在多线程或多线程的 HTTP 采样器中使用它 returns 一个错误,我没问题,但我想重试以防万一没有我正在提取的 ResponseCode 200,但不确定如何仅重试该请求,而且我想将尝试限制为 5

我试过将 while 控制器与 Counter 一起使用,但不知何故无法做到这一点。请帮忙。

这是我试过的

  1. 您需要在计数器中定义 Exported Variable Name 否则它没有任何意义:

  2. 您需要在 __groovy() 函数中使用 vars shorthand for JMeterVariables class instance 来获取 CounterSuccess 变量值

    ${__groovy(vars.get('Status') != 'Success' && (vars.get('Counter') as int) < 5,)}
    
  3. Since JMeter 3.1 you should be using JSR223 Test Elements and Groovy language so consider replacing your Beanshell Assertion with JSR223 Assertion

将以下内容添加到 while controller ${__javaScript(parseInt(vars.get("Response_code"))!=200)}

while controller里面添加相关请求

为上述请求添加JSR223 PostProcessor,并在“JSR223 PostProcessor”中添加以下代码 vars.put("Response_code",prev.getResponseCode());

user defined variables

中设置Response_code变量