Как использовать XmlSlurper в soapUI

У меня есть приведенный ниже groovy-скрипт, который я запускаю в groovyconsole, и он работает нормально. Я нахожу количество дочерних узлов для определенного узла в своем ответе xml и распечатываю необходимые значения для каждого дочернего узла.

def path = new XmlSlurper().parse(new File('C://SoapUI//ResponseXML/Response.xml'))
NumberOfPositions =  path.Body.GetPositionsAggregateResponse.GetPositionsAggregateResult.AccountPositions.Securities.Positions.children().size()
for(def i=0; i<NumberOfPositions; i++){
println i

println  path.Body.GetPositionsAggregateResponse.GetPositionsAggregateResult.AccountPositions.Securities.Positions.PositionSummary[i].Legs[0].PositionAggregate[0].PositionID[0].text()
println  path.Body.GetPositionsAggregateResponse.GetPositionsAggregateResult.AccountPositions.Securities.Positions.PositionSummary[i].Legs[0].PositionAggregate[0].AccountID[0].text()

}

Я хочу выполнить ту же задачу в soapUI, но не смог заставить ее работать с помощью groovyutils, как указано здесь: http://www.soapui.org/Scripting-Properties/tips-a-tricks.html

1) Как мне проанализировать ответ xml на мой запрос к xmlSlurper? def path = новый XmlSlurper().parse (?)

2) Смогу ли я использовать тот же код, что и в soapUI?

Любая помощь приветствуется. Спасибо!


person Sanjeev    schedule 24.04.2011    source источник


Ответы (2)


(1)
Для разбора ответного сообщения вы можете попробовать следующее:

def response = context.expand( '${TestRequest#Response}' )
def xml = new XmlSlurper().parseText(response)

TestRequest представляет имя вашего тестового шага, который отправляет сообщение запроса SOAP.

(2)
Да, soapUI должен обрабатывать любой код Groovy.

person Robert Strauch    schedule 12.05.2011

Вы можете напрямую использовать обычный скрипт groovy в SoapUI. Проверьте эту ссылку, она может вам помочь. Но помните, что вместо «println» вам нужно использовать «log.info» при написании сценариев в SoapUI.

person stack4abhi    schedule 09.04.2014