Замена параметров в URL-запросе

Важно!

Поддержка этой версии Operations Manager завершена. Рекомендуется выполнить обновление до Operations Manager 2022.

При записи веб-приложения с помощью редактора веб-приложений он может добавить в один или несколько запросов уникальную информацию, которая изменяется при каждом подключении к приложению. Эта информация обычно добавляется в ответ на запрос, а затем используется одним или несколькими последующими запросами.

Например, приложение может создать уникальный идентификатор сеанса при входе пользователя. Этот идентификатор сеанса должен быть включен в каждый запрос после входа в систему. Без правильного идентификатора сеанса каждый из этих запросов завершается ошибкой. Так как вы не знаете, что это значение, пока не будет выполнен первый запрос, его нельзя явно включить в конфигурацию запроса. При создании веб-приложения путем записи сеанса браузера идентификатор сеанса собирается по URL-адресу каждого запроса. Однако при запуске приложения запросы завершаются ошибкой, так как идентификатор сеанса будет иметь значение, отличное от записанного идентификатора сеанса.

Чтобы настроить такое приложение, можно извлечь параметр контекста из текста ответа одного запроса и использовать значение этого параметра в одном или нескольких последующих запросах. Затем вы замените явное значение в последующих запросах переменной, представляющей параметр . При каждом запуске искусственной транзакции параметр заполняется в запросе, где он определен. При использовании переменной в последующих запросах она заменяется собранным значением перед отправкой запроса в приложение.

Одно приложение может использовать любое количество параметров контекста. Один параметр может использоваться в любом количестве запросов, но они должны выполняться после запроса, в котором определен этот параметр.

Пример идентификатора сеанса

Рассмотрим пример, в котором приложение создает идентификатор сеанса при входе пользователя. Этот идентификатор сеанса требуется в каждом запросе после страницы входа. Чтобы реализовать этот сценарий, необходимо записать идентификатор сеанса при его первом создании, а затем использовать это значение в каждом последующем запросе.

Для начала вы используете процесс, описанный в разделе Запись веб-приложения , для записи входа и последующих действий. Записанный сеанс для входа в приложение и выполнения некоторых действий может выглядеть примерно так, как в следующем примере.


http://www.myapp.com/home.aspx

http://www.myapp.com/search.aspx?query=testing&sessionid=32793279321721

http://www.myapp.com/results.aspx?sessionid=32793279321721

http://www.myapp.com/submit.aspx?sessionid=32793279321721

В этой последовательности запросов идентификатор сеанса создается первым запросом и используется во втором, третьем и четвертом запросах. При запуске этого монитора происходит сбой, так как первый запрос создает новый идентификатор сеанса, который не может соответствовать идентификатору сеанса, который использовался при записи сеанса.

Чтобы настроить эту последовательность запросов с заменой параметров, необходимо создать правило извлечения при первом запросе, чтобы создать параметр контекста для идентификатора сеанса. Правило извлечения проверяет текст запроса для поиска значения переменной идентификатора сеанса. Затем вы измените последующие запросы, чтобы использовать этот параметр вместо значения идентификатора сеанса.

Измененные запросы выглядят примерно так, как показано в следующем примере.


http://www.myapp.com/home.aspx

http://www.myapp.com/search.aspx?query=testing&sessionid=$ParametersContext/sessionID$

http://www.myapp.com/results.aspx?sessionid=$ParametersContext/sessionID$

http://www.myapp.com/submit.aspx?sessionid=$ParametersContext/sessionID$

Создание правила извлечения

Параметры контекста собираются с помощью правила извлечения, и каждое правило извлечения собирает один такой параметр. Правило извлечения создается в диалоговом окне Свойства запроса, который изначально создает необходимые данные. Чтобы найти значение для извлечения, необходимо просмотреть текст ответа, возвращенного из конкретного запроса. Вы можете просмотреть источник страницы, возвращаемой в браузере, или использовать средство, позволяющее проверить сведения о HTTP-ответах. Вы не можете просмотреть текст с помощью веб-приложения Редактор.

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

Параметр Описание
Имя параметра контекста Введите имя для параметра контекста.
Начинается с Введите текст в тексте ответа, определяющий начало значения параметра. Необходимо указать достаточное количество знаков, чтобы гарантировать уникальность строки. Значение параметра начинается сразу после последнего указанного знака.
Заканчивается на Введите текст в тексте ответа, определяющий конец значения параметра. Значение параметра завершается непосредственно перед первым указанным знаком.
Индекс Если текст в поле Начинается с встречается более одного раза, это значение указывает, какое значение использовать. Если текст отображается только один раз или в первом отображении показан текст для извлечения, значение должно быть равно 0. Если необходимо извлечь второе значение, значение должно быть равно 1 и т. д.
Игнорировать регистр при выполнении поиска текста, соответствующего критериям Указывает, следует ли игнорировать регистр символов, которые ищутся с помощью полей Начинается с и Заканчивается на.
Выполнять кодирование URI извлеченных строк Указывает, следует ли кодировать извлеченную строку после ее сбора.

Вставка параметра в запрос

Чтобы использовать параметр в запросе, замените явное значение на переменную, представляющую параметр. Переменная имеет формат $ParametersContext/<ContextParameterName>$. При выполнении запроса переменная заменяется данными, извлеченными параметром.

Вы можете вставить переменную в запрос с помощью одного из двух следующих методов:

  • В диалоговом окне Свойства запроса перейдите на вкладку Общие , а затем выберите URL-адрес запроса , чтобы изменить URL-адрес запроса.
  • В диалоговом окне Свойства запроса перейдите на вкладку Общие и нажмите кнопку Вставить параметр . Используйте диалоговое окно Вставка параметра для запроса. Доступ к этому осуществляется с помощью кнопки Вставить параметр на вкладке Общие в диалоговом окне Свойства запроса для запроса.

Пример веб-приложения с использованием извлечения параметров

В следующей процедуре приведен пример использования извлечения параметров в веб-приложении. В этом примере выполняется запрос первой записи в разделе популярного сейчас на домашней странице Bing. Так как это значение регулярно меняется, необходимо сначала подключиться к странице main и собрать условие поиска из текста ответа. Затем используйте этот термин для создания запроса на выполнение фактического поиска.

Главная страница Bing показана ниже с выделенным разделом популярного сейчас.

Снимок экрана: домашняя страница Bing.

Чтобы определить, где в тексте ответа отображается условие поиска, можно просмотреть источник страницы. Часть источника показана ниже с HTML-кодом раздела популярного сейчас. В этом HTML-коде требуется только строка поиска, выделенная на следующем рисунке. Запрос формируется из https://www.bing.com , за которым следует эта строка.

Иллюстрация строки популярного поиска Bing.

Можно просто извлечь сам термин, но проще включить всю строку в параметр. Этой строке предшествуют символы <h3>Popular now</h3><ul><li><a href=>, и она заканчивается следующим вхождением ". Это значения, которые будут использоваться при определении извлечения параметров.

Запись примера веб-приложения

  1. Выполните запись веб-приложения, следуя процедуре из статьи How to Capture Web Application Recording (Захват записи веб-приложения).
  2. Во время записи подключитесь к адресу https://www.bing.com .
  3. При необходимости используйте параметр в браузере, чтобы просмотреть источник домашней страницы Bing и найти раздел популярного сейчас HTML-кода.
  4. Выберите первое условие поиска в разделе Популярные сейчас.
  5. Сохраните запись в веб-приложение.
  6. Удалите последний запрос, так как это не требуется. Чтобы удалить последний запрос, выберите его, а затем выберите Удалить на панели Действия . Полученные запросы должны выглядеть примерно так, как следующие URL-адреса:

Снимок экрана: запись веб-приложения Bing.

Создание правила извлечения

  1. Выберите первый запрос, а затем выберите Свойства на панели Действия .

  2. Откройте вкладку Правила извлечения.

  3. Выберите Добавить. Откроется диалоговое окно Добавление правила извлечения .

  4. В диалоговом окне Добавление правила извлечения в поле Имя параметра контекста введите SearchString.

  5. В поле Начинается с введите <h3>Popular now</h3><ul><li><a href=>.

  6. В поле Заканчивается на введите ". Правило извлечения должно выглядеть, как показано на следующей иллюстрации.

    Иллюстрация правила извлечения.

  7. Нажмите кнопку ОК , чтобы сохранить и закрыть правило извлечения.

  8. Нажмите кнопку ОК , чтобы сохранить и закрыть запрос.

Вставка параметра в запрос

  1. Выберите второй запрос, а затем выберите Свойства на панели Действия .

  2. На вкладке Общие выберите Параметр вставки.

  3. В поле Строка удалите весь текст после www.bing.com/.

  4. Установив курсор в конце URL-адреса, сразу после www.bing.com выберите SearchString в поле Параметры , а затем нажмите кнопку Вставить. Таким образом будет вставлена переменная $ParametersContext/SearchString$. Окончательный запрос выглядит аналогично следующей иллюстрации.

    Иллюстрация параметра Insert.

  5. Нажмите кнопку ОК, чтобы закрыть это диалоговое окно.

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

    Иллюстрация измененного веб-приложения Bing.

  7. Нажмите кнопку Применить, чтобы применить изменения, а затем закройте Редактор веб-приложения.