TestMace
0.0.1-beta.16
0.0.1-beta.16
  • Быстрый старт
  • Интерфейс
    • Меню
    • Обзор интерфейса
    • Черновики
    • Типы узлов
    • Горячие клавиши
  • Типы узлов
    • Project
    • Folder
    • RequestStep
    • Assertion
      • Compare
      • Contains
      • Script
      • XPath
    • Link
    • API description
      • ApiRootFolder
      • ApiFolder
      • ApiRoute
      • Импорт описания API
    • Broken
    • Script
  • Переменные
    • Пользовательские переменные
      • Статически определяемые переменные
      • Динамические переменные
    • Встроенные переменные
    • Переменные окружения
  • Работа с проектом
    • Cookie
    • Авторизация
  • Настройки
    • Proxy
  • Прочие возможности
    • Массовое редактирование таблиц
    • Импорт & Экспорт
      • Shared
      • cURL
      • Swagger
      • Postman
    • HTTP-заголовки по умолчанию
Powered by GitBook
On this page
  • Принцип действия
  • Узел родитель
  • Узел Link
  • Пример сценария
  • Создание узла родителя
  • Создание сценария
  • Пример проект для импорта через URL
  • Файловое представление

Was this helpful?

  1. Типы узлов

Link

Узел типа Link (ссылка) предназначен для повторно использования других узлов: RequestStep (включая Assertion) и сценариев (Folder).

PreviousXPathNextAPI description

Last updated 5 years ago

Was this helpful?

Принцип действия

После выбора вызываемого узла, Link узел предоставляет возможность переопределить значения его переменных. Link узел вызывает исполнение другого узла, передавая ему заданные пользователем переменные. После выполнения, динамические переменные вызванного узла, устанавливаются как динамические переменные родительской группы Link узла. Таким образом результат выполнения доступен из любого соседствующего узла Link.

Из Link узла можно сослаться на:

  • узел

  • узел

Нельзя сослаться на:

  • Другой Link узел (в том числе на самого себя)

  • На любого предка Link узла (т.к. это вызовет при запуске бесконечный цикл)

Link узел предоставляет возможность переопределить значения переменных узла родителя.

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

Узел родитель

Создайте узел родитель, на который нужно ссылаться, и задайте ему необходимые , например postID. Значение переменной можно не указывать.

Узел Link

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

Пример сценария

Создание узла родителя

  1. Тип запроса DELETE

Создание сценария

    • тип запроса: POST

    • body запрос JSON {"title":"will delete with link node"}

  • Далее создаем Link узел с именем deleteLink

    • В качества родителя указываем узел project/deletePost

    • Для переменной id родителя deletePost в Link узле указываем Overridden Value ${$dynamicVar.postId}

    • Тип запроса: GET

    • Ожидаемый ответ сервера 404.

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

Link узел представляет из себя папку с названием узла, внутри которой содержится файл index.yml, имеющий следующий формат.

{
  "type": "object",
  "properties": {
    "type": {
      "description": "Type of Link node",
      "const": "Link",
      "type": "string"
    },
    "linkedNode": {
      "$ref": "#/definitions/NodeReference",
      "description": "Link to node"
    },
    "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": [
    "children",
    "linkedNode",
    "name",
    "type",
    "variables"
  ],
  "definitions": {
    "NodeReference": {
      "type": "object",
      "properties": {
        "refNodePath": {
          "description": "Absolute path to node",
          "type": "string"
        },
        "type": {
          "description": "Marker of reference entity",
          "const": "reference",
          "type": "string",
          "default": "reference"
        }
      },
      "required": [
        "refNodePath",
        "type"
      ]
    },
    "NodeVariables": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Рассмотрим пример, в котором, в качестве Link узла будем вызывать узел для удаления записи.

Создайте узел с именем deletePost

В качестве URL используйте

Создайте для этого узла id с пустым значением

Создайте узел с именем scenario

Добавьте в scenario узел с именем createPost:

URL:

Выполняем запрос и присваиваем id созданной записи postId для узла Scenario.

Создадим узел checkIfExists для проверки удаления записи

URL:

Пример проект для импорта

RequestStep
RequestStep
https://testmace-stage.herokuapp.com/posts/${id}
статически определяемую переменную
Folder
RequestStep
https://testmace-stage.herokuapp.com/posts/
динамической переменной
RequestStep
https://testmace-stage.herokuapp.com/posts/${$dynamicVar.postId}
через URL
RequestStep
Folder
статически определяемые переменные
4KB
link-node-demo.txt
Создание переменных для узла родителя
Создание Link узла и выбор родителя