Jmeter:迭代并递增每个请求然后返回

Jmeter: iterate and increment with every request then go back

我 JDBC 请求 returns 一个像这样的字符串:"this is an example"。我希望能够按字符拆分该字符串(即:var_1=t、var_2=h、var_3=i 等)并在 HTTP 请求中迭代它们.不仅迭代,而且每次请求都会增加搜索模式,然后在最后减少,如:

  1. 请求:t
  2. 请求:th
  3. 请求:thi
  4. .......
  5. 请求:thi
  6. 请求:第
  7. 请求:t

现在我正在使用一个由 jdbc 请求组成的线程组,jsr223 采样器(我也尝试过使用 beanshell 采样器,但也没有成功..),一个 forEach 控制器来遍历值,一个 http 请求和一个响应断言。我一直无法让它工作,因为我卡在了 jsr223 配置上。我想正确的 beanshell 脚本可以解决这个问题,但我很讨厌 groovy 脚本..

在您的 JDBC 请求后添加一个 BeanShell 采样器,在代码区域使用以下代码:

String MyVar = vars.get("MyVar");\ MyVar is the name of the variable that hold the string returned from your JDBC request.
int x = MyVar.length();

for(i=3;i<=MyVar.length();i++){
    vars.put("Var_" + (i-2), MyVar.substring(0,i));
    vars.put("Var_" + (x * 2 - i -1), MyVar.substring(0,i));

}

然后按如下方式配置您的 ForEach 控制器:

  • 输入变量前缀: Var
  • 输出变量名: variable

现在您可以在 HTTP 请求中使用 ${variable},它将包含您想要的值。