Как мы можем получить доступ к нескольким переменным, используя XPath в Jemter? - PullRequest
0 голосов
/ 04 февраля 2019

Я делаю сценарии с использованием JMeter для выполнения некоторых задач, в которых я хочу получить доступ к ответу первого запроса во втором запросе в качестве значения параметра значения, используя XPath extractor.

Например

Вот мой ответ на первый запрос в формате XML:

<a>
  <b>
    <c>

       <my_details>
          <first_name>A</first_name>
          <middle_name>B</middle_name>
          <last_name>C</last_name>
       </my_details>

    </c>
  </b>
</a>

Теперь я хочу использовать имя и фамилию в значении второго запроса.Для этого я использую экстрактор XPath, чтобы получить значения из ответа, приведенного ниже:

enter image description here

Но я получил ответ, подобный:

        JMeterVariables:
        **full_name=A
        full_name_1=A**
        ...
        ...
        __jm__Thread Group__idx=0
        __jmeter.USER_TOKEN__=Thread Group 1-1

Итак, мой вопрос: как я могу получить полное имя, используя один экстрактор XPath?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Мне удалось достичь желаемого результата с помощью функции concat () (https://www.w3.org/2005/xpath-functions/).

Я использовал XPath2 Extractor с запросом Xpath, установленным в:

concat (// my_details / first_name, "", // my_details / last_name)

XPath2 Extractor

Thisприводит к тому, что выходной переменной присваивается значение «AC»: enter image description here

Обратите внимание, что в настоящее время рекомендуется использовать XPath2 Extractor (https://jmeter.apache.org/usermanual/component_reference.html#XPath_Extractor):

enter image description here

0 голосов
/ 05 февраля 2019

Попробуйте извлечь «first_name» и последнее «last_name» отдельно, используя экстрактор XPath. Затем используйте постпроцессор Beanshell для создания переменной Jmeter для полного имени, например

vars.put ("full_name", vars.get(«ПЕРЕМЕННОЕ ИМЯ ПЕРВОГО ИМЯ») + «» + vars.get («ПЕРЕМЕННОЕ ИМЕТР ИМЯ ПОЛЬЗОВАТЕЛЯ»));

...