Link

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. В качестве URL используйте https://testmace-stage.herokuapp.com/posts/${id}

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

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

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

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

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

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

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

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

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#"
}

Last updated