Bird
Raised Fist0
Postmantesting~8 mins

Workflow sequencing in Postman - Framework Patterns

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Framework Mode - Workflow sequencing
Folder Structure
Postman-Workflow-Sequencing-Project/
├── collections/
│   ├── UserManagement.postman_collection.json
│   ├── OrderProcessing.postman_collection.json
│   └── InventoryManagement.postman_collection.json
├── environments/
│   ├── Development.postman_environment.json
│   ├── Staging.postman_environment.json
│   └── Production.postman_environment.json
├── scripts/
│   ├── pre-request-scripts/
│   │   └── authSetup.js
│   └── test-scripts/
│       └── validateResponse.js
├── data/
│   └── userData.json
├── reports/
│   └── test-run-report.html
├── postman_collection_runner.json
└── README.md
Test Framework Layers
  • Collections Layer: Contains Postman collections representing API workflows. Each collection groups related API requests in logical order to simulate real user or system workflows.
  • Environment Layer: Holds environment files with variables like base URLs, tokens, and credentials to run tests in different setups (Dev, Staging, Prod).
  • Scripts Layer: Includes pre-request scripts to prepare data or authentication before requests, and test scripts to validate responses after requests.
  • Data Layer: Contains external JSON files for data-driven testing, feeding dynamic data into requests during workflow execution.
  • Reports Layer: Stores test run reports generated by Newman or other runners for analysis and sharing.
Configuration Patterns
  • Environment Variables: Use environment files to switch between different API endpoints and credentials without changing collections.
  • Global Variables: Use sparingly for values shared across collections, like tokens or timestamps.
  • Data Files: Use JSON or CSV files to provide input data for workflow steps, enabling data-driven testing.
  • Collection Runner & Newman: Configure workflow execution order and environment via collection runner or Newman CLI with command-line options.
  • Authentication Setup: Use pre-request scripts to dynamically generate or refresh tokens before requests.
Test Reporting and CI/CD Integration
  • Newman Reports: Use Newman CLI to run collections and generate HTML, JSON, or JUnit reports for test results.
  • CI/CD Integration: Integrate Newman runs into pipelines (GitHub Actions, Jenkins, GitLab CI) to automate workflow testing on code changes.
  • Slack/Email Notifications: Configure pipeline steps to send test results notifications to teams.
  • Version Control: Store collections, environments, and scripts in Git for versioning and collaboration.
Best Practices
  • Modular Collections: Break workflows into smaller collections for reusability and easier maintenance.
  • Use Variables Wisely: Use environment and collection variables to avoid hardcoding and ease environment switching.
  • Clear Workflow Order: Arrange requests in collections to reflect the real sequence of API calls in the workflow.
  • Validate at Each Step: Add test scripts after each request to verify expected responses before moving to next step.
  • Automate with Newman: Use Newman for automated, repeatable workflow testing outside Postman UI.
Self Check

Where in this folder structure would you add a new pre-request script to handle token refresh before API calls?

Key Result
Organize Postman workflows into modular collections with environment configs and scripts for clear, automated API sequence testing.

Practice

(1/5)
1. What is the main purpose of workflow sequencing in Postman?
easy
A. To encrypt API requests for security
B. To create visual charts of API responses
C. To automatically generate API documentation
D. To run multiple requests in a specific order and share data between them

Solution

  1. Step 1: Understand workflow sequencing

    Workflow sequencing means running requests one after another in a set order.
  2. Step 2: Identify the purpose in Postman

    It allows passing data from one request to the next, making multi-step testing reliable.
  3. Final Answer:

    To run multiple requests in a specific order and share data between them -> Option D
  4. Quick Check:

    Workflow sequencing = ordered requests with data sharing [OK]
Hint: Think: run requests step-by-step sharing info [OK]
Common Mistakes:
  • Confusing workflow sequencing with documentation generation
  • Thinking it creates charts or encrypts requests
  • Believing requests run randomly without order
2. Which Postman script command is used to call another request inside a test script for workflow sequencing?
easy
A. pm.callRequest()
B. pm.sendRequest()
C. pm.executeRequest()
D. pm.runRequest()

Solution

  1. Step 1: Recall Postman scripting commands

    Postman provides a method to send HTTP requests programmatically inside scripts.
  2. Step 2: Identify the correct method for calling requests

    The correct method is pm.sendRequest(), which sends a request and handles its response.
  3. Final Answer:

    pm.sendRequest() -> Option B
  4. Quick Check:

    Call requests inside scripts = pm.sendRequest() [OK]
Hint: Remember: sendRequest sends HTTP calls inside scripts [OK]
Common Mistakes:
  • Using non-existent methods like pm.callRequest()
  • Confusing with pm.executeRequest() or pm.runRequest() which don't exist
  • Misspelling the method name
3. Consider this Postman test script snippet inside Request A:
pm.sendRequest('https://api.example.com/token', (err, res) => {
  pm.environment.set('token', res.json().access_token);
});

What will be the value of token in environment after this runs?
medium
A. The access_token value from the JSON response of the called request
B. Undefined, because pm.sendRequest does not set environment variables
C. An error, because pm.sendRequest cannot be used inside test scripts
D. The entire JSON response as a string

Solution

  1. Step 1: Understand pm.sendRequest callback

    The callback receives the response object res, which can be parsed as JSON.
  2. Step 2: Extract and set environment variable

    The script sets token to res.json().access_token, which is the access token string from the response.
  3. Final Answer:

    The access_token value from the JSON response of the called request -> Option A
  4. Quick Check:

    pm.sendRequest sets env var = access_token value [OK]
Hint: pm.sendRequest callback can set env vars from response JSON [OK]
Common Mistakes:
  • Assuming pm.sendRequest cannot set variables
  • Thinking the whole JSON is stored instead of just access_token
  • Confusing asynchronous callback behavior
4. You wrote this Postman test script to run Request B after Request A:
pm.sendRequest('https://api.example.com/data', (err, res) => {
  pm.environment.set('dataId', res.json().id);
});
pm.sendRequest('https://api.example.com/details/{{dataId}}', (err, res) => {
  console.log(res.json());
});

Why might the second request fail or use an empty dataId?
medium
A. Because pm.sendRequest cannot be called twice in the same script
B. Because environment variables cannot be used inside pm.sendRequest URLs
C. Because pm.sendRequest is asynchronous, the second request runs before dataId is set
D. Because console.log is not allowed inside pm.sendRequest callbacks

Solution

  1. Step 1: Analyze asynchronous behavior of pm.sendRequest

    pm.sendRequest runs asynchronously, so the second call may start before the first finishes.
  2. Step 2: Understand timing of environment variable setting

    The variable dataId is set only after the first request completes, so the second request may see it as empty if it runs too soon.
  3. Final Answer:

    Because pm.sendRequest is asynchronous, the second request runs before dataId is set -> Option C
  4. Quick Check:

    Async calls need chaining to ensure order [OK]
Hint: Async calls run out of order unless chained properly [OK]
Common Mistakes:
  • Thinking environment variables can't be used in URLs
  • Believing pm.sendRequest can't be called multiple times
  • Assuming console.log is disallowed in callbacks
5. You want to test a multi-step user signup flow in Postman using workflow sequencing. The steps are:
1. Create user (returns userId)
2. Verify email (needs userId)
3. Set user preferences (needs userId)

Which approach correctly sequences these requests and shares userId between them?
hard
A. Use pm.sendRequest inside the test script of each step to call the next, setting environment variables for userId
B. Run all requests manually in any order and copy userId between them
C. Use separate Postman collections for each step without sharing variables
D. Call all requests simultaneously using pm.sendRequest without waiting for responses

Solution

  1. Step 1: Understand multi-step flow needs ordered execution

    Each step depends on the previous step's userId, so requests must run one after another.
  2. Step 2: Use pm.sendRequest with environment variables to pass data

    Calling the next request inside the previous request's test script and setting userId as an environment variable ensures correct sequencing and data sharing.
  3. Final Answer:

    Use pm.sendRequest inside the test script of each step to call the next, setting environment variables for userId -> Option A
  4. Quick Check:

    Chain requests with pm.sendRequest and env vars for data flow [OK]
Hint: Chain requests with pm.sendRequest and env vars [OK]
Common Mistakes:
  • Running requests manually without automation
  • Not sharing variables between requests
  • Calling requests simultaneously causing race conditions