Link

A Link node allows to reuse another RequestStep (including Assertion) and Folder nodes.

How It Works

A Link node allows to override the values of the running node variables. A Link node runs another node, passing the variables set by a user to it. After the run, dynamic variables of the node are set as dynamic variables of the Link node parent group. Thus the result of the run can be seen from any of the neighboring Link node.

You can refer to:

You can NOT refer to:

  • Another Link node (including self);

  • Any child of a Link node (since it'll cause an endless loop).

A Link node allows to override the variables values of the parent node.

If you delete the link a Link node refers to, the Link node wouldn't run until you provide a proper link.‌

Parent Node

Create a parent node you need to refer to and create all necessary static variables, for example postID. You can leave value fields empty.

Create a Link node and specify its parent, and you'll see all the variables you created for the parent earlier. You can use any variables or a static value as an overriden value.

Scenario Example

Let's see an example of running a RequestStep node as a Link node to delete a record.

Creating a parent node

  1. Create a new RequestStep node named deletePost.

  2. Request type - DELETE.

  3. Create for this node a static id variable without specifying its value.

Creating a scenario

  • Create a Link node named deleteLink.

    • Specify the project/deletePost node as a parent.

    • Set the${$dynamicVar.postId} as an overridden value for the id variable of the parent deletePost node.

  • Create a RequestStep node checkIfExists to check if the record was deleted:

Import the Project by URL

File Representation

A Link node is a folder with the node name, containing the index.yml file with the following format:

{
  "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