POSTMAN

more than what meets the eye

- Ritesh Ranjan

What's the talk about

  • Features overview in Postman
  • Scripting in Postman
  • Writing Test Cases for API 
  • Writing Integration Test
  • Pros and Cons
  • Comparisons

Collections & Folders

  • Easy way to group and share a collection of APIs
  • Provides scripting features in a Collection / Folder.
  • Collection can used to Run a API integration test.

{{Variables}}

  • Helps you to keep your code DRY 

 

Scopes

  • Global
  • Collection
  • Environment
  • Local
  • Data
// Set variables
pm.environment.set("url", "www.google.com")

pm.global.set("url", "www.google.com")

// Get variables
pm.variables.get("url")
pm.environment.get("url")
pm.global.get("url")

Environment and Global

 

- Set of key-value pairs

- Can be exported and Shared

Scripting

  • Powerful runtime based on Node.js
  • Can add dynamic behavior to requests and collections

 

JavaScript code to execute during 2 events in the flow​

                - Pre-request script 

                - Test script under the Tests tab

 

Postman Sandbox

  •  JavaScript execution environment
  • Code you write in the pre-request/test script section is executed in this sandbox.
  • Supported libs:   here

Detailed Execution Order

Pre-request script

  • Js Scripts executed before a Test is Run
  • Can be added to a Collection, Folder or a Request
  • Default Sandbox Runtime of Postman is Available
// Prefix 
var prefix = "mdl_heroku_";

// Clear global variables 
pm.globals.unset(prefix + "sessionToken");


// Set a random user name
pm.globals.set(prefix + "userName", "Perf_rit_" + prefix + Date.now() + "@hello.mileiq.com");

Test Script

  • JavaScript code executed after the request is sent
  • Access to the pm.response
  • Can be added to Collection, Folder and Test
// example using pm.response.to.have
pm.test("response is ok", function () {
    pm.response.to.have.status(200);
});

Condition Flow

  • postman.setNextRequest("request_name")
// Set the request to be executed next

pm.setNextRequest("request_name");


// Stop workflow execution

pm.setNextRequest(null);

Collection Run

  • Groups of requests that can be run together as a series of requests
  • Can be run against an environment
  • Used to build integration test suites
  • Can pass data between API requests
  • Can have conditional flows
  • Can also use CSV data file

 

 

DEMO

Pros

  • Already most used API testing tool for devs
  • Good way to publish sample request
  • No need to learn new scripting
  • Natural for most devs to write in JS
  • Can be easly integrated with CI/CD using newman
newman run postman-config/MDL_Rest_Login_Flow_Automated.postman_collection.json 
        -e postman-config/Actual_Router_Perf.postman_environment.json 
        --exitCode 1

Comparisons

Cons

  • Including custom js libraries sandbox is hacky.
  • No easy way to call API of different collection.
  • Custom script to connect to DB is difficult (hacky way)
  • Cannot be used as Load testing
  • Difficult to have Code Reviews and Pull Requests as collections are stored as JSON files.
  • No Direct GIT integration like Soap UI

Questions

Made with Slides.com