这是: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>
&#13;
这是方案文件:
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
&#13;
结果如下:
<S:Body>
<SucceededGetData RequestID="ab5bbb38-d462-42f5-afd2-49c47fd59365">some text</SucceededGetData>
<MessageDelivered OfferID="#(request_uuid)"/>
</S:Body>
</S:Envelope>
&#13;
我想知道为什么会这样。为什么空手可以替换#(request_uuid)的xml元素,其中包含一些文本,为什么不替换没有任何文本的元素。如何在无聊的情况下实现替换。我使用空手道0.7.0.1。谢谢!
我在他们的Git仓库中也添加了一个问题。等待他们的回复。 https://github.com/intuit/karate/issues/341
答案 0 :(得分:1)
是的,这是一个错误!你有一个解决方法:
* set response /Envelope/Body/MessageDelivered/@OfferID = request_uuid