gpt4 book ai didi

testing - 如何在 Karate DSL 中操作 xml 文件的变量?

转载 作者:行者123 更新时间:2023-11-28 20:26:42 29 4
gpt4 key购买 nike

使用 Karate DSL 的 SOAP 服务的示例数量非常有限。

我想做的是创建一个 XML 文件,稍后我将使用它作为模板。因为它将成为一个模板,所以我需要使它的某些部分动态化。在 .json 文件上很容易做到这一点,但我找不到在 .xml 文件上做到这一点的例子。

下面是我的 .xml 文件:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.bigldap.ttech.com/">
<soapenv:Header/>
<soapenv:Body>
<ws:createwMsisdn>
<name></name>
<password>1</password>
<appId>1</appId>
</ws:createwMsisdn>
</soapenv:Body>

我想将 name 部分转换为动态变量。

我试过 Karate 的.replace.set 方法,但没有用。

* def user = read ('classpath:xxx/assign-name-password.xml')
* replace user.name = anotheruser.username
* print user

当 print 工作时,它只向我显示标签,作为空标签。 ()我找不到任何相关示例。

任何帮助将不胜感激。提前致谢。

最佳答案

我认为您错过了这组示例,它在文档中被引用但不是演示的一部分:xml.feature

我想你会喜欢你找到的东西。有很多选项,包括通过数据驱动表,下面只是几个选项:

* def name = 'John Smith'
* def xml =
"""
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.bigldap.ttech.com/">
<soapenv:Header/>
<soapenv:Body>
<ws:createwMsisdn>
<name>#(name)</name>
<password>1</password>
<appId>1</appId>
</ws:createwMsisdn>
</soapenv:Body>
</soapenv:Envelope>
"""
* match xml//name == 'John Smith'
* set xml/Envelope/Body/createwMsisdn/name = 'Jane Doe'
* match xml//name == 'Jane Doe'

关于testing - 如何在 Karate DSL 中操作 xml 文件的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53430439/

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