Типы шагов clickpatch

Материал из Документация Ключ-АСТРОМ

Типы шагов clickpatch

При записи clickpatch в браузере ваши взаимодействия с веб-приложением фиксируются в виде последовательности шагов. Существуют различные типы шагов для имитации взаимодействия и управления clickpatch, например, переход по URL-адресу, клик, выбор опции, ввод информации или фрагмент кода JavaScript. Помимо типа, шаги имеют различные свойства, такие как цель (состоящая из локаторов для идентификации веб-элементов на странице) и стратегия ожидания.

Типы шагов

Для clickpatch в браузере доступны следующие типы шагов:

  • Навигация
  • Нажмите
  • Кран
  • Нажатие клавиши
  • Выберите вариант
  • JavaScript
  • Печенье

Навигация

Шаг «Навигация» имитирует ввод URL-адреса в адресную строку браузера и последующую загрузку страницы.

Для создания монитора браузера достаточно указать всего один шаг «Навигация» — он проверит доступность и производительность одной веб-страницы. Однако, если вы хотите, чтобы монитор выполнял сценарий тестирования, включающий пользовательский путь (например, открытие главной страницы в браузере, применение критериев поиска, выполнение поиска, выбор варианта из результатов поиска), расширьте монитор, добавив шаги вручную или записав clickpatch.

Для повышения безопасности синтетических мониторов Ключ-АСТРОМ блокирует отправку запросов мониторами на локальный хост (например, localhost или 127.0.0.1).

В записанных clickpatch первый шаг автоматически создаётся как шаг «Навигация». Однако при добавлении шагов вручную или редактировании clickpatch можно добавить событие JavaScript в качестве первого шага монитора. Шагам «Навигация» может предшествовать только один или несколько шагов JavaScript. Clickpatch требует наличия как минимум одного шага «Навигация».

Переход на новую веб-страницу путём нажатия на ссылку на текущей веб-странице создаёт шаг «Клик» в профилях для настольных компьютеров (или шаг «Касание» на мобильных устройствах), а не шаг «Навигация».

(Необязательно) Переключите параметр Использовать HTTP-аутентификацию, если веб-сайт, который вы хотите протестировать, требует ввода учётных данных.

Вы можете выбрать способ хранения учётных данных.

  • Хранилище учётных данных — рекомендуемый вариант, поскольку он обеспечивает более высокий уровень безопасности. Выберите HTTP-аутентификацию или Kerberos в качестве метода аутентификации, а затем выберите ранее существующие учётные данные или добавьте новые. Чтобы добавить новые учётные данные, выберите Добавить учётные данные.
  • Скрипт мониторинга — выберите HTTP-аутентификацию или Kerberos в качестве метода аутентификации, а затем укажите имя пользователя и пароль.

Если вы выбираете Kerberos в качестве метода аутентификации, укажите также имя области аутентификации и список разрешённых серверов аутентификации.

Нажмите

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

Шаг «Клик» взаимодействует с конкретным элементом на веб-странице. См. информацию о локаторах ниже, чтобы определить, как найти элемент.

Кран

В профилях мобильных устройств (включая планшеты, ноутбуки с сенсорным экраном и пользовательские устройства, указанные как мобильные) шаг «Касание» определяет, где на странице записать касание экрана устройства кончиком пальца. Например, «Касание» вставляется при нажатии на гиперссылку, кнопку или выборе поля.

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

Мобильный курсор

Шаг «Касание» взаимодействует с конкретным элементом на экране. См. информацию о локаторах ниже, чтобы определить, как найти элемент.

Нажатие клавиши

Шаг «Нажатие клавиши» фиксирует строку, которую вы вводите в поле на веб-странице.

По умолчанию весь текст сохраняется как обычный текст. Однако для паролей, хранящихся в хранилище учётных данных, тип текста — Учётные данные.

Ключ-АСТРОМ хранит и управляет всеми учётными данными Синтетического мониторинга в хранилище учётных данных. Учётные данные контролируются доступом и могут быть доступны только владельцу или быть публичными.

Читайте ниже, чтобы узнать, как сохранить или задать пароль и как создать токен на шаге «Нажатие клавиши».

Кто может редактировать монитор с привязанными учётными данными?

Права на редактирование зависят от того, связан ли монитор с публичными или ограниченными учётными данными.

  • Если монитор связан с публичными учётными данными, любой член вашей команды может включать/выключать, удалять или редактировать монитор.
  • Если браузерный монитор (clickpatch или одиночный URL) связан с ограниченными учётными данными (доступны только владельцу или нескольким пользователям), любой пользователь может вносить изменения в определённые поля, даже если у него нет доступа к используемым учётным данным. Вы можете редактировать имя монитора, настройки эмуляции устройства, условия ожидания, частоту, местоположения, оповещения о сбоях, пороговые значения производительности, метрики, подключённые приложения, проверку и коды состояния HTTP, которые следует игнорировать. И, конечно, вы можете изменить токен или учётные данные пользователя/пароля. Вы можете создать учётные данные в настройках монитора в режиме редактирования. Вам потребуется изменить все учётные данные в мониторе на те, к которым у вас есть доступ. Обратите внимание, что замена учётных данных другого пользователя на ваши необратима.

Элементы управления, которые нельзя редактировать — такие как URL-адрес, включение/выключение HTTP-аутентификации, добавление или удаление событий clickpatch, ввод данных в «Нажатие клавиши», а также расширенные настройки в параметрах монитора — отображаются серым цветом или выдают сообщение об ошибке при попытке сохранить изменения, как в режиме скрипта, так и в режиме пользовательского интерфейса.

Вы можете включать/выключать или удалять синтетический монитор, защищённый чужими учётными данными с доступом только для владельца.

Подробнее о разрешениях на учётные данные см. в разделе Хранилище учётных данных для синтетических мониторов.

Симуляция клавиши «Return» автоматически имитирует нажатие клавиши Return после ввода, например, для отправки поисковой строки или запуска входа в систему. При создании монитора в режиме пользовательского интерфейса это избавляет от необходимости настраивать шаг «Клик» после ввода данных в поле.

Симуляция событий blur (включена по умолчанию) определяет, имитируется ли шаг blur, который обычно происходит, когда текстовое поле теряет фокус.

Шаг «Нажатие клавиши» взаимодействует с конкретным элементом на экране, например с полем формы. См. информацию о локаторах ниже, чтобы определить, как найти элемент.

Сохранение или установка пароля на шаге «Нажатие клавиши»

На шаге «Нажатие клавиши» записанный пароль по умолчанию сохраняется как обычный текст, но вы можете сохранить его как учётные данные.

  1. Скопируйте записанный пароль.
  2. Выберите Тип учётных данных.
  3. Выберите Добавить учётные данные.
  4. Выберите Имя пользователя и пароль в качестве Типа учётных данных.
  5. Укажите Имя учётных данных.
  6. Укажите Имя пользователя и вставьте скопированный пароль в поле Пароль.
  7. Выберите Сохранить в хранилище.

Вы также можете:

  • Использовать ранее созданные учётные данные из хранилища. Выберите их в списке Выбрать учётные данные. В этом списке отображаются только те учётные данные, к которым у вас есть доступ: публичные или созданные вами с доступом владельца.
  • Добавить новые учётные данные как токен. Для этого выберите Токен в качестве Типа учётных данных при добавлении.

Обратите внимание, что у вас должно быть разрешение на доступ к хранилищу учётных данных, чтобы создавать учётные данные в браузерном мониторе таким образом. Вы всегда можете сохранить введённые учётные данные как часть записанного clickpatch.

Создание токена на шаге «Нажатие клавиши»

Вы можете использовать существующий токен, к которому у вас есть доступ, на шаге «Нажатие клавиши». Выберите Тип учётных данных и выберите имя нужных учётных данных (Выбрать учётные данные).

Чтобы создать новый токен:

  1. Выберите Добавить учётные данные.
  2. Выберите Токен в качестве Типа учётных данных.
  3. Измените имя учётных данных по умолчанию.
  4. Укажите Значение токена.
  5. Выберите Сохранить в хранилище.

Учётные данные, созданные таким образом, автоматически получают права доступа только для владельца и могут использоваться только вами.

Обратите внимание, что у вас должно быть разрешение на доступ к хранилищу учётных данных, чтобы создавать учётные данные в браузерном мониторе таким образом.

Выберите вариант

Шаг «Выберите вариант» описывает использование списков в clickpatch.

Индекс описывает позицию выбранного элемента сверху; первый элемент в списке всегда обозначается как 0. Поле Значение показывает текстовое значение выбранного элемента.

Выберите Добавить выбор, чтобы добавить ещё один элемент для выбора в том же списке. При необходимости вы можете удалить выбранные варианты.

Шаг «Выберите вариант» взаимодействует с конкретным элементом на экране. См. информацию о локаторах ниже, чтобы определить, как найти элемент.

JavaScript

Шаг JavaScript позволяет выполнять фрагменты кода JavaScript в рамках браузерных clickpatch.

С помощью шагов JavaScript можно создавать clickpatch для сценариев с динамическими частями, где может потребоваться реагировать на страницу, например:

  • Потоки входа, включающие случайные контрольные вопросы
  • Сложные селекторы дат
  • Страницы с A/B-тестированием
  • Процессы регистрации или заказа товара
  • Пользовательские проверки

Выполнение JavaScript на страницах PDF не поддерживается.

Для страниц XML можно активировать поддержку, переключившись в режим скрипта и заполнив experimentalProperties в разделе конфигурации следующим образом. Значение свойства enableXmlInjection — это регулярное выражение для URL-адреса целевой XML-страницы.

"experimentalProperties": [{
        "name": "enableXmlInjection",
        "value": ".*.xml$"
      }
    ]

Во время выполнения синтетического монитора целевая XML-страница отображается в HTML.

В поле Код определите свой фрагмент JavaScript.

При добавлении шагов вручную или редактировании clickpatch можно добавить шаг JavaScript в качестве первого шага монитора для таких сценариев, как получение учётных данных из хранилища учётных данных и установка переменной для использования в URL-адресе события «Навигация». Эта функция требует АктивныйШлюз версии 1.225+ и Chromium версии 88+ на частных синтетических площадках.

Шагам «Навигация» могут предшествовать только один или несколько шагов JavaScript; clickpatch требует наличия как минимум одного шага «Навигация».

API шагов JavaScript

Событие JavaScript предлагает базовый API для следующих операций.

Сохранение и извлечение значений между шагами монитора

  • api.setValue(key, value) — устанавливает значение для ключа. Используйте отдельный экземпляр api.setValue() для каждой пары ключ-значение, которую хотите указать.
  • api.getValue(key) — получает значение ключа, ранее установленное с помощью api.setValue().
  • api.getValues() — возвращает объект, содержащий пары ключ-значение, ранее установленные с помощью api.setValue().

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

После установки глобальной переменной с помощью метода api.setValue() её значение можно использовать с соглашением {variable_name} с помощью api.getValue() или api.getValues(). Значение также можно применить в последующих полях конфигурации браузерного clickpatch, используя соглашение {variable_name}.

Имена переменных и ключей имеют ограничение в 100 символов. Значения глобальных переменных имеют ограничение в 5000 символов.

Отметка шагов как неудачных или завершённых

  • api.fail(message) — помечает запрос как неудачный, указывая сообщение в качестве причины, и помечает выполнение монитора как неудачное.
  • api.finish() — завершает шаг JavaScript, чтобы был выполнен следующий шаг.
  • api.startAsyncSyntheticEvent() — заставляет шаг JavaScript ожидать последующего вызова api.finish() или api.fail() для его завершения. Поскольку использование этого метода переопределяет условие ожидания, рекомендуется установить время ожидания на Нет.

Пропуск шагов clickpatch

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

  • api.skipNextSyntheticEvent() — пропускает выполнение следующего шага.
  • api.skipNextSyntheticEvents(n) — пропускает выполнение следующих n последовательных шагов.
  • api.skipSyntheticEvent(eventIndex) — пропускает выполнение шага с индексом eventIndex. Номера индексов событий начинаются с 1 и соответствуют номерам шагов, отображаемым в веб-интерфейсе.
  • api.skipSyntheticEvents(eventIndexes) — пропускает выполнение нескольких шагов; массив eventIndexes указывает индексы шагов для пропуска, например, api.skipSyntheticEvents([8, 9]).

Базовое ведение журнала

  • api.info(message) — регистрирует сообщение с уровнем журнала info.
  • api.warn(message) — регистрирует сообщение с уровнем журнала warning.
  • api.error(message) — регистрирует сообщение с уровнем журнала error.

Получение данных

  • api.getCredential(id, type) — извлекает значение учётных данных по идентификатору учётных данных (id) и (type), который может быть username, password или token. Использование динамических идентификаторов, таких как переменные, не поддерживается. Список состоит только из тех учётных данных, к которым у вас есть доступ.

Требуется АктивныйШлюз версии 1.212+ для частных синтетических площадок.

В целях безопасности рекомендуется использовать только выделенные тестовые учётные данные для синтетических мониторов.

  • api.getContext().location
    • api.getContext().location.name — возвращает имя частного или общедоступного местоположения, из которого выполняется монитор. Это полезно при применении условной логики, например, для отображения локализованных страниц или использования разных учётных данных для входа в зависимости от местоположения.
    • api.getContext().location.cloudPlatform — возвращает имя облачной платформы, на которой развёрнуто общедоступное синтетическое местоположение.

Во время локального воспроизведения свойства контекста не определены. Рекомендуется задать значение по умолчанию для покрытия этого сценария.

Примеры

  • Пример 1 — Создание и установка динамического адреса электронной почты для мониторинга процесса регистрации.
  • Пример 2 — Получение случайного имени/фамилии из API-эндпоинта и установка во время процесса регистрации.
  • Пример 3 — Использование поставщика облачной платформы для различения местоположений с одинаковым именем.
  • Пример 4 — Использование разных идентификаторов пользователей в зависимости от местоположения монитора.

Печенье

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

Вы можете устанавливать cookie в расширенных настройках в параметрах монитора в режиме редактирования. Эти cookie действительны на протяжении всего выполнения монитора. Если вы хотите установить cookie только для определённой части clickpatch, используйте событие «Cookie».

Укажите Имя и Значение cookie. Каждый cookie должен быть уникальным в списке.

Следующие символы не допускаются в значении cookie: ;,\". Укажите Домен cookie и, при необходимости, Путь к cookie. Сохраните cookie.

Выберите Добавить cookie, чтобы определить дополнительные cookie.

Редактировать указатели элементов

Этот элемент управления доступен в шагах «Клик», «Касание», «Нажатие клавиши» и «Выберите вариант».

Когда один из вышеперечисленных шагов в вашем clickpatch нацелен на конкретный элемент на веб-странице, вы можете просматривать и редактировать локаторы элементов в формате DOM или CSS. Локаторы помогают Ключ-АСТРОМ идентифицировать элемент во время воспроизведения. Мы можем захватывать несколько локаторов, чтобы убедиться, что элемент найден, даже если некоторые части кода страницы (например, имена или идентификаторы) изменятся. В большинстве случаев мы захватываем CSS-локаторы. Локаторы оцениваются последовательно; если первый локатор не найден, оценивается второй, и так далее, пока не будет найдено совпадение.

Выберите Добавить локатор, затем выберите DOM или CSS и укажите ссылку на локатор. См. формат DOM-локатора ниже для получения дополнительной информации об указании DOM-локаторов.

Также можно указать монитору искать определённый элемент в другой вкладке или фрейме при выполнении шага. Выберите Искать элемент в другой вкладке или фрейме и укажите вкладку/фрейм, используя синтаксис наподобие window[0].frame[3], где window[0] — первая открытая вкладка, а window[1] — вторая.

Это также может быть window[N].frames[X], где X — номер iframe, отображаемого на странице во вкладке N.

Фреймы также могут быть цепочными, где window[N].frames[X].frames[Y] означает, что элементы с заданными локаторами находятся внутри фрейма Y, который находится внутри фрейма X на вкладке N.

Формат DOM-локатора

Ключ-АСТРОМ версии 1.292+

Вы можете предпочесть настроить расширенные пользовательские DOM-локаторы для своих элементов. Правила ниже определяют поддерживаемый формат при использовании JavaScript в DOM-локаторах для доступа к элементам на веб-странице. Эти правила обусловлены переходом Ключ-АСТРОМ Synthetic Recorder (расширения для Google Chrome) на Manifest Version 3 (MV3), последнюю версию платформы расширений Chrome.

Чтобы идентифицировать элемент, вы можете сделать одно из следующего.

Начните DOM-локатор с document..

document.forms[0][1].options[0]
document.getElementById('adminusername')
document.querySelector("body > div.vf-body-container > div > div > section > flows").shadowRoot.querySelectorAll("#postalTown")[1]

Например, document.getElementById('adminusername') — это способ доступа к элементу по его идентификатору; getElementById — это метод document. Используйте допустимое имя глобальной переменной JavaScript в начале DOM-локатора для доступа к элементу напрямую по его идентификатору. Имя переменной должно содержать ссылку на элемент с соответствующим идентификатором. Например, для элемента <div id="EmailAddress"></div> можно указать следующий DOM-локатор.

EmailAddress

Выражения XPath поддерживаются. Ваш DOM-локатор, начинающийся с document., может содержать выражение XPath в параметре xpathExpression метода evaluate(). В примере ниже выражение XPath'//form[@id=\'ctl00\']/div[4]/div[3]/span'.

document.evaluate('//form[@id=\'ctl00\']/div[4]/div[3]/span', document, null, XPathResult.ANY_TYPE, null).iterateNext()

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

document.method().method1() document.method().prop['2565'] document.method( 11 , 'erert','123') document.getElementById ( 'deviceList' ) . querySelectorAll ( ' a ' ) [ 0 ]

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

  • Строки в двойных или одинарных кавычках
  • Числа
  • null
  • undefined
  • document
  • XPathResult.*
document.method ( " str1 " )
document.method ( ' str2 ' , null )
document.method ( undefined , document )
document.method ( XPathResult.ANY_TYPE )

Вычисления JavaScript внутри DOM-локаторов не поддерживаются.

// Не поддерживается document.forms [ 1 + 2 ]

Глобальные переменные JavaScript не поддерживаются внутри DOM-локаторов.

// Не поддерживается, если someVar — глобальная переменная document.querySelector ( someVar )