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

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

<Prodrevision>5</Prodrevision>

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

План тестирования Mine jmeter выглядит так


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

-SOAP / XML- RPC (этот ЗАПРОС SOAP вызывает получение ОТВЕТА)
- Экстрактор XPath с

          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

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


person stan    schedule 06.09.2010    source источник


Ответы (2)


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

Однако я обнаружил, что средство извлечения регулярных выражений постпроцессора очень простое и точное.

Структура хотела бы этого:

1st Soap Request
  -- regular expression stored to "var"
 2nd Soap Request, using ${var}
person BlackGaff    schedule 07.09.2010

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

      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 (одного) потока, он генерирует неправильные запросы :-(

person stan    schedule 15.11.2010