Как возвратить динамический ответ в SoapUI MockService

Я плохо знаком с SoapUI и только что настроил очень простой MockService. Действительно ли возможно управлять ответом так, чтобы для конкретного запроса элементы ответа были динамично созданы?

Сценарий 1:

Запрос:

<record>
  <identifier>ID1</identifier>
</record>

Ответ:

<response>
  <child1>child 1</child1>
</response>

Сценарий 2:

Запрос:

<record>
  <identifier>ID2</identifier>
</record>

Ответ:

<response>
  <child2>child 2</child2>
</response>

Это для простого теста, и мне не нужен он для делания больше, чем вышеупомянутое. Я в настоящее время делаю следующий, который приводит к результатам, которые я хочу, но так как я абсолютно плохо знаком с этим, я уверен, что существуют лучшие альтернативы:

Ответ:

<response>
  ${dynElement}
</response>

Сценарий Groovy:

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(mockRequest.requestContent)
def reqRef = String.valueOf(holder.getNodeValue("//identifier"))

def child1Text = "<child1>child 1</child1>"
def child2Text = "<child2>child 2</child2>"

if (reqRef == "ID1") {
  context.setProperty("dynElement", child1Text)
} else if (reqRef == "ID2") {
  context.setProperty("dynElement", child2Text)
}
6
задан Ross 24 November 2010 в 06:42
поделиться

1 ответ

Я делаю это с помощью «шаблонных ответов» и запросов xpath. Для этого вы настроите серию обработчиков диспетчеризации в mockservice для сопоставления запросов с респонами. Предположим, у вас есть Request1, Request2, Response1, Response2. Используйте метод отправки «Query Match», чтобы сопоставить выражение XPATH. В этом совпадении верните желаемый ответ. т.е. если вы найдете ID1 в xpath, верните стандартный Response1.

Кроме того, версия PRO отлично справляется с XPATH, поэтому вам не нужно вручную кодировать ее. то есть он может посмотреть на ответ, щелкнуть по тому, что вы хотите запустить (в вашем случае ID1), и построить для вас выражение XPATH. Я запросил лицензию PRO, только на основании этого. В настоящее время ожидает составления бюджета ...

ИМО, гораздо проще начать, чем разбираться в отличном.

Крис

2
ответ дан 17 December 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: