Tho*_*n79 24 xml groovy web-services soapui
对于所有SoapUI常客来说,这可能是一个非常简单的方法.
在SoapUI模拟服务响应脚本中,如何在我回复的请求中提取值?
假设传入的请求有
<ns1:foo>
<ns3:data>
<ns3:CustomerNumber>1234</ns3:CustomerNumber>
</ns3:data>
</ns1:foo>
Run Code Online (Sandbox Code Playgroud)
如何将"1234"变为Groovy变量?我尝试使用xmlHolder,但我似乎有错误的XPath.
(我知道如何设置属性并将其值集成到响应中.)
Sho*_*lla 32
如果您想访问SOAP请求并进行一些XPath处理,那么凭借GPath和XmlSlurper的强大功能,可以更轻松地在soapUI中执行此操作.
以下是您访问客户编号的方式:
def req = new XmlSlurper().parseText(mockRequest.requestContent)
log.info "Customer #${req.foo.data.CustomerNumber}"
Run Code Online (Sandbox Code Playgroud)
从Groovy 1.6.3(在soapUI 2.5及更高版本中使用)开始,默认情况下,XmlSlurper在名称空间感知和非验证模式下运行,因此您无需执行任何其他操作.
干杯!
Shonzilla
Mat*_*ski 24
还有一个例子:
def request = new XmlSlurper().parseText(mockRequest.requestContent)
def a = request.Body.Add.x.toDouble()
def b = request.Body.Add.y.toDouble()
context.result = a + b
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我们从请求中获取两个参数并将它们转换为双精度数.这样我们就可以对参数进行计算.此示例的示例SoapUI响应是:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://example.org/math/types/">
<soapenv:Header/>
<soapenv:Body>
<typ:AddResponse>
<result>${result}</result>
</typ:AddResponse>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
您可以看到计算结果如何传递回响应.
归档时间: |
|
查看次数: |
41070 次 |
最近记录: |