Как извлечь атрибут из ответа XPath Extractor в JMeter? - PullRequest
0 голосов
/ 26 октября 2011

Мне нужно получить attr. значения componentId и interactionstate из html через JMeter, я пытаюсь использовать экстрактор XPath, но я не могу этого сделать.

<html>
    <body>
        ...
        <form ...>
        <form class="UIForm" id="UINavigationComposer" action="/portal/intranet/home?portal:componentId=d934d0f3-d465-4c1d-880a-45f54b3c48e2&amp;interactionstate=JBPNS_rO0ABXcwAAt1aWNvbXBvbmVudAAAAAEAFFVJTmF2aWdhdGlvbkNvbXBvc2VyAAdfX0VPRl9f&amp;portal:type=action" method="post">
        <form ...>
        ...
    </body>
</html>

Я пытаюсь использовать запрос xpath:

/html/body/form@[id=UINavigationComposer]/@action

но получите ошибку:

Сообщение об ошибке подтверждения: / html / body / form @ [id = UINavigationComposer]; => Ссылка на сущность "portal: action" должна заканчиваться символом ';' разделитель.

1 Ответ

2 голосов
/ 26 октября 2011

Я думаю, у вас есть небольшая ошибка в вашем запросе xpath. Поместите @ рядом с атрибутом id , как показано ниже

/html/body/form[@id=UINavigationComposer]/@action

или используйте что-то вроде этого:

//form[@id='UINavigationComposer']/@action

Итак, первый шаг - извлечь полное значение действия и сохранить его в отдельной переменной jmeter (например, ACTION_TEST), используя RegEx или Xpath Extractor.
Второй шаг - извлечь из этой переменной значения для componentId и взаимодействия.
В RegEx Extractor в jmeter 2.5 (начиная с 2.3.2, задним числом) есть опция «Применить к ... Переменной Jmeter».
Вы можете добавить 2 дополнительных экстрактора RegEx каждый с $ {ACTION_TEST} в опции «Применить к ... переменной Jmeter» и соответствующие запросы:

componentId=(.+?);
interactionstate=(.+?);
  1. Извлечение для получения полного значения действия ОТ ОТВЕТА + сохранение в переменную.
  2. Извлечение для получения значения componentId ОТ ПЕРЕМЕННОГО.
  3. Извлечение, чтобы получить значение взаимодействия от ПЕРЕМЕННОГО.

Надеюсь, это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...