xml 属性的空手道嵌入式表达式未按预期工作
Karate Embedded Expression not working as expected for xml attribute
这是:3_PostData_Request.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">
<S:Body>
<SucceededGetData RequestID="#(request_uuid)">some text</SucceededGetData>
<MessageDelivered OfferID="#(request_uuid)" />
</S:Body>
</S:Envelope>
这是场景文件:
Scenario: test
* def UUID = function(){ return java.util.UUID.randomUUID() }
* def request_uuid = call UUID
* def req = read('classpath:3_PostData_Request.xml')
* print req
这是结果:
<S:Body>
<SucceededGetData RequestID="ab5bbb38-d462-42f5-afd2-49c47fd59365">some text</SucceededGetData>
<MessageDelivered OfferID="#(request_uuid)"/>
</S:Body>
</S:Envelope>
我想知道为什么会这样。为什么 Karate 能够为其中包含一些文本的 xml 元素替换 #(request_uuid),为什么不能为没有任何文本的元素替换#(request_uuid)。我怎样才能在这两种情况下无缝地实现替换。我正在使用空手道 0.7.0.1。谢谢!
我也在他们的 Git 回购中添加了一个问题。等待他们的回复。 https://github.com/intuit/karate/issues/341
是的,这是一个错误!您有一个解决方法:
* set response /Envelope/Body/MessageDelivered/@OfferID = request_uuid
这是:3_PostData_Request.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">
<S:Body>
<SucceededGetData RequestID="#(request_uuid)">some text</SucceededGetData>
<MessageDelivered OfferID="#(request_uuid)" />
</S:Body>
</S:Envelope>
这是场景文件:
Scenario: test
* def UUID = function(){ return java.util.UUID.randomUUID() }
* def request_uuid = call UUID
* def req = read('classpath:3_PostData_Request.xml')
* print req
这是结果:
<S:Body>
<SucceededGetData RequestID="ab5bbb38-d462-42f5-afd2-49c47fd59365">some text</SucceededGetData>
<MessageDelivered OfferID="#(request_uuid)"/>
</S:Body>
</S:Envelope>
我想知道为什么会这样。为什么 Karate 能够为其中包含一些文本的 xml 元素替换 #(request_uuid),为什么不能为没有任何文本的元素替换#(request_uuid)。我怎样才能在这两种情况下无缝地实现替换。我正在使用空手道 0.7.0.1。谢谢!
我也在他们的 Git 回购中添加了一个问题。等待他们的回复。 https://github.com/intuit/karate/issues/341
是的,这是一个错误!您有一个解决方法:
* set response /Envelope/Body/MessageDelivered/@OfferID = request_uuid