Режим скрипта HTTP-мониторинга

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

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

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

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

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

  1. Перейдите в раздел Синтетика и выберите просмотр мониторов в режиме списка.
  2. Установите флажок рядом с монитором, который вы хотите редактировать > выберите Редактировать в левом нижнем углу.
  3. Выберите вкладку HTTP-запросы в настройках монитора слева.
  4. Выберите Режим скрипта вверху.

Редактировать скрипт

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

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

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

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

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

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

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

Элемент Тип Описание Необходимость
version string Версия скрипта — используйте значение здесь 1.0. необходимый
requests Array of:

request

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

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

необходимый

Объект request

Содержит параметры HTTP-запроса.

Элемент Тип Описание Необходимость
description string Краткое описание события, которое будет отображаться в веб-интерфейсе. необязательный
url string URL для проверки необходимый
method string HTTP-метод запроса необходимый
requestBody string Тело HTTP-запроса — необходимо экранировать все символы JSON.

Устанавливается в значение null, если метод запроса — GET, HEAD или OPTIONS.

необязательный
validation requestValidation Конфигурация проверки запроса

Проверка помогает вам убедиться, что ваш HTTP-монитор загружает ожидаемый контент.

необязательный
configuration requestConfiguration Настройка монитора​ необязательный
preProcessingScript string Скрипт , выполненный до запроса

Необходимо экранировать все символы JSON и переносить строки с помощью /n.

необязательный
postProcessingScript string Скрипт , выполненный после запроса

Необходимо экранировать все символы JSON и переносить строки с помощью /n.

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

Объект requestValidation

Содержит конфигурацию проверки для запроса.

Элемент Тип Описание Необходимость
rules Array of:

validationRule

Список правил проверки необязательный

Для проверки HTTP-монитора оцениваются следующие типы правил (см. validationRule):

  • Проверка кода статуса ответа
  • Проверка текста, при которой тело ответа проверяется на наличие строки текста или регулярного выражения.
  • Проверка срока действия SSL-сертификата

Это означает, что монитор не будет работать, если хотя бы одно из этих правил со знаком passIfFound = false будет выполнено или хотя бы одно правило со знаком passIfFound = true не будет выполнено.

Монитор будет успешно выполнен, если все правила со знаком passIfFound = false не выполнены и все правила со знаком passIfFound = true выполнены.

Объект validationRule

Содержит правило проверки.

Элемент Тип Описание Необходимость
type string Тип правила — возможные значения:
  • patternConstraint — выполняет простое сопоставление контента.
  • regexConstraint — интерпретирует соответствие содержимого как регулярное выражение .
  • httpStatusesList — проверяет список кодов статуса HTTP.
  • certificateExpiryDateConstraint — проверяет, находится ли срок действия сертификата в пределах указанного количества дней.
необходимый
passIfFound boolean Условие проверки:
  • true — проверка считается успешной, если указанный контент/элемент найден.
  • false — проверка не пройдена, если указанный контент/элемент найден.

Всегда указывайте false для отказа монитора certificateExpiryDateConstraint, если срок действия SSL-сертификата находится в пределах указанного количества дней.

необходимый
value string Содержание, которое нужно искать необходимый

Объект requestConfiguration

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

Элемент Тип Описание Необходимость
userAgent string Пользовательский агент запроса необязательный
acceptAnyCertificate boolean Принимать любой (true) или только доверенный (false) SSL-сертификат.

Если установлено значение false, то монитор даст сбой из-за недействительных сертификатов SSL.

Если не задано false, используется опция.

необязательный
followRedirects boolean Следуйте (true) или не следуйте (false) перенаправлениям.

Если установлено значение false, перенаправления регистрируются как успешные запросы с кодом ответа 3xx.

Если не задано false, используется опция.

необязательный
requestHeaders Array of:

requestHeader

Список дополнительных заголовков для запроса

По умолчанию установлен только заголовок User-Agent.

Вы не можете установить или изменить этот заголовок здесь. Используйте userAgent для этого поля.

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

ОбъектrequestHeader

Содержит HTTP-заголовок запроса.

Элемент Тип Описание Необходимость
name string Ключ заголовка необходимый
value string Значение заголовка необходимый

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

Это модель скрипта JSON, показывающая все возможные элементы. Его нужно настроить, чтобы использовать как настоящий скрипт. Чтобы увидеть пример скрипта реального монитора, вы можете проверить любой существующий HTTP-монитор в режиме скрипта.

{

  "version": "1.0",

  "requests": [

    {

      "description": "string",

      "url": "string",

      "method": "POST",

      "requestBody": "{\n\"customParameter1\": \"customValue1\",\n\"customParameter2\": true,\n\"customParameter3\": 452\n}",

      "validation": {

        "rules": [

          {

            "type": "patternConstraint",

            "passIfFound": true,

            "value": "string"

          },

          {

            "type": "regexConstraint",

            "passIfFound": true,

            "value": "string"

          }

        ],

        "rulesChaining": "or"

      },

      "configuration": {

        "userAgent": "string",

        "acceptAnyCertificate": false,

        "followRedirects": true,

        "requestHeaders": [

          {

            "name": "string",

            "value": "string"

          }

        ]

      },

      "preProcessingScript": "string",

      "postProcessingScript": "string"

    }

  ]

}