Assertion

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

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

Создать Assertion узел можно следующими способами: из дерева проекта в контекстном меню RequestStep узла выбрать Add node -> Assertion. Либо в секции ответа RequestStep узла во вкладке Assertion выбрать + CREATE NEW ASSERTION NODE.

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

Если запуск Assertion узла завершился успешно, то в дереве он принимает следующий вид:

В случае, если запуск Assertion узла завершился с ошибкой, узел выглядит так:

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

  • Remove node. Удалить узел.

  • Run. Запустить узел.

  • Show in explorer. Открыть папку с узлом в файловом менеджере.

Вкладка с Assertion узлом выглядит следующим образом:

На скрине отмечены следующие области:

  1. Панель управления

  2. Панель настроек выбранного Assertion

  3. Список Assertion-ов

На панели управления расположены следующие кнопки

  • RUN - запуск списка Assertion-ов

  • FIX ERRORS - исправление ошибок Assertion-ов где это возможно. Данная кнопка активируется в случае, если есть ошибки в Assertion-ах. Функционал исправления ошибок описан в разделах Исправление ошибок каждого из Assertion-ов.

  • DISABLE ERRORS - выключение Assertion-ов, завершившихся с ошибкой. Отключенные Assertion-ы не будут участвовать в дальнейших запусках. Данная кнопка активируется в случае, если есть ошибки в Assertion-ах

  • + ADD ASSERTION - добавление Assertion в список

Ниже панели управления находится список Assertion-ов. Каждый элемент в данном списке выглядит следующим образом:

На скрине отмечены следующие области:

  1. Подсветка статуса. Если Assertion не запускался, то его цвет серый, если запуск завершился с ошибкой - красный, если успешно - зеленый

  2. Место для захвата и перетаскивания элемента

  3. Иконка конкретного типа Assertion

  4. Краткое текстовое представление Assertion

  5. Кнопка для отображения/скрытия подробностей о произошедших ошибках

  6. Удалить Assertion

  7. Задизейблить Assertion. При этом не будет участвовать в последующих запусках

  8. Запустить Assertion

  9. Исправить Assertion

Заметим, что контролы 6, 7, 8 и 9 появляются при наведении на Assertion.

Интерфейс панели настроек выбранного Assertion-а зависит от выбранного Assertion-а. В следующих разделах мы подробно разберем каждый из Assertion-ов.

Все Assertion имеют общее поле Name для описания назначения данной проверки. Если поле оставить пустым, то будет задано описание по-умолчанию в зависимости от свойств assertion-а.

Шаблонный Assertion

Начиная с версии 1.0.0 Assertion узел можно создавать без привязки к RequestStep как любой другой узел в проекте. Его можно использовать с целью проверки результатов работы нескольких запросов, либо как шаблон, в котором будет описан ряд типичных проверок для каждого запроса.

В отличии от Assertion-а, который привязан к RequestStep и наследует его контекст (переменные, динамические переменные, response), шаблонный Assertion получает во время запуска контекст того узла, который ссылается на данный шаблон. Контекст сохраняется во встроенную переменную $host и инициализируется только после запуска.

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

Для отладки в интерфейсе шаблона отображается имя узла, который последним запускался и передавал свой контекст в шаблон. В таком случае будет доступна подсветка значений и автоподстановка в выражениях, содержащих переменную $host

Пример шаблонного Assertion узла

Подробнее об использовании самостоятельного узла Assertion как шаблона и примеры смотрите в разделе Link Assertion.

Файловое представление

Assertion узел хранится в файле <nodename>.yml, где <nodename> - название Assertion-а и имеет следующий формат:

Last updated

Was this helpful?