我正在尝试构建一个将调用Web服务的jmeter(v2.12)测试计划。我正在使用SOAP / XML-RPC请求采样器来执行此操作。但是,请求的一个参数必须是动态的,我正在考虑使用JDBC预处理器。
我能够执行soap请求,它正在工作,但我无法使其动态化,传递从jdbc预处理器中提取的值。
我的测试计划如下:
JDBC连接配置如下所示:
然后,我将JDBC PreProcessor定义为:
最后我的SOAP请求如下:
请注意,我修改了soap请求并包含了$ {id},但是,当我运行测试计划时,我的Web服务返回一个错误,告诉Unmarshalling Error:对于输入字符串:“$ {id}”。因此,正如您所看到的,jMeter没有用数据库的返回替换变量。
所以,我的问题是,我如何做这种测试计划(使用jdbc预处理器的动态soap / xml-rcp请求)?
答案 0 :(得分:0)
如果提供了“变量名称”列表,则对于Select语句返回的每一行,将使用相应列的值设置变量(如果提供了变量名称),并且还设置了行数起来。例如,如果Select语句返回2行3列,并且变量列表是A ,, C,则将设置以下变量:
A_#=2 (number of rows)
A_1=column 1, row 1
A_2=column 1, row 2
C_#=2 (number of rows)
C_1=column 3, row 1
C_2=column 3, row 2
因此,如果您的查询返回单个数字,则需要使用${id_1}
作为“动态字段”参数
有关如何使用Apache JMeter正确执行数据库操作的更多详细信息,请参阅The Real Secret to Building a Database Test Plan With JMeter指南。