【问题标题】:Printing SOAP response in Karate DSL在空手道 DSL 中打印 SOAP 响应
【发布时间】:2020-03-17 12:30:08
【问题描述】:

我有这个功能文件并且我得到了正确的响应。我想打印从响应中获得的值,但不知何故我无法做到这一点。试图研究一些东西,但我无法自拔。

有人可以帮忙吗?提前致谢

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

【问题讨论】:

    标签: soap karate


    【解决方案1】:

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

    你想要的,请分两步做:

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

    【讨论】:

    • 彼得,你能帮我解释一下如何处理这个吗?我不太确定。如果我这样做: * def temp = /Envelope/Body * print temp * def temp2 = temp/NumberToDollarsResponse/NumberToDollarsResult * print temp2 我没有得到值(尝试了更多变体)
    • @EduardFarkaš XML 很棘手。查看示例并在需要时提出新问题:github.com/intuit/karate/blob/master/karate-junit4/src/test/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    相关资源
    最近更新 更多