Как обработать и вставить пользовательскую переменную из / в SOAP Response / Request i в Jmeter?Параметризация SOAP-запроса в jmeter - PullRequest
0 голосов
/ 06 сентября 2010

Я пытаюсь решить следующую проблему:
У меня есть система, с которой связь осуществляется через SOAP (XML через http).
В Jmeter я использую SOA / XML-RPC (не веб-сервис на основе wsdl).
Я отправляю один SOAP-запрос и получаю ответ в растущем теге

<Prodrevision>5</Prodrevision>

Время от времени это число меняется, и цель состоит в том, чтобы получить это число в этом теге и задать его как пользовательскийпеременная и передать ее в другой SOAP / XML-RPC

План тестирования шахтного метра выглядит так:


- Определяемая пользователем переменная - здесь у меня есть пустое varaibla с именем "var"

-SOAP / XML- RPC (этот запрос SOAP вызывает получение RESPONSE)
- XPath Extractor с

          reference name: var
          XPath Query: //*[local-name()='Prodrevision']/text()

(это должно соответствовать ответам процесса / синтаксического анализа FAQ и присвоению)это переменная var)

-SOAP / XML-RPC - и в этом XML-запросе поле данных SOAP / XML-RPC содержит

..xml data
<Prodrevision>${var}</Prodrevision>
...xml data

Но я не отправляю ничего во втором запросе ???квесты попадают на сервер, но это не имеет значения.Где я ошибся?

Ответы [ 2 ]

1 голос
/ 07 сентября 2010

Всякий раз, когда вы видите $ {variableName} в запросе, это означает, что переменная не была определена.Скорее всего, это проблема с настройкой XPath.Я никогда не использовал этот компонент, поэтому, к сожалению, я не могу вам там помочь.

Однако я обнаружил, что постпроцессор Regular Expression Extractor очень прост и точен.

Структура выглядит так:

0 голосов
/ 15 ноября 2010

Проблема частично решена. Возникла проблема в неправильном или плохом, для JMeter, определенном запросе XPath

      reference name: var
      XPath Query://name[contains(text(),'Prodrevision')]/parent::multiRef/value

После запроса XPath я добавил постпроцессор beanshell со следующим кодом

      print("Beanshell processing  SOAP response");
      print("var" +${var} );

Итак, наконец, я вижу, какое значение захватывает экстрактор XPath.

Я также установил xpather 1.4.5 в качестве дополнения к Firefox. И открыл XML-ответ и немного настроил XPath-запрос, чтобы получить правильный ответ. Затем это было скопировано в JMeter и сработало.

Далее, в запросе SOAP, который должен был быть отправлен JMeter, я поместил значение экстрактора XPath следующим образом:

<name xsi:type="soapenc:string">Prodrevision</name>
<value xsi:type="soapenc:string">${var}</value>

и это снова сработало для одного потока.

Проблема в данный момент связана с потоками. Если существует более 1 (одного) потока, он генерирует неправильные запросы: - (

...