Настройка Assertions

Assertions используются для проверки запроса, ответа или URL на соответствие заданным условиям, например, наличие в ответе определенной строки.

Если хотя бы одно условие Assertions не выполняется, то запрос считается ошибочным.

Проверить результаты Assertions можно в дашборде Grafana.

Настройка Assertions для HTTP-запроса

  1. Откройте тест.

  2. Перейдите в группу или нажмите edit_button.

  3. Нажмите edit_button для нужного HTTP-запроса и перейдите на вкладку Assertions:

    ../_images/um_assertions.ru.png
  4. В выпадающем списке выберите одно из значений:

    • Request body. Тело запроса.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если все тело запроса полностью совпадает с указанной строкой. Регистр учитывается;

        • Not equals. Assertion успешен, если тело запроса не совпадает с указанной строкой. Регистр учитывается;

        • Not substring. Assertion успешен, если тело запроса не содержит указанную строку. Регистр учитывается;

        • Regexp contains. Assertion успешен, если тело запроса содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если все тело запроса полностью соответствует шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если тело запроса не содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если все тело запроса не соответствует шаблону регулярного выражения;

        • Substring. Assertion успешен, если тело запроса содержит указанную строку. Регистр учитывается.

      2. Укажите строку или регулярное выражение.

      Например, проверим, что тело запроса содержит параметр name:

      ../_images/um_request_body_example.png
    • Request headers. Заголовки запроса.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если весь заголовок запроса полностью совпадает с указанной строкой. Регистр учитывается;

        • Not equals. Assertion успешен, если заголовок запроса не совпадает с указанной строкой. Регистр учитывается;

        • Not substring. Assertion успешен, если заголовок запроса не содержит указанную строку. Регистр учитывается;

        • Regexp contains. Assertion успешен, если заголовок запроса содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если весь заголовок запроса полностью соответствует шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если заголовок запроса не содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если весь заголовок запроса не соответствует шаблону регулярного выражения;

        • Substring. Assertion успешен, если заголовок запроса содержит указанную строку. Регистр учитывается.

      2. Укажите строку или регулярное выражение.

      Например, проверим, что заголовок Accept-Language имеет значение en-US:

      ../_images/um_request_headers_example.png
    • Response body. Тело ответа.

      В выпадающем списке выберите одно из значений:

      • No filter. Фильтры JSONPath и Xpath не используются:

        1. Выберите тип условия:

          • Equals. Assertion успешен, если все тело ответа полностью совпадает с указанной строкой. Регистр учитывается;

          • Not equals. Assertion успешен, если тело ответа не совпадает с указанной строкой. Регистр учитывается;

          • Not substring. Assertion успешен, если тело ответа не содержит указанную строку. Регистр учитывается;

          • Regexp contains. Assertion успешен, если тело ответа содержит строку, которая соответствует шаблону регулярного выражения;

          • Regexp matches. Assertion успешен, если все тело ответа полностью соответствует шаблону регулярного выражения;

          • Regexp not contains. Assertion успешен, если тело ответа не содержит строку, которая соответствует шаблону регулярного выражения;

          • Regexp not matches. Assertion успешен, если все тело ответа не соответствует шаблону регулярного выражения;

          • Substring. Assertion успешен, если тело ответа содержит указанную строку. Регистр учитывается.

        2. Укажите строку или регулярное выражение.

        Например, проверим, что тело ответа содержит параметр name:

        ../_images/um_response_body_nofilter_example.png
      • JSONPath. Язык запросов к элементам JSON-файла. Подробнее см. статью JSON path syntax in detail:

        1. Укажите выражение jSONPath.

        2. В выпадающем списке выберите тип условия:

          • Equals. Assertion успешен, если все тело ответа полностью совпадает с указанной строкой. Регистр учитывается;

          • Exists. Assertion успешен, если JSON-путь существует;

          • Is not null. Assertion успешен, если значение не равно null;

          • Is null. Assertion успешен, если значение равно null;

          • Not equals. Assertion успешен, если тело ответа не совпадает с указанной строкой. Регистр учитывается;

          • Not exists. Assertion успешен, если JSON-путь не существует;

          • Regexp matches. Assertion успешен, если все тело ответа полностью соответствует шаблону регулярного выражения;

          • Regexp not matches. Assertion успешен, если все тело ответа не соответствует шаблону регулярного выражения.

        3. Укажите строку или регулярное выражение.

        Например, проверим, что цена первого телефона в теле ответа не равна null:

        ../_images/um_response_body_json_example.png
      • XPath. Язык запросов к элементам XML-документа. Подробнее см. статью XPath Syntax:

        1. В выпадающем списке выберите тип условия:

          • Matches. Assertion успешен, если тело ответа соответствует XPath-выражению;

          • Not matches. Assertion успешен, если тело ответа не соответствует XPath-выражению.

        2. Укажите XPath-выражение.

        Например, проверим, название телефона в теле ответа с id=1:

        ../_images/um_response_body_xpath_example.png
    • Response body size. Размер тела ответа.
      1. В выпадающем списке выберите операцию сравнения.

      2. Укажите ожидаемый размер тела ответа в байтах. Например:

        ../_images/um_response_body_size_example.png
    • Response code. Код ответа.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если весь код ответа полностью совпадает с указанной строкой;

        • Not equals. Assertion успешен, если код ответа не совпадает с указанной строкой;

        • Not substring. Assertion успешен, если код ответа не содержит указанную строку;

        • Regexp contains. Assertion успешен, если код ответа содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если весь код ответа полностью соответствует шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если код ответа не содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если весь код ответа не соответствует шаблону регулярного выражения;

        • Substring. Assertion успешен, если код ответа содержит указанную строку.

      2. Укажите строку или регулярное выражение. Например:

        ../_images/um_response_code_example.png
    • Response code size. Размер кода ответа.
      1. В выпадающем списке выберите операцию сравнения.

      2. Укажите ожидаемый размер кода ответа в байтах. Например:

        ../_images/um_response_code_size_example.png
    • Response document. Текст документа, возвращаемого веб-сервером. Список поддерживаемых форматов документов см. на странице Apache Tika Supported Document Formats.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если весь текст документа полностью совпадает с указанной строкой;

        • Not equals. Assertion успешен, если текст документа не совпадает с указанной строкой;

        • Not substring. Assertion успешен, если текст документа не содержит указанную строку;

        • Regexp contains. Assertion успешен, если текст документа содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если весь текст документа полностью соответствует шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если текст документа не содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если весь текст документа не соответствует шаблону регулярного выражения;

        • Substring. Assertion успешен, если текст документа содержит указанную строку.

      2. Укажите строку или регулярное выражение.

      Например, проверим, что документ содержит строку <html>:

      ../_images/um_response_document_example.png
    • Response duration. Время отклика на запрос.
      1. В выпадающем списке выберите операцию сравнения.

      2. Укажите ожидаемое время отклика на запрос в миллисекундах.

      Например, проверим, что время отклика не превышает 5 секунд:

      ../_images/um_response_duration_example.png
    • Response full size. Размер заголовков и тела ответа.
      1. В выпадающем списке выберите операцию сравнения.

      2. Укажите ожидаемый размер заголовков и тела ответа в байтах, например:

        ../_images/um_response_full_size_example.png
    • Response headers. Заголовки ответа.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если весь заголовок ответа совпадает с указанной строкой;

        • Not equals. Assertion успешен, если заголовок ответа не совпадает с указанной строкой;

        • Not substring. Assertion успешен, если заголовок ответа не содержит указанную строку;

        • Regexp contains. Assertion успешен, если заголовок ответа содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если весь заголовок ответа полностью соответствует шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если заголовок ответа не содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если весь заголовок ответа не соответствует шаблону регулярного выражения;

        • Substring. Assertion успешен, если заголовок ответа содержит указанную строку.

      2. Укажите строку или регулярное выражение.

      Например, проверим, что заголовок user-agent не содержит стандартное значение user-agent: Mozilla/5.0:

      ../_images/um_response_headers_example.png
    • Response headers size. Размер заголовков ответа.
      1. В выпадающем списке выберите операцию сравнения.

      2. Укажите ожидаемый размер заголовков ответа в байтах. Например:

        ../_images/um_response_header_size_example.png
    • Response message. Сообщение ответа.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если все сообщение ответа полностью совпадает с указанной строкой;

        • Not equals. Assertion успешен, если сообщение ответа не совпадает с указанной строкой;

        • Not substring. Assertion успешен, если сообщение ответа не содержит указанную строку;

        • Regexp contains. Assertion успешен, если сообщение ответа содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если все сообщение ответа полностью соответствует шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если сообщение ответа не содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если все сообщение ответа не соответствует шаблону регулярного выражения;

        • Substring. Assertion успешен, если сообщение ответа содержит указанную строку.

      2. Укажите строку или регулярное выражение.

      Например, проверим, что сообщение ответа содержит текст Not found:

      ../_images/um_response_message_example.png
    • Response message size. Размер сообщения ответа.
      1. В выпадающем списке выберите операцию сравнения.

      2. Укажите ожидаемый размер сообщения ответа в байтах. Например:

        ../_images/um_response_message_size_example.png
    • URL Sampled. Используется для проверки, что при выполнении запроса не произошло редиректа, и URL остался прежним.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если весь URL полностью совпадает с указанной строкой;

        • Not equals. Assertion успешен, если URL не совпадает с указанной строкой;

        • Not substring. Assertion успешен, если URL не содержит указанную строку;

        • Regexp contains. Assertion успешен, если URL содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если весь URL полностью соответствует шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если URL не содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если весь URL не соответствует шаблону регулярного выражения;

        • Substring. Assertion успешен, если URL содержит указанную строку.

      2. Укажите строку или регулярное выражение.

      Например, проверим, что URL – ссылка на товар в интернет-магазине:

      ../_images/um_url_sampled_example.png
  5. Нажмите Сохранить.

Чтобы удалить настройку, нажмите delete_button.

Настройка Assertions для gRPC-запроса

  1. Откройте тест.

  2. Перейдите в группу или нажмите edit_button.

  3. Нажмите edit_button для нужного gRPC-запроса и перейдите на вкладку Assertions:

    ../_images/um_grpc_assertions.ru.png
  4. В выпадающем списке выберите одно из значений:

    • Request body. Тело запроса.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если все тело запроса полностью совпадает с указанной строкой. Регистр учитывается;

        • Not equals. Assertion успешен, если тело запроса не совпадает с указанной строкой. Регистр учитывается;

        • Not substring. Assertion успешен, если тело запроса не содержит указанную строку. Регистр учитывается;

        • Regexp contains. Assertion успешен, если тело запроса содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если все тело запроса полностью соответствует шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если тело запроса не содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если все тело запроса не соответствует шаблону регулярного выражения;

        • Substring. Assertion успешен, если тело запроса содержит указанную строку. Регистр учитывается.

      2. Укажите строку или регулярное выражение.

      Например, проверим, что тело запроса содержит параметр name:

      ../_images/um_request_body_example.png
    • Request metadata. Метаданные запроса.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если все метаданные запроса полностью совпадают с указанной строкой. Регистр учитывается;

        • Not equals. Assertion успешен, если метаданные запроса не совпадают с указанной строкой. Регистр учитывается;

        • Not substring. Assertion успешен, если метаданные запроса не содержат указанную строку. Регистр учитывается;

        • Regexp contains. Assertion успешен, если метаданные запроса содержат строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если все метаданные запроса полностью соответствуют шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если метаданные запроса не содержат строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если все метаданные запроса не соответствуют шаблону регулярного выражения;

        • Substring. Assertion успешен, если метаданные запроса содержат указанную строку. Регистр учитывается.

      2. Укажите строку или регулярное выражение.

      Например, проверим, значение ID запроса:

      ../_images/um_request_metadata_example.png
    • Response body. Тело ответа.

      В выпадающем списке выберите одно из значений:

      • No filter. Фильтры JSONPath и Xpath не используются:

        1. Выберите тип условия:

          • Equals. Assertion успешен, если все тело ответа полностью совпадает с указанной строкой. Регистр учитывается;

          • Not equals. Assertion успешен, если тело ответа не совпадает с указанной строкой. Регистр учитывается;

          • Not substring. Assertion успешен, если тело ответа не содержит указанную строку. Регистр учитывается;

          • Regexp contains. Assertion успешен, если тело ответа содержит строку, которая соответствует шаблону регулярного выражения;

          • Regexp matches. Assertion успешен, если все тело ответа полностью соответствует шаблону регулярного выражения;

          • Regexp not contains. Assertion успешен, если тело ответа не содержит строку, которая соответствует шаблону регулярного выражения;

          • Regexp not matches. Assertion успешен, если все тело ответа не соответствует шаблону регулярного выражения;

          • Substring. Assertion успешен, если тело ответа содержит указанную строку. Регистр учитывается.

        2. Укажите строку или регулярное выражение.

        Например, проверим, что тело ответа содержит параметр name:

        ../_images/um_response_body_nofilter_example.png
      • JSONPath. Язык запросов к элементам JSON-файла. Подробнее см. статью JSON path syntax in detail:

        1. Укажите выражение jSONPath.

        2. В выпадающем списке выберите тип условия:

          • Equals. Assertion успешен, если все тело ответа полностью совпадает с указанной строкой. Регистр учитывается;

          • Exists. Assertion успешен, если JSON-путь существует;

          • Is not null. Assertion успешен, если значение не равно null;

          • Is null. Assertion успешен, если значение равно null;

          • Not equals. Assertion успешен, если тело ответа не совпадает с указанной строкой. Регистр учитывается;

          • Not exists. Assertion успешен, если JSON-путь не существует;

          • Regexp matches. Assertion успешен, если все тело ответа полностью соответствует шаблону регулярного выражения;

          • Regexp not matches. Assertion успешен, если все тело ответа не соответствует шаблону регулярного выражения.

        3. Укажите строку или регулярное выражение.

        Например, проверим, что цена первого телефона в теле ответа не равна null:

        ../_images/um_response_body_json_example.png
      • XPath. Язык запросов к элементам XML-документа. Подробнее см. статью XPath Syntax:

        1. В выпадающем списке выберите тип условия:

          • Matches. Assertion успешен, если тело ответа соответствует XPath-выражению;

          • Not matches. Assertion успешен, если тело ответа не соответствует XPath-выражению.

        2. Укажите XPath-выражение.

        Например, проверим, название телефона в теле ответа с id=1:

        ../_images/um_response_body_xpath_example.png
    • Response body size. Размер тела ответа.
      1. В выпадающем списке выберите операцию сравнения.

      2. Укажите ожидаемый размер тела ответа в байтах. Например:

        ../_images/um_response_body_size_example.png
    • Response code. Код ответа.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если весь код ответа полностью совпадает с указанной строкой;

        • Not equals. Assertion успешен, если код ответа не совпадает с указанной строкой;

        • Not substring. Assertion успешен, если код ответа не содержит указанную строку;

        • Regexp contains. Assertion успешен, если код ответа содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если весь код ответа полностью соответствует шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если код ответа не содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если весь код ответа не соответствует шаблону регулярного выражения;

        • Substring. Assertion успешен, если код ответа содержит указанную строку.

      2. Укажите строку или регулярное выражение. Например:

        ../_images/um_response_code_example.png
    • Response code size. Размер кода ответа.
      1. В выпадающем списке выберите операцию сравнения.

      2. Укажите ожидаемый размер кода ответа в байтах. Например:

        ../_images/um_response_code_size_example.png
    • Response document. Текст документа, возвращаемого веб-сервером. Список поддерживаемых форматов документов см. на странице Apache Tika Supported Document Formats.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если весь текст документа полностью совпадает с указанной строкой;

        • Not equals. Assertion успешен, если текст документа не совпадает с указанной строкой;

        • Not substring. Assertion успешен, если текст документа не содержит указанную строку;

        • Regexp contains. Assertion успешен, если текст документа содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если весь текст документа полностью соответствует шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если текст документа не содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если весь текст документа не соответствует шаблону регулярного выражения;

        • Substring. Assertion успешен, если текст документа содержит указанную строку.

      2. Укажите строку или регулярное выражение.

      Например, проверим, что документ содержит строку <html>:

      ../_images/um_response_document_example.png
    • Response duration. Время отклика на запрос.
      1. В выпадающем списке выберите операцию сравнения.

      2. Укажите ожидаемое время отклика на запрос в миллисекундах.

      Например, проверим, что время отклика не превышает 5 секунд:

      ../_images/um_response_duration_example.png
    • Response full size. Размер метаданных и тела ответа.
      1. В выпадающем списке выберите операцию сравнения.

      2. Укажите ожидаемый размер метаданных и тела ответа в байтах, например:

        ../_images/um_response_full_size_example.png
    • Response message. Сообщение ответа.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если все сообщение ответа полностью совпадает с указанной строкой;

        • Not equals. Assertion успешен, если сообщение ответа не совпадает с указанной строкой;

        • Not substring. Assertion успешен, если сообщение ответа не содержит указанную строку;

        • Regexp contains. Assertion успешен, если сообщение ответа содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если все сообщение ответа полностью соответствует шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если сообщение ответа не содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если все сообщение ответа не соответствует шаблону регулярного выражения;

        • Substring. Assertion успешен, если сообщение ответа содержит указанную строку.

      2. Укажите строку или регулярное выражение.

      Например, проверим, что сообщение ответа содержит текст Not found:

      ../_images/um_response_message_example.png
    • Response message size. Размер сообщения ответа.
      1. В выпадающем списке выберите операцию сравнения.

      2. Укажите ожидаемый размер сообщения ответа в байтах. Например:

        ../_images/um_response_message_size_example.png
    • Response metadata. Метаданные ответа.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если все метаданные ответа совпадают с указанной строкой;

        • Not equals. Assertion успешен, если метаданные ответа не совпадают с указанной строкой;

        • Not substring. Assertion успешен, если метаданные ответа не содержат указанную строку;

        • Regexp contains. Assertion успешен, если метаданные ответа содержат строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если все метаданные ответа полностью соответствуют шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если метаданные ответа не содержат строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если все метаданные ответа не соответствуют шаблону регулярного выражения;

        • Substring. Assertion успешен, если метаданные ответа содержат указанную строку.

      2. Укажите строку или регулярное выражение.

      Например, проверим, значение ID запроса:

      ../_images/um_response_metadata_example.png
    • Response metadata size. Размер метаданных ответа.
      1. В выпадающем списке выберите операцию сравнения.

      2. Укажите ожидаемый размер метаданных ответа в байтах. Например:

        ../_images/um_response_metadata_size_example.png
    • URL Sampled. Используется для проверки, что при выполнении запроса не произошло редиректа, и URL остался прежним.
      1. Выберите тип условия:

        • Equals. Assertion успешен, если весь URL полностью совпадает с указанной строкой;

        • Not equals. Assertion успешен, если URL не совпадает с указанной строкой;

        • Not substring. Assertion успешен, если URL не содержит указанную строку;

        • Regexp contains. Assertion успешен, если URL содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp matches. Assertion успешен, если весь URL полностью соответствует шаблону регулярного выражения;

        • Regexp not contains. Assertion успешен, если URL не содержит строку, которая соответствует шаблону регулярного выражения;

        • Regexp not matches. Assertion успешен, если весь URL не соответствует шаблону регулярного выражения;

        • Substring. Assertion успешен, если URL содержит указанную строку.

      2. Укажите строку или регулярное выражение.

      Например, проверим, что URL – ссылка на товар в интернет-магазине:

      ../_images/um_url_sampled_example.png
  5. Нажмите Сохранить.

Чтобы удалить настройку, нажмите delete_button.

См. также

Предпросмотр ответа

Для удобства настройки Assertions воспользуйтесь предварительным просмотром ответа:

  1. Выберите источник данных, например, HAR.

  2. Перейдите на необходимую вкладку: Headers, Body, Cookies:

    ../_images/um_preview_response.ru.png