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

Testing Jmeter:迭代并递增每个请求,然后返回,testing,groovy,jmeter,beanshell,jsr223,Testing,Groovy,Jmeter,Beanshell,Jsr223,我有一个JDBC请求,它返回一个字符串,如:这是一个示例。我希望能够按字符分割该字符串,即:var_1=t、var_2=h、var_3=I,等等。。然后在HTTP请求中迭代它们。不仅迭代,而且增加每个请求的搜索模式,然后在最后减少,如: 请求:t 请求:th 请求:thi ..... 请求:thi 请求:th 请求:t 现在我正在使用一个由jdbc请求、jsr223采样器组成的线程组,我也尝试了beanshell采样器,但也没有成功..,一个forEach控制器通过值、http请求和响应断言进行

我有一个JDBC请求,它返回一个字符串,如:这是一个示例。我希望能够按字符分割该字符串,即:var_1=t、var_2=h、var_3=I,等等。。然后在HTTP请求中迭代它们。不仅迭代,而且增加每个请求的搜索模式,然后在最后减少,如:

请求:t 请求:th 请求:thi ..... 请求:thi 请求:th 请求: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 输出变量名称:变量
现在,您可以在HTTP请求中使用${variable},它将保存您想要的值。

非常感谢!它工作得很好。最初调用bsh方法时出现一些问题:eval sourceed file:inline evaluation,但我已修复。我知道我正在推送它。但是否可以修改它,使它从前3个字符开始,而不是从第一个字符开始?示例:不是从1开始,然后是2,然后是3等等,而是从123开始,然后是1234,然后是12345,然后再以123结束?tnx将beanshell从第三个角色开始,我自己刚找到它,但tnx感谢您的帮助!似乎我确实有一些问题..在任何情况下,它都不会执行字符串两次..而且它必须执行两次..一个问题可能是我没有在forEach控制器的末尾索引处为loopinclusive指定任何内容。我不知道这是否重要,但当它到达完整字符串时,采样器就停止了,不会再返回到3个字符。有没有可能设置一个条件,即第三个字符永远不应该是空白?tnxI再次编辑了答案,请尝试一下,如果有错误,请告诉我,如果有效,我将检查空白