在空手道DSL中打印SOAP响应

时间:2020-03-17 12:30:08

标签: soap karate

我有此功能文件,我得到了正确的响应。我想打印从响应中获得的价值,但是以某种方式我无法做到这一点。试图研究一些东西,但我无能为力。

有人可以帮忙吗?预先感谢

Feature: 
    test of soap

Background:
* url 'http://www.dataaccess.com/webservicesserver/numberconversion.wso'

Scenario: soap 1.1
Given request
"""
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.dataaccess.com/webservicesserver/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:NumberToDollars>
         <web:dNum>10</web:dNum>
      </web:NumberToDollars>
   </soapenv:Body>
</soapenv:Envelope>
"""
When soap action 'Conversion'
Then status 200

* print '\n', response

#working
* match response /Envelope/Body/NumberToDollarsResponse/NumberToDollarsResult == 'ten dollars'

#not working
* print response.Envelope.Body.NumberToDollarsResponse.NumberToDollarsResult

#not working
* print response /Envelope/Body/NumberToDollarsResponse/NumberToDollarsResult

#not working
* def x = response /Envelope/Body/NumberToDollarsResponse/NumberToDollarsResult
* print x

1 个答案:

答案 0 :(得分:1)

如果您阅读文档,print仅在右侧处理JS,而不处理XPath。

对于您想要的内容,请分两个步骤进行操作:

 * def temp = /Envelope/Body/NumberToDollarsResponse/NumberToDollarsResult
 * print temp