gpt4 book ai didi

java - 使用 Jayway 的放心验证 XML 属性

转载 作者:行者123 更新时间:2023-12-02 03:40:00 26 4
gpt4 key购买 nike

我正在尝试使用 Jayway 的 Rest-assured XML support 来验证以下 XML 中的 xmlns:ns1="http://thomas-bayer.com/blz/" .

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns1:getBankResponse xmlns:ns1="http://thomas-bayer.com/blz/">
<ns1:details>
<ns1:bezeichnung>ABK-Kreditbank</ns1:bezeichnung>
<ns1:bic>ABKBDEB1XXX</ns1:bic>
<ns1:ort>Berlin</ns1:ort>
<ns1:plz>10789</ns1:plz>
</ns1:details>
</ns1:getBankResponse>
</soapenv:Body>
</soapenv:Envelope>

据我了解,

xmlns:ns1="http://thomas-bayer.com/blz/"

属性
<ns1:getBankResponse

@ 前缀应返回与 @ 后面的词干匹配的属性。

假设 xmlString 等于上面的 SOAP 响应 XML,以下所有内容均返回 null:

String nameSpace1 = given(xmlString).getString("Envelope.Body.getBankResponse.@xmlns:ns1");
String nameSpace2 = given(xmlString).getString("Envelope.Body.getBankResponse.@ns1");
String nameSpace3 = given(xmlString).getString("Envelope.Body.getBankResponse.@xmlns");
List<String> nameSpace = given(xmlString).get("Envelope.Body.getBankResponse[0].@xmlns:ns1");
List<String> nameSpace = given(xmlString).get("Envelope.Body.getBankResponse[0].@ns1");
List<String> nameSpace = given(xmlString).get("Envelope.Body.getBankResponse[0].@xmlns");

任何帮助将不胜感激。

PS。我知道 Rest-assured 主要与 RESTful API 相关,但它可以用于测试 SOAP。

最佳答案

在即将推出的 REST Assured 版本(可能是 2.9.1)中,您将能够将 XmlPath 配置为不了解命名空间。所以这意味着你可以这样做:

XmlPath xmlPath = new XmlPath(xmlResponse).using(xmlPathConfig().namespaceAware(false));
assertThat(xmlPath.getString("soapenv:Envelope.soapenv:Body.ns1:getBankResponse.@xmlns:ns1"), equalTo("http://thomas-bayer.com/blz/"));

您今天可以在添加以下 Maven 存储库后根据版本 2.9.1-SNAPSHOT 尝试此操作:

<repositories>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<snapshots />
</repository>
</repositories>

关于java - 使用 Jayway 的放心验证 XML 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36941776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com