У меня есть следующий вывод запроса из сценария SoapUI:SoapUI - Передача несколько экземпляров элемента вывода запроса значения свойства
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cai3g="http://schemas.test.com/cai3g1.2/">
<S:Header>
<cai3g:SessionId>aaaa6227cc81d</cai3g:SessionId>
<cai3g:TransactionId>333</cai3g:TransactionId>
<cai3g:SequenceId>85966385</cai3g:SequenceId>
</S:Header>
<S:Body>
<ns2:GetResponse xmlns:ns2="http://schemas.test.com/cai3g1.2/">
<ns2:Attributes>
<getResponse:getResponse publicId="sip:[email protected]_domain.org" xmlns="http://schemas.test.com/testnode/UserData/TEST_NODE/" xmlns:getResponse="http://schemas.test.com/testnode/UserData/TEST_NODE/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<publicId>sip:[email protected]_domain.org</publicId>
<services>
<incoming-communication-barring>
<icb-user-configuration>
<active>true</active>
<icb-ruleset>
<icb-rule id="rule1">
<id>rule1</id>
</icb-rule>
<icb-rule id="rule2">
<id>rule2</id>
</icb-rule>
<icb-rule id="rule3">
<id>rule3</id>
</icb-rule>
</icb-ruleset>
</icb-user-configuration>
</incoming-communication-barring>
</services>
</getResponse:getResponse>
</ns2:Attributes>
</ns2:GetResponse>
</S:Body>
</S:Envelope>
Я хотел бы, чтобы какие-то образом извлечь имена правил из этого, например, «rule1», «rule2» и «rule3» и хранить их в строке. В идеале я бы сохранил их в значении свойства в свойствах Test Case, в форме: ["rule1", "rule2", "rule3"], так что в более позднем TestStep я могу перебирать эти значения в цикле for ,
Я надеюсь достичь что-то вроде следующего в более позднем TestStep
String rules = ${Properties#rulesFromPropertyTransfer}
rules.each {
//do something with each rule
}
Однако, я не могу понять, как извлечь даже publicId и сохранить его в переменной, гораздо меньше, получить дальше вниз по дереву к icb-правила.
Я пробовал вариации:
declare namespace ns2='http://schemas.test.com/cai3g1.2/';
declare namespace getResponse='http://schemas.test.com/testnode/UserData/TEST_NODE/';
//ns2:GetResponse/ns2:Attributes/getResponse:getResponse/publicId
Но я обычно получаю «нулевой» ответ в окне передачи имущества. Я иду об этом неправильно, или есть способ сделать то, что я хочу?
[См этой ссылке ...] (http://stackoverflow.com/questions/32338829/how-to-extract-valuesof-tags-in-a-nested-xml-using-groovy- in-soap-ui/32569397 # 32569397) Я предлагаю вам найти любые существующие вопросы, а затем спросить, не получите ли вы это :). Всегда рад помочь :) –
Спасибо Eiston. Перед публикацией я просмотрел несколько вопросов и руководств, но кажется, что наличие строки getResponse: getResponse ... в XML отбрасывает все методы, которые я нашел до сих пор. Я попробую предложения по указанной вами ссылке. –