Assertion
Last updated
Last updated
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 узлом выглядит следующим образом:
На скрине отмечены следующие области:
Панель управления
Панель настроек выбранного Assertion-а
Список Assertion-ов
На панели управления расположены следующие кнопки
RUN - запуск списка Assertion-ов
FIX ERRORS - исправление ошибок Assertion-ов где это возможно. Данная кнопка активируется в случае, если есть ошибки в Assertion-ах. Функционал исправления ошибок описан в разделах Исправление ошибок каждого из Assertion-ов.
DISABLE ERRORS - выключение Assertion-ов, завершившихся с ошибкой. Отключенные Assertion-ы не будут участвовать в дальнейших запусках. Данная кнопка активируется в случае, если есть ошибки в Assertion-ах
+ ADD ASSERTION - добавление Assertion в список
Ниже панели управления находится список Assertion-ов. Каждый элемент в данном списке выглядит следующим образом:
На скрине отмечены следующие области:
Подсветка статуса. Если Assertion не запускался, то его цвет серый, если запуск завершился с ошибкой - красный, если успешно - зеленый
Место для захвата и перетаскивания элемента
Иконка конкретного типа Assertion-а
Краткое текстовое представление Assertion-а
Кнопка для отображения/скрытия подробностей о произошедших ошибках
Удалить Assertion
Задизейблить Assertion. При этом не будет участвовать в последующих запусках
Запустить Assertion
Исправить Assertion
Заметим, что контролы 6, 7, 8 и 9 появляются при наведении на Assertion.
Интерфейс панели настроек выбранного Assertion-а зависит от выбранного Assertion-а. В следующих разделах мы подробно разберем каждый из Assertion-ов.
Все Assertion имеют общее поле Name
для описания назначения данной проверки. Если поле оставить пустым, то будет задано описание по-умолчанию в зависимости от свойств assertion-а.
Начиная с версии 1.0.0 Assertion узел можно создавать без привязки к RequestStep как любой другой узел в проекте. Его можно использовать с целью проверки результатов работы нескольких запросов, либо как шаблон, в котором будет описан ряд типичных проверок для каждого запроса.
В отличии от Assertion-а, который привязан к RequestStep и наследует его контекст (переменные, динамические переменные, response), шаблонный Assertion получает во время запуска контекст того узла, который ссылается на данный шаблон. Контекст сохраняется во встроенную переменную $host
и инициализируется только после запуска.
Отдельный запуск шаблонного Assertion становится нецелесообразным, поскольку в нем отсутствует контекст и все проверки заведомо провалятся. По этой причине TestMace отключает возможность самостоятельного запуска такого узла и пропускает его при выполнении сценария, в котором тот находится.
Для отладки в интерфейсе шаблона отображается имя узла, который последним запускался и передавал свой контекст в шаблон. В таком случае будет доступна подсветка значений и автоподстановка в выражениях, содержащих переменную $host
Подробнее об использовании самостоятельного узла Assertion как шаблона и примеры смотрите в разделе Link Assertion.
Assertion узел хранится в файле <nodename>.yml, где <nodename> - название Assertion-а и имеет следующий формат: