当前位置: 首页 > 知识库问答 >
问题:

请放心,xpath不会响应xml值

花阳辉
2023-03-14

我无法从resultDesc中找到文本:

given().config(RestAssured.config().xmlConfig(xmlConfig().with().namespaceAware(false)))
        .log().all()
        .body(requestAsString)
        .when().post("/services/SubscribeMgrService")
        .then().log().all()
        .assertThat().statusCode(200)
    //            .body("ChangeOptionalOfferResultMsg/ResultHeader/ResultCode",equalTo("102023093"));
//            .body("ns2:ResultCode",equalTo("102023093"));
                .body("/soapenv:Envelope/soapenv:Body/ns4:ChangeOptionalOfferResultMsg/ResultHeader/ns2:ResultCode",equalTo("102023093"));
       

我已经尝试了与命名空间,但我一直得到:

XML path /soapenv:Envelope/soapenv:Body/ns4:ChangeOptionalOfferResultMsg/ResultHeader/ns2:ResultCode doesn't match.
Expected: 102023093
  Actual: <ChangeOptionalOffer161102010133The current request is duplicate with the earlier request that was received and was processed.020220215154146nullnullnullnullnull>

实际反应是:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <ns4:ChangeOptionalOfferResultMsg xmlns:ns7="http://www.amdocs.com/wsdl/bss/acctcredit" xmlns:ns6="http://www.amdocs.com/wsdl/bss/query" xmlns:ns5="http://www.amdocs.com/wsdl/bss/newsubscriber" xmlns:ns4="http://www.amdocs.com/wsdl/bss/subscribemgr" xmlns:ns3="http://www.amdocs.com/wsdl/bss/subscribe" xmlns:ns2="http://www.amdocs.com/wsdl/bss/shared">
      <ResultHeader>
        <ns2:CommandId>ChangeOptionalOffer</ns2:CommandId>
        <ns2:Version>1</ns2:Version>
        <ns2:TransactionId>6</ns2:TransactionId>
        <ns2:SequenceId>1</ns2:SequenceId>
        <ns2:ResultCode>102010133</ns2:ResultCode>
        <ns2:ResultDesc>The current request is duplicate with the earlier request that was received and was processed.</ns2:ResultDesc>
        <ns2:OrderId>0</ns2:OrderId>
        <ns2:OperationTime>20220215154146</ns2:OperationTime>
        <ns2:Reserve1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <ns2:Reserve2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <ns2:Reserve3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <ns2:TenantId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <ns2:Language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
      </ResultHeader>
    </ns4:ChangeOptionalOfferResultMsg>
  </soapenv:Body>
</soapenv:Envelope>

我尝试过一些链接:https://github.com/rest-assured/rest-assured/wiki/Usage#xml-名称空间

是的,下面的内容可能有用,但我真的很感激能够理解手头的这个问题吗?

https://stackoverflow.com/questions/28298851/finding-all-xml-nodes-with-rest-assureds-xmlpath

共有1个答案

赵嘉赐
2023-03-14

我忘了在之后声明NS。namespaceAware(true)bit

.declareNamespace("soapenv","http://schemas.xmlsoap.org/soap/envelope/")

感谢:

https://stackoverflow.com/questions/55434178/how-to-validate-specific-node-from-soap-xml-response-with-several-namespaces-usi

 类似资料:
  • 我的JSON响应如下所示: 我正在尝试提取成功消息和数据。但是,我的控制台输出保持为null。 提取响应后,我的代码将使用Rest Assured接收空响应: 我对成功和数据的响应均为空

  • 我是新来的,请放心。我尝试了下面的代码来获得响应 这是json响应 如何计算id或列表的大小。帮助我。

  • 我使用的是junit4提供的restassured。在我的测试方法中,我在mongodb中创建了一个对象,当我运行测试时,它也成功地持久化了。但是我需要存储创建的id,所以我尝试获取响应体。但是< code>response.getBody()。asString()为空。 当我从外部调用restendpoint时,它会返回带有相关字段的响应体,因此rest API没有问题。 如果上述问题没有答案,

  • 我如何用放心(2.4.0)检查响应json是否为空列表? 给定响应(带有标头),我尝试了:

  • 有什么方法可以按顺序验证响应吗? 我可以通过以下方式获得特定的id值 当我做这样的事情时,我会得到所有的id 需要验证结果是否符合DESC/ASC订单

  • 假设我调用了一个RESTful服务,它在响应体中返回这个 我只需要得到映射键为' en '的值 所以我期望过滤后的结果会像这样 [“Reason1 英文翻译”、“Reason2 英文翻译”] 或 {"Reason1英文翻译","Reason2英文翻译"} 我已经尝试了下一个代码,但仍未完成 然后它返回 [{en=Reason1英文翻译,es=Reason2西班牙文翻译},{en=Reason2英文