我正在尝试使用BeanShell将SOAP请求打印到文件中,因为我必须进行一些验证。
我可以使用String response = prev.getResponseDataAsString();
获取SOAP调用的响应,该响应可以打印到文件中。
类似地,在Jmeter中可以使用什么方法来获取为SOAP调用发送的请求?
注意:我尝试使用SoapSampler.getxmldata()
。但它没有给我结果。
答案 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();
其中ctx
是JmeterContext类