jmeter:使用jdbc预处理器的soap / xml-rpc请求

时间:2015-03-31 15:33:16

标签: web-services soap jmeter

我正在尝试构建一个将调用Web服务的jmeter(v2.12)测试计划。我正在使用SOAP / XML-RPC请求采样器来执行此操作。但是,请求的一个参数必须是动态的,我正在考虑使用JDBC预处理器。

我能够执行soap请求,它正在工作,但我无法使其动态化,传递从jdbc预处理器中提取的值。

我的测试计划如下:

Test Plan

JDBC连接配置如下所示:

JDBC Connection Configuration

然后,我将JDBC PreProcessor定义为:

ldbc preprocessor

最后我的SOAP请求如下:

enter image description here

请注意,我修改了soap请求并包含了$ {id},但是,当我运行测试计划时,我的Web服务返回一个错误,告诉Unmarshalling Error:对于输入字符串:“$ {id}”。因此,正如您所看到的,jMeter没有用数据库的返回替换变量。

所以,我的问题是,我如何做这种测试计划(使用jdbc预处理器的动态soap / xml-rcp请求)?

1 个答案:

答案 0 :(得分:0)

根据User Manual

  

如果提供了“变量名称”列表,则对于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指南。