我最近使用了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”控制器试图循环进入值,但我不能。
进入“For each”控制器面板,如果我设置为“输入变量前缀”(例如)id和“输出变量名称”变量,循环正常工作,然后使用内部http请求发送${variable}
在春季服务。
但我想每次都发一行作为字符串(id [i] + name [i] + surname [i])。怎么办呢?
我还尝试编写一些脚本来使用beanshell预处理器定义此字符串,但没有任何效果。
答案 0 :(得分:1)
好的,据我所知,我必须在“JDBC Request”和“ForEach Controller”之间使用“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));
}