Режим скрипта

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

В дополнение к обычной конфигурации в пользовательском интерфейсе вы можете использовать режим скрипта для настройки вашего clickpath или мониторов с одним URL. В этом режиме вы можете получить доступ к базовому скрипту JSON вашего монитора. Если вы синтетически продвинутый пользователь, это значительно облегчит вам жизнь и позволит вам ускорить создание и управление clickpath. Используйте редактор скриптов для быстрого поиска определенных событий (шагов), адаптации локаторов по всему скрипту или редактирования частей clickpath без повторной записи.

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

Доступ к скрипту clickpath

Чтобы отредактировать Clickpath монитора браузера в режиме скрипта:

  1. Перейдите в раздел Синтетика.
  2. Выберите монитор clickpath, который вы хотите отредактировать.
  3. Нажмите кнопку Обзор ( ⮟ ) и выберите Правка .
  4. Нажмите вкладку Записанный clickpath в меню настроек монитора слева.
  5. Нажмите script вверху.

Доступ к скрипту с одним URL-адресом

Чтобы отредактировать монитор браузера с одним URL-адресом в режиме скрипта:

  1. Перейдите в раздел Синтетика.
  2. Выберите монитор с одним URL-адресом, который вы хотите редактировать.
  3. Нажмите кнопку Обзор ( ⮟ ) и выберите Правка .
  4. Нажмите вкладку script монитора в меню настроек монитора слева.

Редактировать сценарий

Вы можете загрузить скрипт (Загрузить скрипт как .json) или просто скопировать его из редактора и редактировать в текстовом редакторе по вашему выбору. Однако вы также можете редактировать скрипт непосредственно в браузере. Это дает следующие преимущества:

  • Автозаполнение — просто нажмите Ctrl+Пробел, чтобы увидеть список предложений.
  • Подсветка синтаксиса упрощает написание кода скрипта.
  • Мгновенная проверка ошибок — редактор мгновенно показывает предупреждение о любой ошибке в скрипте. Наведите курсор на ошибку, чтобы увидеть, что не так, и получить предложение по ее исправлению. Вы не сможете сохранить изменения, пока код не будет свободен от ошибок.

Обратите внимание, что вам необходимо экранировать все специальные символы и переносить строки с помощью обратной косой черты (например, новая строка — \n, двойные кавычки — \", а табуляция — \t).

Вы можете воспроизвести изменения в скриптах clickpath, не сохраняя их — просто нажмите Воспроизвести clickpath.

Структура скрипта

Модель скрипта

{

  "configuration": {

    "userAgent": "string",

    "device": {

      "mobile": true,

      "touchEnabled": true,

      "width": 375,

      "height": 667,

      "scaleFactor": 2,

      "deviceName": "string",

      "orientation": "portrait"

    },

    "bandwidth": {

      "latency": 1,

      "download": 1,

      "upload": 1,

      "networkType": "WiFi"

    },

    "requestHeaders": {

      "addHeaders": [

        {

          "name": "string",

          "value": "string"

        }

      ],

      "toRequests": ["string"]

    },

    "cookies": [

      {

        "name": "string",

        "value": "string",

        "domain": "string",

        "path": "string"

      }

    ]

  },

  "version": "1.0",

  "type": "clickpath",

  "events": [

    {

      "type": "navigate",

      "url": "string",

      "description": "string",

      "wait": {

        "waitFor": "page_complete"

      },

      "authentication": {

        "type": "basic",

        "masked": true,

        "username": "string",

        "password": "string"

      },

      "validate": [

        {

          "type": "content_match",

          "failIfFound": true,

          "isRegex": false,

          "match": "string"

        }

      ],

      "target": {

        "window": "string"

      }

    },

    {

      "type": "click",

      "description": "string",

      "button": 0,

      "wait": {

        "waitFor": "network"

      },

      "target": {

        "locators": [

          {

            "type": "css",

            "value": "string"

          },

          {

            "type": "dom",

            "value": "string"

          }

        ]

      },

      "validate": [

        {

          "type": "element_match",

          "failIfFound": false,

          "target": {

            "locators": [

              {

                "type": "css",

                "value": "string"

              }

            ]

          }

        }

      ]

    },

    {

      "type": "javascript",

      "description": "string",

      "javaScript": "string",

      "wait": {

        "waitFor": "time",

        "milliseconds": 2000

      },

      "target": {

        "window": "string"

      }

    },

    {

      "type": "selectOption",

      "description": "string",

      "selections": [

        {

          "index": 1,

          "value": "string"

        }

      ],

      "wait": {

        "waitFor": "validation",

        "validation": {

          "type": "element_match",

          "failIfFound": false,

          "match": "string",

          "target": {

            "locators": [

              {

                "type": "dom",

                "value": "string"

              }

            ]

          }

        },

        "timeoutInMilliseconds": 60000

      }

    },

    {

      "type": "cookie",

      "description": "string",

      "cookies": [

        {

          "name": "string",

          "value": "string",

          "domain": "string",

          "path": "string"

        }

      ]

    },

    {

      "type": "keystrokes",

      "description": "string",

      "textValue": "string",

      "masked": false,

      "simulateBlurEvent": true,

      "wait": {

        "waitFor": "next_action"

      }

    }

  ]

}

Параметры скрипта

Основной объект скрипта

Содержит скрипт монитора.

Элемент Тип Описание Необходимость
configuration ScriptConfig Настройка монитора необязательный
type string Тип монитора

Возможные значения:

  • clickpath для мониторов Clickpath
  • availability для мониторов браузера с одним URL Этим мониторам разрешено иметь только одно событие типа navigate.
необходимый
version string Версия скрипта — используйте значение 1.0. необходимый
events Массив из:

navigateEvent

interactionEvent

javaScriptEvent

selectOptionEvent

cookieEvent

keystrokesEvent

Шаги Clickpath — первый шаг всегда должен быть типа navigate.

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

Фактический JSON-объект события зависит от его типа:

  • navigateEvent— содержит событие Navigate .
  • interactionEvent— содержит событие Click или Tap .
  • javaScriptEvent— содержит событие JavaScript .
  • selectOptionEvent— содержит событие Выбор опции.
  • cookieEvent— содержит событие Cookie .
  • keystrokesEvent— содержит событие Нажатие клавиши.
необходимый

Объект ScriptConfig

Содержит настройку монитора.

Элемент Тип Описание Необходимость
userAgent string Пользовательский агент запроса необязательный
device customDevice

or

predefinedDevice

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

Если не установлено, то Desktop используется в качестве предварительного настроенного устройства.

необязательный
bandwidth bandwidthOptions

or

predefinedBandwidth

Эмулированные сетевые условия монитора

Если не установлено, то используется вся доступная пропускания способность.

необязательный
requestHeaders requestHeader[] Список HTTP-заголовков, отправляемых с запросами монитора необязательный
cookies requestCookie[] Список файлов cookie, которые будут созданы для монитора

Эти файлы cookie добавляются перед выполнением первого шага.

необязательный

Объект customDevice

Содержит эмулируемое устройство монитора.

Элемент Тип Описание Необходимость
mobile boolean Флаг мобильного устройства

Установите значение true для мобильных устройств или false для настольного компьютера или ноутбука.

необходимый
touchEnabled boolean Флаг сенсорного экрана

Установите true, если устройство использует сенсорный экран. В этом случае можно установить событие взаимодействия как tap.

необходимый
width integer Ширина экрана в пикселях

Максимально допустимая ширина составляет 1920.

необходимый
height integer Высота экрана в пикселях

Максимально допустимая высота составляет 1080.

необходимый
scaleFactor integer Соотношение пикселей устройства необязательный

Объект predefinedDevice

Содержит одну из предварительно настроенных эмуляций устройств.

Элемент Тип Описание Необходимость
deviceName string Имя предварительно настроенного устройства — при редактировании в браузере нажмите Crtl+Spacebar, чтобы увидеть список доступных устройств. необходимый
orientation string Ориентация устройства — portrait или landscape

Настольные устройства и ноутбуки не могут использовать данную ориентацию portrait.

необходимый

Объект bandwidthOptions

Содержит эмулированные сетевые условия монитора.

Элемент Тип Описание Необходимость
latency integer Задержка сети в миллисекундах необходимый
download integer Скорость загрузки сети, в байтах в секунду необходимый
upload integer Скорость отдачи сети, в байтах в секунду необходимый

Объект predefinedBandwidth

Содержит предварительно настроенные сетевые эмуляции.

Элемент Тип Описание Необходимость
networkType string Тип преднастроенной сети — при редактировании в браузере нажмите Crtl+Spacebar, чтобы увидеть список доступных сетей. необходимый

Объект requestHeader

Содержит список HTTP-заголовков, отправляемых с запросами монитора.

Следующие заголовки не допускаются:

  • user-agent
  • cookie
Элемент Тип Описание Необходимость
name string Имя HTTP-заголовка необходимый
value string Значение заголовка HTTP необходимый

Объект requestCookie

Содержит список файлов cookie, которые будут созданы для монитора.

Каждый файл cookie должен быть уникальным в списке. Однако вы можете использовать тот же файл cookie снова в другом случае.

Элемент Тип Описание Необходимость
name string Имя файла cookie

Следующие имена файлов cookie не допускаются:

  • dtCookie
  • dtLatC
  • dtPC
  • rxVisitor
  • rxlatency
  • rxpc
  • rxsession
  • rxvt
необходимый
value string Значение cookie — следующие символы не допускаются: ;,\". необходимый
domain string Домен cookie необходимый
path string Путь к файлу cookie необязательный

Объект navigateEvent

Содержит событие Navigate.

Элемент Тип Описание Необходимость
type string Тип синтетического события

В данном случае тип события — navigate.

необходимый
url string URL-адрес для перехода необходимый
description string Краткое описание события, которое будет отображаться в пользовательском интерфейсе. необходимый
wait waitCondition Условие ожидания события — определяет, как долго Ключ-АСТРОМ должен ждать перед выполнением следующего действия. необязательный
validate validationType[] Правило проверки для события — помогает вам убедиться, что монитор вашего браузера загружает ожидаемое содержимое страницы или элемент страницы. необязательный
target targetType Вкладка, на которой должна открываться страница необязательный
authentication plainAuthenticationType или secureAuthenticationType Учетные данные для обхода маски входа в браузер необязательный

Объект interactionEvent

Содержит событие Click или Tap.

Элемент Тип Описание Необходимость
type string Тип синтетического события

В этом случае, click или tap

необходимый
description string Краткое описание события, которое будет отображаться в пользовательском интерфейсе. необходимый
button integer Кнопка мыши, которая будет использоваться для щелчка необходимый
wait waitCondition Условие ожидания события — определяет, как долго Ключ-АСТРОМ должен ждать перед выполнением следующего действия. необязательный
validate validationType[] Правило проверки для события — помогает вам убедиться, что монитор вашего браузера загружает ожидаемое содержимое страницы или элемент страницы. необязательный
target targetType Элемент, на который нужно нажать/коснуться необязательный

Объект javaScriptEvent

Содержит событие JavaScript.

Элемент Тип Описание Необходимость
type string Тип синтетического события

В этом случае, javascript

необходимый
description string Краткое описание события, которое будет отображаться в пользовательском интерфейсе. необходимый
javaScript string Код JavaScript, который будет выполнен в этом событии необходимый
wait waitCondition Условие ожидания события — определяет, как долго Ключ-АСТРОМ должен ждать перед выполнением следующего действия. необязательный
target targetType Вкладка, на которой выполняется код JavaScript необязательный

Объект selectOptionEvent

Содержит событие выбора опции.

Элемент Тип Описание Необходимость
type string Тип синтетического события

В этом случае, selectOption

необходимый
description string Краткое описание события, которое будет отображаться в пользовательском интерфейсе. необходимый
selections listOptions[] Варианты выбора необходимый
wait waitCondition Условие ожидания события — определяет, как долго Ключ-АСТРОМ должен ждать перед выполнением следующего действия. необязательный
validate validationType[] Правило проверки для события — помогает вам убедиться, что монитор вашего браузера загружает ожидаемое содержимое страницы или элемент страницы. необязательный
target targetType Тег выбора выпадающего списка необязательный

Объект cookieEvent

Содержит событие Cookie.

Элемент Тип Описание Необходимость
type string Тип синтетического события

В этом случае, cookie

необходимый
description string Краткое описание события, которое будет отображаться в пользовательском интерфейсе. необходимый
cookies requestCookie[] Список файлов cookie, которые будут созданы во время мероприятия

Каждый файл cookie должен быть уникальным в списке. Однако вы можете использовать тот же файл cookie снова в другом случае.

необходимый

Объект keystrokesEvent

Содержит событие keystrok.

Элемент Тип Описание Необходимость
type string Тип синтетического события

В этом случае, keystrokes

необходимый
description string Краткое описание события, которое будет отображаться в пользовательском интерфейсе. необходимый
textValue string Текст для ввода необходимый
masked boolean Указывает, зашифровано ли textValue (true) или нет (false). необходимый
simulateBlurEvent boolean Определяет, следует ли размывать текстовое поле при потере фокуса.

Установите true для запуска размытия textValue.

необходимый
wait waitCondition Условие ожидания события — определяет, как долго Ключ-АСТРОМ должен ждать перед выполнением следующего действия. необязательный
validate validationType[] Правило проверки для события — помогает вам убедиться, что монитор вашего браузера загружает ожидаемое содержимое страницы или элемент страницы. необязательный
target targetType Объект для ввода текста необязательный

Объект waitCondition

Содержит условие ожидания события.

Элемент Тип Описание Необходимость
waitFor string Время ожидания до срабатывания следующего события

Возможные значения:

  • page_complete— подождать полной загрузки страницы.
  • network— подождать завершения фоновой сетевой активности.
  • next_action— подождать следующего действия.
  • time— подождать определенный период времени.
  • validation— подождать появления определенного элемента.
необходимый
milliseconds integer Время ожидания в миллисекундах

Максимально допустимое значение — 60000.

необходимый для типа time

В противном случае не применимо

timeoutInMilliseconds integer Максимальное время ожидания появления определенного элемента в миллисекундах. При превышении этого времени действие помечается как невыполненное.

Максимально допустимое значение — 60000.

необходимый для типа validation

В противном случае не применимо

validation validationType[] Элемент, который нужно ждать необходимый для типа validation

В противном случае не применимо

Объект validationType

Содержит правило проверки для события или правила ожидания.

Элемент Тип Описание Необходимость
type string Цель проверки:
  • content_match— проверить страницу на наличие определенного контента. Не допускается для проверки внутри состояния ожидания.
  • element_match— проверьте страницу на наличие конкретного элемента.
необходимый
match string Содержание, которое следует искать на странице

Регулярные выражения разрешены. В этом случае установите isRegex как true.

необходимый для content_match

необязательный для element_match

isRegex boolean Определяет, является ли соответствие простым текстом (false) или регулярным выражением (true). необязательный
failIfFound boolean Условие проверки:
  • false— проверка считается успешной, если указанный контент/элемент найден.
  • true— проверка не пройдена, если указанный контент/элемент найден.
необходимый
target targetType Элемент, который нужно искать на странице необходимый для element_match

необязательный для content_match

Объект plainAuthenticationType

Простые учетные данные для входа в систему, чтобы обойти маску входа в браузер во время события Navigate

Элемент Тип Описание Необходимость
type string Тип аутентификации — http_authentication или webform.

Тип аутентификации webform не допускается в мониторах Clickpath.

необязательный
username string Имя пользователя для входа в систему. необходимый
password string Пароль для входа в систему.

Он содержит не сам пароль, а его уникальный ID, а сам пароль хранится в Ключ-АСТРОМ и находится по ID. Если изменить ID, то сохраненный пароль станет недоступным.

Чтобы изменить пароль, установите замаскированное свойство как false и введите новый пароль.

необходимый
masked boolean Флаг замаскированного пароля

true означает, что пароль зашифрован и сохранен, а в поле пароля отображается идентификатор пароля для шифрования пароля.

Настройте ввод нового пароля на false.

необязательный

Объект secureAuthenticationType

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

Элемент Тип Описание Необходимость
type string Тип аутентификации — http_authentication или webform.

Тип аутентификации webform не допускается в мониторах Clickpath.

необязательный
credential credentialType Объект учетных данных, содержащий имя пользователя и пароль. необходимый
domain string Домен Kerberos. необходимый для kerberos
authServerAllowlist string Список разрешенных серверов для аутентификации kerberos. Можно использовать подстановочные знаки. Точные данные приведены в документации Chrome Enterprise . необходимый для kerberos

Объект credentialType

Учетные данные из хранилища учетных данных.

Элемент Тип Описание Необходимость
id string Идентификатор учетных данных в хранилище учетных данных. необходимый
credentialField string Тип аутентификации — username или password. необязательный

Объект listOptions

Содержит параметры, которые необходимо выбрать в событии Выбор опции.

Элемент Тип Описание Необходимость
index integer Индекс выбираемого варианта необходимый
value string Значение выбираемого варианта необходимый

Объект targetType

Содержит целевую вкладку или элемент события.

Элемент Тип Описание Необходимость
window string Вкладка цели необязательный
locators locatorType[] Список локаторов, идентифицирующих нужный элемент необязательный

Объект locatorType

Содержит элемент страницы для поиска.

Элемент Тип Описание Необходимость
type string Определяет, где искать элемент:
  • css— в селекторе CSS
  • dom— в коде JavaScript
необходимый
value string Имя элемента, который нужно найти необходимый