webservice返回
<SOAP: Envelope>
<SOAP: Header>
<SOAP: Body>
<RootElement>
<![CDATA[Base64 encoded string]]>
</RootElement>
</SOAP : Body>
</SOAP: Header>
Base64编码的字符串实际上是EXI编码的XML。我知道如何解码基64,然后将EXI转换为XML。让我们调用MyEXIEncoder.class (Java类)
但是,我们目前有很多基于XML响应的SOAP测试用例。
目前,唯一的方法似乎是添加一个groovy脚本来调用我的java类,但这是一个额外的测试步骤,这意味着我必须编写一些脚本来更新我的SOAP测试用例。更多的是,我不确定我的断言将如何工作,以及对于我的测试用例(我有几百个测试用例)会发生多大的变化。
我需要一个办法
从测试步骤中截取SOAP响应,使用执行解码的自定义类,并返回响应返回SOAP,以便现有断言能够工作。
任何帮助都是非常感谢的!
提前谢谢。
发布于 2017-10-06 16:22:10
添加监视器侦听器,如这里所示
e.g
Event Handler:
//MonitorListener.afterProxy
// get the raw response as a string
def str = new String( messageExchange.getResponseContent() )
// Decode
</ConversionRateResult", "Result>1.0</ConversionRateResult");
// save the response back
messageExchange.rawResponseBody = str 编辑:基于OP的注释,使用链接进行更新以使用上下文。
根据SOAPUI的技巧和技巧点6,使用RequestFilter.afterRequest可以将响应设置回。
// write it back
context.httpResponse.responseContent = contentMonitorListener.afterProxy不提供上下文对象。
RequestFilter.afterRequest +使用context被证明是更好的解决方案。
https://stackoverflow.com/questions/46609839
复制相似问题