Bird
Raised Fist0
Postmantesting~10 mins

Workflow sequencing in Postman - Test Execution Trace

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
Test Overview

This test checks a simple API workflow in Postman where a user is created, then retrieved, and finally deleted. It verifies that each step completes successfully and the data matches expectations.

Test Code - Postman
Postman
pm.test("Create User - Status 201", function () {
    pm.response.to.have.status(201);
    const jsonData = pm.response.json();
    pm.environment.set("userId", jsonData.id);
});

pm.test("Get User - Status 200 and correct user", function (done) {
    pm.sendRequest({
        url: `https://api.example.com/users/${pm.environment.get("userId")}`,
        method: 'GET'
    }, function (err, res) {
        pm.expect(res).to.have.property('code', 200);
        const user = res.json();
        pm.expect(user.id).to.eql(pm.environment.get("userId"));
        done();
    });
});

pm.test("Delete User - Status 204", function (done) {
    pm.sendRequest({
        url: `https://api.example.com/users/${pm.environment.get("userId")}`,
        method: 'DELETE'
    }, function (err, res) {
        pm.expect(res).to.have.property('code', 204);
        done();
    });
});
Execution Trace - 4 Steps
StepActionSystem StateAssertionResult
1Send POST request to create a new userAPI server receives user creation requestResponse status is 201 CreatedPASS
2Extract user ID from response and save to environment variableUser ID stored for next requestsPASS
3Send GET request to retrieve the created user using saved user IDAPI server returns user dataResponse status is 200 OK and user ID matches saved IDPASS
4Send DELETE request to remove the created user using saved user IDAPI server deletes userResponse status is 204 No ContentPASS
Failure Scenario
Failing Condition: User ID is missing or incorrect, causing GET or DELETE requests to fail
Execution Trace Quiz - 3 Questions
Test your understanding
What does the first test step verify?
AThe user creation returns status 201 Created
BThe user data matches expected values
CThe user is deleted successfully
DThe GET request returns status 200 OK
Key Result
Always save and reuse dynamic data like IDs between API calls to maintain correct workflow sequencing in tests.

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