• Documentation
  • Tutorials
  • Case studies
  • Blogs
  • Product

What's on this Page

  • Node types
  • Plan formats
  • Key concepts
    • Plan types
    • Structure & Execution
    • Variables in Plan
    • Undo, redo, and discard your changes
  • Advanced uses
    • Advanced Groovy expressions
    • Remote plan invocation
    • Interacting with a running plan
  • step
  • User guide
  • Plans
Categories: USER GUIDE PLANS
This article references one of our previous releases, click here to go to our latest version instead.

Plans

Plans are the implementation of an automation scenario such as a functional test case, a load test, an RPA routine, or a synthetic monitoring probe. Plans combine building blocks called Keywords with various controls that build up the execution logic of the automation scenario.

As a beginner, make sure to understand the key concepts explained in the following sections before creating your first Plan. You will also find various ways to create different types of Plan in our tutorials.

Node types

There are three basic types of nodes that can be used within a plan. Click the links in the table below to learn more about each type.

Step’s 3 node types
Keywords
Controls
Other plans
Keywords are the fundamental building blocks of a Plan and are designed to be shared between multiple Plans As in any programming language, Control structures are the type of nodes used for influencing the execution flow of the scenario A Plan can call other Plans via a special control in order to achieve modular Plan design.

Plan formats

Step provides three ways of designing, visualizing, and executing Plans. To learn more about each approach, click the links in the table below.

Step’s Plan editors
Visual plan editor
Text editor
Java
The most intuitive way to create a Plan is the Visual interface. Design is done visually via drag & drop and button clicks Offers a text representation of a plan, allowing for storage in third-party tools such as ALM test case descriptions or as files in a Git repository For a programmatic implementation of a plan by a developer, this is the most advanced way to create and use plans. See the Java Plan API page for more information.

Key concepts

This section contains a description of the most important concepts that you need to understand in order to design and execute plans successfully. For information about Step architecture and framework, see the Step documentation home page.

Plan types

Step provides different types of Plans to cater for various automation needs. The available Plan types are Sequence, TestCase, TestScenario, TestSet and AssertionPlan. When creating a Plan, you can select the appropriate Plan type from the drop-down menu, as illustrated in the following screenshot:

For extensive flexibility, each type of Plan is also available as Control component, letting you combine the unique characteristics of different Plan types in a single Plan construct. In other words, you can leverage the features of multiple Plan types by adding them as Control components in the same Plan.

This flexibility let you design comprehensive automation plans that suit your specific needs, making use of the strengths of different Plan types.

    The Plan configuration view showing the root of your Plan.

    In plain text, the root of your plan will be a Session node by default.

    Find out about all possibilities in our Javadocs.

    Depending on the type, child nodes will either be executed in parallel (for instance, if the root is a TestSet or a TestScenario) or in sequence. If you are not sure of the Plan type, make sure to select the Sequence type.

    Structure & Execution

    Plans are implemented by a tree of elements, referred to as nodes. The order of nodes in a tree, respective to their parents and siblings, determines the order of nodes execution.

    Here is an example showing the node tree in the Visual plan editor:

    Variables in Plan

    Variables are used throughout plans to pass information from one node to another, or to store the result of a dynamic computation.

    Variable types

    Similar to any programming language, Step supports the use of variables in Plans. The variables declared and used in a Plan are called Plan variables. A Plan variable is a container that stores a data value under a specific name.

    Like in classical programming languages, Step supports the following types of variables:

    • String: stores text (Default type of variables in Step)
    • Number: can be integer, long, float, or double
    • Boolean: stores values with two states: true or false
    • Complex Java objects: lets you define expressions for performing advanced data handling

    When passing or setting a variable into the value field of a control or Keyword input, Groovy execution will be required for numbers, booleans, and complex Java objects. The Groovy toggle is a powerful feature in Step that lets you add dynamic behavior to a plan without modifying your Keywords.

    Declaring variables in Plan

    In Step, you have different ways to declare Plan variables:

    • Using Set control: the most common way to declare a Plan Variable is to use the dedicated Set control in your Plan
    • Using Parameters: Parameters declared in the web interface under Parameters are made available to the Plan as Variables
    • Using Execution Parameters: Execution Parameters selected at the start of execution (Environment, etc) are also made available to the Plan as Variable. See Executing a Plan

    Variables in Set control

    Variables scope: A variable defined using the Set control is limited to the block where it is defined.
    For example, if a variable is defined inside the root node, it will be accessible to the subsequent nodes and their child nodes. However, if a variable is defined inside a child node, it will not be available to the ancestors and siblings of that child node.

      Using the Visual Plan editor, you can use the Set control as follow to declare a variable:

      This would declare a variable called “myVar” as String and set its value to “This is a string value”.

      The dynamic field button: Without activating the dynamic field button of the “value” field, the input value is interpreted as String. However, activating the dynamic field interprets the input value as a Groovy expression; and the result of the evaluation is set to “myVar” variable. And thus, lets you declare other primitives like integer, long, boolean, or complex object.

      To declare a variable as an integer, toggle the dynamic field button as follow:

      Using the plain text editor, you can use the Set control as follows to declare a variable:

      Set city="Basel"
      MyKeyword Parameter1="Welcome to ${city}"
      Set City="Bern"
      MyKeyword Parameter1="Welcome to ${city}"
      In this case the variable "city" will be declared as String.

      Similar to the Visual Plan Editor, you can also use Groovy expressions in the declaration of variables .

      Set birthyear=2006
      Set age=2019-birthday

      In this case, the variable “birthyear” will be declared as integer. The variable “age” will also be declared a integer as the result of the operation “2019-birthday”

      Find out about all possibilities in our Javadocs

      See also Controls

      Variables in Parameters

      Parameters declared in the web interface through the Parameters page are automatically declared by Step as variables at the beginning of the execution and can thus be accessed in the Plan like any other Plan variable.

      Variables in Execution parameters

      The parameters selected for the execution of a Plan (like “Environment”) are called Execution parameters. These Execution Parameters are also declared by Step as Plan variables at the beginning of the execution and can be accessed in the Plan like any other Plan variable.

      Accessing variables

      Variables can be accessed practically everywhere in Plans and can also be passed to Keywords.

        Using the Visual Plan Editor, you can access previously defined variables in every field that has the dynamic field button as shown in the following screenshot. The variables are available as binding in Groovy expressions.

        In this example, we pass the content of the variable “myVar” to the first parameter of the Keyword “My Keyword”.

        Using the plain text syntax you can use the following syntax to access the content of previously declared variables:

        Set birthyear=2013
        Set age=2019-birthyear
        Set city="Lucerne"
        
        MyKeyword Parameter1="I was born in ${city} in ${birthyear} and I am now ${age} years old"

        This would call the Keyword “MyKeyword” and set the value of variable “Parameter1” to “I was born in Lucerne in 2013 and I am now 6 years old”

        Find out about all possibilities in our Javadocs

        Undo, redo, and discard your changes

        The following applies to both visual Plan editor and the plain text plan editor

        Using the top-level buttons on the Plan page, it is possible to undo or redo a single modification that you performed while working on a Plan:

        It is also possible to discard all the changes you performed on a Plan to retrieve its “initial” state by clicking on the “Discard all” button:

        You can only rollback changes while you stay on the plan editor. Once you navigate, only the last state is persisted.

        Advanced uses

        Links and information about advanced Plan uses are provided in the following sections.

        Advanced Groovy expressions

        Advanced use of Groovy expressions as well as sample plans, are provided in our Resources > Library section.

        Remote plan invocation

        The Step Java client, as well as REST API, can be used for invoking plans remotely. Check out the stepClient API for more information on remote Plan invocations and triggers.

        Interacting with a running plan

        The Async semantics provided by the Async & Event plugin allows for real-time interactions with a running plan. One can use the WaitForEvent control to poll the event queue and influence the plan’s execution logic.

        See Also

        • Controls
        • Java Plan API
        • Keywords calls
        • Parameters
        • Plain text plans
        • Home
        • Whats new?
        • Admin guide
        • SaaS guide
        • User guide
          • Keywords
          • Plans
            • Keywords calls
            • Controls
            • Plan modularity
            • Visual Plan editor
            • Plain text plans
            • Java Plan API
          • Executions
          • Alerting rules
          • Incidents
          • Notifications
          • Parameters
          • Analytics
          • Analytics (beta)
          • Monitoring
          • Schedules
          • Event Broker Monitor
          • Import/Export entities
          • User account
          • Versioning
        • Developer guide
        • DevOps
        • Plugins
        • Libraries
        Step Logo
          • Documentation
          • Tutorials
          • Case studies
          • Blogs
          • Product
          • Home
          • Whats new?
          • Admin guide
          • SaaS guide
          • User guide
            • Keywords
            • Plans
              • Keywords calls
              • Controls
              • Plan modularity
              • Visual Plan editor
              • Plain text plans
              • Java Plan API
            • Executions
            • Alerting rules
            • Incidents
            • Notifications
            • Parameters
            • Analytics
            • Analytics (beta)
            • Monitoring
            • Schedules
            • Event Broker Monitor
            • Import/Export entities
            • User account
            • Versioning
          • Developer guide
          • DevOps
          • Plugins
          • Libraries