XPath-запрос в JMeter - PullRequest
       6

XPath-запрос в JMeter

1 голос
/ 23 сентября 2011

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

Вот моя проблема:

У меня есть выражение XPath, которое выглядит примерно так:

//div[@data-attrib="foo"]//a//@href

Однако мне нужно извлечь отдельный дочерний элемент для каждого потока (пользователя).Я хочу сделать что-то вроде этого:

//div[@data-attrib="foo"]//a[position()=n]//@href

(n - текущий индекс)

Мой вопрос:

Есть ли способ заставить этот запрос работать, такчто я могу извлечь новый индекс выражения для каждого потока?

Кроме того, как я уже упоминал, я использую JMeter.JMeter создает переменную для каждого из результирующих узлов запроса XPath.Однако он называет их «VarName_n» и не хранит их как традиционный массив.Кто-нибудь знает, как я могу динамически выбрать одну из этих переменных, если это возможно?Это также решило бы мою проблему.

Заранее спасибо:)

EDIT:

Вложенные переменные, по-видимому, не поддерживаются, поэтому для динамической ссылки на переменные с именами«VarName_1», VarName_2 »и т. Д., Это можно использовать:

${__BeanShell(vars.get("VarName_${n}"))}

Где« n »- целое число. Поэтому, если n == 1, получится значение переменной с именем« VarName_1 ».".

Если целое число" n "изменяется в течение одного потока, контроллер ForEach разработан специально для этой цели.

1 Ответ

1 голос
/ 23 сентября 2011

Для первого вопроса - используйте :

(//div[@data-attrib="foo"]//a)[position()=$n]/@href 

где $ n должен быть заменен определенным целым числом.

Здесь мы также предполагаем, что //div[@data-attrib="foo"] выбирает один div элемент.

Обратите внимание, что псевдо-оператор XPath // обычно приводит к очень медленной оценке (поиск полного поддерева), а также к другим запутанным проблемам (именно поэтому в приведенном выше выражении необходимы скобки).

Рекомендуется избегать использования // всякий раз, когда структура документа известна, и можно указать полный конкретный путь .

Что касается второго вопроса, он не ясен. Пожалуйста, приведите пример.

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