JMeter在Spring Service How-to中获取jdbc请求数据并使用http post请求发送每个数据


问题内容

我最近使用了jmeter,尝试从jdbc请求中获取一些数据,并在带有http请求的spring服务中发送它们。

让我更具体地解释。

我使用以下查询:

SELECT MEMBER_ID, 
       PERSON_NAME, 
       PERSON_SURNAME 
FROM MEMBER, 
     PERSON 
WHERE CDT_MEMBER_ID = CDT_PERSON_ID

从上述请求中,将值插入以下变量中:id,name,surname,其中我在JDBC请求控制面板的“变量名称”字段中定义。(在每个变量中返回10个值,因此我将它们视为数组)

然后我使用“ For
Each”控制器尝试循环到值中,但我不能。进入“对于每个”控制器面板,如果我将其设置为“输入变量前缀”(例如,id)和“输出变量名称”变量,则循环可以正常工作,然后${variable}在spring服务中使用内部的http请求发送。

但是我想每次都以字符串形式发送一行(id [i] +名称[i] +姓氏[i])。怎么办

我还尝试编写一些脚本来使用beanshell预处理程序定义此字符串,但没有任何效果。


问题答案:

好的,据我所知,我必须在“ JDBC请求”和“ ForEach控制器”之间使用“ BeanShell
Sampler”。然后使用beanShell脚本,获取数组的长度,编写脚本:

Integer x = Integer.parseInt(vars.get(dataId_#));

在for循环中,我将数据插入String数组中,如下所示:

String[] dataArray = new String[x];
for (i = 0; i < x; i++) {
vars.put("dataArray_" + i, vars.get("dataId_" + i) + " " + vars.get("name_" + i) + " " + vars.get("surname_" + i));
}