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


问题内容

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

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

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

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


问题答案:

如果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>