Scripting in Postman

Postman's runtime is based on Node.js and lets you add dynamic behavior to requests and collections. You can use pre-request and test scripts to write API tests, build requests that can contain dynamic parameters, pass data between requests, and more.

Pre-request and test scripts execute asynchronously. This enables you to execute multiple scripts without waiting for the previous script to complete. If you'd like scripts to execute in sequence, you can use a callback function.

Contents

Scripts in Postman

You can add JavaScript code to execute during two events in the flow:

  1. Before a request is sent to the server, as a pre-request script under the Pre-request Script tab.
  2. After a response is received, as a test script under the Tests tab.

Postman will prompt you with suggestions as you enter text. Select one to autocomplete your code.

Script autocomplete

You can add pre-request and test scripts to a collection, a folder, a request within a collection, or a request not saved to a collection.

Execution order of scripts

In Postman, the script execution order for a single request looks like this:

  • A pre-request script associated with a request will execute before the request is sent
  • A test script associated with a request will execute after the request is sent
Workflow for single request

For every request in a collection, scripts will execute in the following order:

  • A pre-request script associated with a collection will run prior to every request in the collection.
  • A pre-request script associated with a folder will run prior to every direct child request in the folder.
  • A test script associated with a collection will run after every request in the collection.
  • A test script associated with a folder will run after every direct child request in the folder.
workflow for request in collection

For every request in a collection, the scripts will always run according to the same hierarchy. Collection-level scripts (if any) will run first, then folder-level scripts (if any), and then request-level scripts (if any). Note that this order of execution applies to both pre-request and test scripts.

For example, imagine you had the following collection structured with a single folder and two requests within the folder.

Console log statement

If you created log statements in the pre-request and test script sections for the collection, folder, and requests, the execution order is returned in the Postman Console.

Logs in the Console

How it works

The Postman Sandbox is a JavaScript execution environment that's available to you while writing pre-request and test scripts for requests (both in Postman and Newman). Whatever code you write in these sections is executed in this sandbox.

Collections icon You can build conditional workflows using a collection, and branch and loop over a set of requests. To try out this collection template, select Conditional workflow.

Debugging scripts

Debugging scripts can be written under either the Pre-request Script tab or the Tests tab, with helpful messages logged in the Postman Console.

Last modified: 2021/01/27