Jmeter:对每个请求进行迭代和递增,然后返回

时间:2018-04-04 12:00:56

标签: testing groovy jmeter beanshell jsr223

我有JDBC请求返回一个字符串,如:"这是一个例子"。我希望能够按字符分割该字符串(即:var_1 = t,var_2 = h,var_3 = i等等)并在HTTP请求中迭代它们。不仅迭代,而且每次请求都会增加搜索模式,然后在结尾处减少,如:

  1. 要求:t
  2. 要求:th
  3. 要求:thi
  4. .....
  5. 要求:thi
  6. 要求:th
  7. 要求:t
  8. 现在我正在使用一个由jdbc请求组成的线程组,jsr223 sampler(我已尝试过使用beanshell sampler,但也没有成功..),一个forEach控制器通过值迭代,一个http请求和一个回应断言。我还没有能够使它工作,因为我陷入了jsr223配置。我想正确的beanshell脚本可以解决这个问题,但我很狡猾的脚本..

1 个答案:

答案 0 :(得分:1)

在JDBC请求之后使用代码区域中的以下代码添加BeanShell Sampler:

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}来保存您想要的值。