Skip to content

Automation with Postman

Postman support is available starting with Squash TM 3.0.

Configuration of the execution environment

newman and its HTML Reporter (newman-reporter-html) must be present in the execution environment.

They can be installed with the commands:

npm install -g newman
npm install -g newman-reporter-html
(If you don’t have npm installed, download and install Node.js.)

Test reference in Squash TM

Info

The result of each executed Squash TM test case is calculated by taking into account the individual results of each test included in the bound collection file or in a specific folder level of the collection:

  • If at least one test has an Error status (in case of a technical issue), the status of the execution will be Blocked.
  • If at least one test fails functionally and none of the other has an Error status, the status of the execution will be Failed.
  • If all tests succeed, the status of the execution will be Success.

In order to bind a Squash TM test case to a Postman automated test, the content of the Automated test reference field of the Automation block of a test case must have the following format:

[1] / [2] # [3] # [4] or [1] / [2] # [3] or [1] / [2]

With:

  • [1]: Name of the Git repository.

  • [2]: Path and name of the Postman collection file, from the root of the project (with the .postman_collection.json extension).

    No support of renamed collection files

    Squash Orchestrator uses the name of the file to determine the name of the collection, i.e. if the file is called <name>.postman_collection.json, then the collection name is considered to be <name>. Squash Orchestrator uses this name <name> to analyze the execution report and determine the test result.
    If the collection file has been renamed, this mechanism will no longer work.

  • [3]: Name of a specific folder containing requests in the Postman collection file (Newman's --folder option).
    This parameter is optional, i.e. the last two components of the test reference may be absent.
    It is also possible to use an empty string and to indicate a specific request (in [4]).

  • [4]: Name of a specific request to parse for which you want to obtain a particular result.
    This parameter is optional, i.e. it may be absent.

Automated test reference and execution

The request [4] precision in the test reference has no impact on the execution, but only on test result determination.
So, even when defining the specific level of the request, all requests defined in the folder (if [3] is defined) or in the collection (if [3] is empty) will be executed; this means, for example, that if several Squash TM test cases point toward the same folder / collection but toward different requests, then all requests of the folder / collection will be executed several times.
The test reports include the traces of all executed requests. But, only the Error / Failed / Success status corresponding to the specific request is used to determinate the test case result.

Unicity of the specified folder

If the root directory of the project contains multiple directories with the name [3], Newman will only run the first one it finds. It is therefore strongly advised to choose unique names for the lower level directories.

Nature of the exploitable Squash TM parameters

The exploitable Squash TM parameters will differ depending on whether you're using the Community or Premium version of Squash AUTOM.

Here is a table showing the exploitable parameters (these parameters are transmitted as test parameters, see below, Squash TM does not generate global parameters):

Nature Key Community Premium
Name of the dataset DSNAME βœ… βœ…
Dataset parameter DS_[name] βœ… βœ…
Test case reference TC_REFERENCE βœ… βœ…
Test case internal UUID TC_UUID βœ… βœ…
Test case custom field TC_CUF_[code] βœ… βœ…
Iteration custom field IT_CUF_[code] ❌ βœ…
Campaign custom field CPG_CUF_[code] ❌ βœ…
Test suite custom field TS_CUF_[code] ❌ βœ…

Legend:

  • [code]: Value of the "Code" of a custom field
  • [name]: Parameter name as filled in Squash TM

As indicated, Squash TM adds a prefix to the code of the transmitted custom field. Make sure to take it into account.

Refer to the Squash TM documentation for more information about custom fields.

Parameters usage

It is possible, when running Postman tests, to exploit parameters within it. A parameter can be a test parameter or a global parameter. Squash TM transmits only test parameters. Test parameters and global parameters can be used in Squash DEVOPS with the postman/params action.

The global parameters are transmitted as global variables.
The test parameters are transmitted as environment variables.
Refer to the Postman documentation for a description of these variable types and how to use them.
This means that

  • the value of a global parameter can be retrieved using pm.globals.get("param_name")
  • the value of a test parameter can be retrived using pm.environment.get("param_name")
  • the value of a global parameter or of a test parameter can be retrieved with the {{param_name}} syntax; if a global parameter and a test parameter have both the param_name name, the value of the test parameter is used

Example

Below is an example of a Postman collection file and the corresponding Squash TM test case automation:

Postman example

Postman example

Postman example

Postman example

Supported versions

Squash AUTOM and Squash DEVOPS have been validated with Postman 8.12.1. Any recent version should work properly.