Jmeter中存储的SOAP调用请求在哪里?

时间:2015-05-19 17:31:59

标签: jmeter

我正在尝试使用BeanShell将SOAP请求打印到文件中,因为我必须进行一些验证。

我可以使用String response = prev.getResponseDataAsString();获取SOAP调用的响应,该响应可以打印到文件中。

类似地,在Jmeter中可以使用什么方法来获取为SOAP调用发送的请求?

注意:我尝试使用SoapSampler.getxmldata()。但它没有给我结果。

2 个答案:

答案 0 :(得分:1)

如果SOAP请求作为HTTP POST调用提交,并且xml内容为POST正文,则prev.getSamplerData()将包含请求信息。

例:
在beanshell后处理器中:vars.put("requestData", prev.getSamplerData());

结果:

requestData=POST url

POST data:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
      ...
  </soap:Body>
</soap:Envelope>

答案 1 :(得分:1)

如果您使用SOAP/XML-RPC Request,则可以从Beanshell PostProcessor访问它的XML正文:

String body = ctx.getCurrentSampler().getXmlData();

其中ctxJmeterContext

的简写