我有SOAP请求,如下所示:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:gd="http://test.com/gds-mvmnt">
<env:Header/>
<env:Body>
<ns1:getContainer env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<code xsi:type="xsd:string">PCK26397841</code>
<messageId xsi:type="xsd:string"/>
</ns1:getContainer>
</env:Body>
</env:Envelope>
我需要创建基于代码标记值选择响应的模拟。 无需修改回复。响应按原样添加到模拟中。只需要这样的逻辑:如果代码A然后响应1,如果代码B然后响应2,依此类推。 请帮我解决基本的groovy脚本。
答案 0 :(得分:0)
通过编写简单的Script Dispatch
可以实现这一点。
这是方法:
这是脚本:
//Define desired code and response name
def responseMap = [A: 'Response1', B: 'Response2']
//Check if the request is not empty
assert mockRequest.requestContent, 'Request is empty'
//Extract the code
def code = new XmlSlurper().parseText(mockRequest.requestContent).'**'.find{it.name() == 'code'}?.text()
//Return the respective response
return responseMap[code]