Доступ к XML-запросу в скрипте SOAP UI - PullRequest
7 голосов
/ 05 августа 2010

У меня есть ложный ответ, который должен вернуть значение, которое было в запросе. Например, этот запрос может прийти:

<myReqest><myValue>123</myValue></myRequest>

У меня уже есть mockResponse:

<myResponse><yourValue>${theValue}</yourValue></myResponse>

Я знаю, как установить значение $ {theValue} через переменную контекста, но я не могу понять, как получить доступ к запросу и проанализировать его для значения.

Любая помощь будет высоко ценится.

Спасибо, Jonny

Ответы [ 5 ]

3 голосов
/ 23 августа 2010

Вы можете использовать функцию сценариев для настройки своего ответа.

В окне mockResponse вы можете нажать на меню скрипта.

Здесь вы можете поместить что-то вроде (используя XPath для полной квалификации искомого элемента):

context.theValue = 
mockRequest.getRequestXmlObject().selectPath("//Message/text()")[0];

Когда вы вызываете MockResponse, переменная theValue должна автоматически обновляться.

1 голос
/ 04 февраля 2015

Используя Dispatch SEQUENCE, MokcResponse может быть:

<myResponse><yourValue>${#MockResponse#Request#//myValue}</yourValue></myResponse>
1 голос
/ 23 ноября 2010

Вопрос / ответ SoapUI, получающий параметры запроса в скрипте mock service , практически одинаков.Подведем итог:

def req = new XmlSlurper().parseText(mockRequest.requestContent)
context.theValue = req.myRequest.myValue
0 голосов
/ 19 октября 2010

Если вы используете SoapUI Pro, просто поместите курсор туда, куда вы хотите вставить значение, затем щелкните правой кнопкой мыши и выберите параметр из запроса через подменю «Получить данные ...». Эта функция, однако, доступна только в Pro версии. Используя бесплатное издание, вы должны следовать ответу Хило.

Роберт

0 голосов
/ 06 августа 2010

Я не совсем уверен в контексте, какой инструмент вы используете?

Мы используем Liquid XML Studio, у которой есть Тестовый клиент веб-сервисов , который позволяет вручную вызывать вебуслуги довольно просты, это похоже на то, что вы пытаетесь сделать, но, возможно, вы пытаетесь автоматизировать этот процесс для тестирования?

Пожалуйста, предоставьте немного больше информации.

Симон

...