Designing functional tests
In step, Plans can be used to design any sort of automation assets, ranging from functional test cases, load scenarios, to RPA routines, or even monitoring probes. In this tutorial we’ll focus on the design, execution and analysis of functional tests using the web interface of step.
If you’re already using a test management tool like ALM, Jira or equivalent, you can integrate it with step using the dedicated step plugins and thus easily design, edit, and manage your test cases in your favorite T&M tool. This tutorial focuses on the design of functional tests with the standalone editor of step. Please refer to the plugin sections for more information regarding the integration with other T&M tools.
Prerequisite: for this tutorial we assume that you’ve successfully installed step and that you’ve already created your first keywords that automate your test application (SUT).
Plan design
Test case creation
To start we’ll create our test cases using the visual plan editor of step. To do so, navigate to “Plans” and click the “New Plan” button. You’ll be prompted for the plan name and type. For reporting reasons that we’ll mention later it is important to select the “TestCase” type as displayed on the following screenshot.
After clicking “Save and edit” you’ll be redirected to the visual plan editor to edit the newly created test case. There you can build your plan using your own keywords analogous to the following example. If you haven’t already created Keywords for your test case you can follow the getting started or refer to the Keyword API documentation
If you’re not confortable with the creation of plans, please refer to the Plan documentation.
You can create as many test cases as you need using the same approach:
An essential aspect of functional tests is the use of assertions within test cases. In classical Keyword-driven approaches and tools, assertions are performed using dedicated keywords. A typical example would be for instance:
- Login to my application
- Assert I’m on the home page
- Search for article
- Assert I’ve found the expected article …
While using dedicated keywords for assertions is perfectly possible in step, step also provide the ability for a Keyword to return output values called “Keyword outputs” (See Keyword Output & Asserts for more details). Using Keyword Outputs in combination with Asserts has many advantages over the use of dedicated assertion Keywords:
- No need for the implementation of dedicated Keywords for assertions
- Uniform and structured reporting of assertion failures in step
- The Keyword and its assertions are grouped atomically within the report
- Transparent reporting and recording of Keyword Outputs
Let’s create a test case with one assertion on the Keyword Outputs:
Test set creation
Now that we’ve created our test cases we might want to group them in a test set. A test set in step is, like any other automation asset, just a special kind of Plan. To create your first test set, navigate to “Plans”, click on “New Plan”. Give your test set a name and select the type TestSet.
After clicking “Save and edit” you’ll be redirected to the plan editor. There you can add your test cases to the test set by clicking the “+” button in the tab “Other plans” of the “Available components” frame:
Execution & Analysis
The execution of your test set works like for any other plan in step: go to “Plans”, search for you test set and then click on the play button:
When running test sets (Plans of type “TestSet”) step automatically displays the test set reporting view on the execution page. On the top of the page you’ll find an overview of all your test cases. This view is only displayed for Plans having the type TestSet.
On the top of the test case frame an overview of the the test case status is displayed. In case of errors you can drill down by clicking or selecting a single test case:
Scaling out
An important aspect of test sets in step is the ability to run them in parallel in order to reduce the total execution time of the test set.
The parallel execution of test cases within a test set is supported out of the box by step. Assuming you have enough step Agents available in your grid, you can simply set the parallelism using the reserved variable “tec.execution.threads”.
You can define this variable globally as “Parameter”:
Or set it individually like an other variable in step.