Assertion
Last updated
Was this helpful?
Last updated
Was this helpful?
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
Заметим, что контролы 4, 5, 6 и 7 появляются при наведении на Assertion.
Интерфейс панели настроек выбранного Assertion-а зависит от выбранного Assertion-а. В следующих разделах мы подробно разберем каждый из Assertion-ов
Assertion узел хранится в файле <nodename>.yml, где <nodename> - название Assertion-а и имеет следующий формат:
{
"type": "object",
"properties": {
"type": {
"description": "Type of Assertion node",
"const": "Assertion",
"type": "string"
},
"assertions": {
"description": "List of assertions",
"type": "array",
"items": {
"$ref": "#/definitions/AbstractAssertion"
},
"default": []
},
"children": {
"description": "List of children names",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"variables": {
"$ref": "#/definitions/NodeVariables",
"description": "Node variables dictionary"
},
"name": {
"description": "Node name",
"type": "string"
}
},
"required": [
"assertions",
"children",
"name",
"type",
"variables"
],
"definitions": {
"AbstractAssertion": {
"oneOf": [
{
"$ref": "#/definitions/CompareAssertion"
},
{
"$ref": "#/definitions/ContainsAssertion"
},
{
"$ref": "#/definitions/XPathAssertion"
},
{
"$ref": "#/definitions/ScriptAssertion"
}
]
},
"CompareAssertion": {
"type": "object",
"properties": {
"type": {
"description": "Type of Compare assertion",
"const": "compare",
"type": "string"
},
"actualValue": {
"description": "Actual value",
"type": "string",
"default": "${$response.body}"
},
"operator": {
"$ref": "#/definitions/CompareOperator",
"description": "Operator",
"default": "equal"
},
"expectedValue": {
"description": "Expected value",
"type": "string"
},
"disabled": {
"type": "boolean",
"default": false
}
},
"required": [
"actualValue",
"disabled",
"expectedValue",
"operator",
"type"
]
},
"CompareOperator": {
"enum": [
"equal",
"greater",
"greater or equal",
"less",
"less or equal",
"not equal"
],
"type": "string"
},
"ContainsAssertion": {
"type": "object",
"properties": {
"type": {
"description": "Type of Contains assertion",
"const": "contains",
"type": "string"
},
"text": {
"description": "Text to be searched",
"type": "string",
"default": "${$response.body}"
},
"value": {
"description": "Value for search in text",
"type": "string"
},
"disabled": {
"type": "boolean",
"default": false
}
},
"required": [
"disabled",
"text",
"type",
"value"
]
},
"XPathAssertion": {
"type": "object",
"properties": {
"type": {
"description": "Type of Xpath assertion",
"const": "xpath",
"type": "string"
},
"text": {
"description": "Text to be searched",
"type": "string",
"default": "${$response.body}"
},
"path": {
"description": "XPath selector",
"type": "string"
},
"expectedValue": {
"description": "Expected value",
"type": "string"
},
"disabled": {
"type": "boolean",
"default": false
}
},
"required": [
"disabled",
"expectedValue",
"path",
"text",
"type"
]
},
"ScriptAssertion": {
"type": "object",
"properties": {
"type": {
"description": "Type of Script assertion",
"const": "script",
"type": "string"
},
"script": {
"description": "Assertion script",
"type": "string",
"default": "`function test(assertion, variables) {\n // It should return true if test is passed\n // return true;\n}`"
},
"disabled": {
"type": "boolean",
"default": false
}
},
"required": [
"disabled",
"script",
"type"
]
},
"NodeVariables": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}