Bird
Raised Fist0
Postmantesting~5 mins

Why chaining simulates real workflows in Postman

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
Introduction

Chaining helps test how different parts of a system work together step-by-step, just like real users do.

When you want to test a login followed by accessing user data
When you need to create a resource first, then update or delete it
When testing a multi-step process like checkout in an online store
When verifying that data flows correctly between API calls
When simulating a user journey that depends on previous actions
Syntax
Postman
pm.sendRequest(request1, function (err, res1) {
    // Use data from res1
    pm.sendRequest(request2, function (err, res2) {
        // Continue chaining as needed
    });
});

Each request waits for the previous one to finish before starting.

You can pass data from one response to the next request.

Examples
This example logs in first, then uses the token to get the user profile.
Postman
pm.sendRequest({ url: 'https://api.example.com/login', method: 'POST', body: { mode: 'raw', raw: JSON.stringify({ username: 'user', password: 'pass' }) } }, function (err, res) {
    const token = res.json().token;
    pm.sendRequest({ url: 'https://api.example.com/profile', method: 'GET', header: { Authorization: `Bearer ${token}` } }, function (err, res2) {
        console.log(res2.json());
    });
});
This example creates an item, then deletes it using the returned ID.
Postman
pm.sendRequest({ url: 'https://api.example.com/items', method: 'POST', body: { mode: 'raw', raw: JSON.stringify({ name: 'item1' }) } }, function (err, res) {
    const itemId = res.json().id;
    pm.sendRequest({ url: `https://api.example.com/items/${itemId}`, method: 'DELETE' }, function (err, res2) {
        console.log('Item deleted');
    });
});
Sample Program

This script creates a post, then fetches it using the returned ID, simulating a real workflow.

Postman
pm.sendRequest({
    url: 'https://jsonplaceholder.typicode.com/posts',
    method: 'POST',
    header: { 'Content-Type': 'application/json' },
    body: { mode: 'raw', raw: JSON.stringify({ title: 'foo', body: 'bar', userId: 1 }) }
}, function (err, res) {
    if (err) {
        console.error('Error creating post:', err);
        return;
    }
    const postId = res.json().id;
    console.log('Post created with ID:', postId);

    pm.sendRequest({
        url: `https://jsonplaceholder.typicode.com/posts/${postId}`,
        method: 'GET'
    }, function (err2, res2) {
        if (err2) {
            console.error('Error fetching post:', err2);
            return;
        }
        console.log('Fetched post title:', res2.json().title);
    });
});
OutputSuccess
Important Notes

Chaining ensures tests follow the real order of actions users take.

It helps catch bugs that happen only when steps depend on each other.

Be careful with error handling to avoid silent failures in chains.

Summary

Chaining mimics real user workflows by linking requests step-by-step.

It passes data between requests to test connected actions.

This approach helps find issues in multi-step processes.

Practice

(1/5)
1. Why is chaining requests in Postman important for testing workflows?
easy
A. It speeds up the execution by running all requests in parallel.
B. It simulates real user actions by linking multiple requests step-by-step.
C. It automatically generates test data without user input.
D. It only tests individual requests without dependencies.

Solution

  1. Step 1: Understand chaining concept

    Chaining means connecting requests so output from one is input to another, like real user steps.
  2. Step 2: Identify why chaining matters

    This simulates real workflows where actions depend on previous results, catching issues in multi-step processes.
  3. Final Answer:

    It simulates real user actions by linking multiple requests step-by-step. -> Option B
  4. Quick Check:

    Chaining = simulating workflows [OK]
Hint: Chaining links requests like real user steps [OK]
Common Mistakes:
  • Thinking chaining runs requests in parallel
  • Believing chaining auto-generates data
  • Assuming chaining tests requests independently
2. Which Postman feature is used to pass data from one request to another in a chain?
easy
A. Environment variables
B. Response body
C. Collection runner
D. Pre-request scripts

Solution

  1. Step 1: Identify data passing method

    Environment variables store data accessible across requests in a collection.
  2. Step 2: Understand chaining data flow

    Data saved in environment variables from one request can be used in the next, enabling chaining.
  3. Final Answer:

    Environment variables -> Option A
  4. Quick Check:

    Data passing = Environment variables [OK]
Hint: Use environment variables to share data between requests [OK]
Common Mistakes:
  • Confusing pre-request scripts with data storage
  • Thinking collection runner passes data automatically
  • Assuming response body alone passes data
3. Given this Postman test script snippet in Request 1:
pm.environment.set('token', pm.response.json().authToken);

And in Request 2 header:
Authorization: Bearer {{token}}

What happens when these requests run in a chain?
medium
A. Request 2 uses the token from Request 1's response for authorization.
B. Request 2 fails because token is not set before it runs.
C. Request 1 overwrites the token after Request 2 runs.
D. Request 2 sends an empty Authorization header.

Solution

  1. Step 1: Analyze token setting in Request 1

    Request 1 saves authToken from its response into environment variable 'token'.
  2. Step 2: Check usage in Request 2

    Request 2 uses {{token}} in Authorization header, so it uses the saved token from Request 1.
  3. Final Answer:

    Request 2 uses the token from Request 1's response for authorization. -> Option A
  4. Quick Check:

    Token saved then used = Authorization works [OK]
Hint: Set variable in one request, use it in next [OK]
Common Mistakes:
  • Assuming variables update after all requests run
  • Thinking token is empty without manual setting
  • Confusing order of request execution
4. You chained two requests in Postman, but the second request fails with a 401 Unauthorized error. What is the most likely cause?
medium
A. The first request did not return any response.
B. The second request URL is incorrect.
C. The collection runner is not enabled.
D. The environment variable holding the token was not set correctly in the first request.

Solution

  1. Step 1: Understand 401 error meaning

    401 Unauthorized means missing or invalid authentication token in the second request.
  2. Step 2: Check chaining token setup

    If the environment variable token was not set in the first request, the second request sends no valid token, causing failure.
  3. Final Answer:

    The environment variable holding the token was not set correctly in the first request. -> Option D
  4. Quick Check:

    401 error = missing token [OK]
Hint: Check token variable set before second request [OK]
Common Mistakes:
  • Blaming URL without checking auth token
  • Thinking collection runner affects token passing
  • Ignoring first request response content
5. You want to test a multi-step user signup and login flow in Postman using chaining. Which approach best simulates this real workflow?
hard
A. Use only the login request with hardcoded credentials.
B. Run signup and login requests separately without sharing data.
C. Chain requests where signup saves user ID, then login uses that ID to authenticate.
D. Run signup request multiple times without login.

Solution

  1. Step 1: Understand multi-step flow

    User signup creates a user ID needed for login authentication.
  2. Step 2: Apply chaining to pass data

    Chaining saves user ID from signup response and uses it in login request to simulate real user flow.
  3. Final Answer:

    Chain requests where signup saves user ID, then login uses that ID to authenticate. -> Option C
  4. Quick Check:

    Chaining passes data to simulate workflow [OK]
Hint: Pass data stepwise to mimic user actions [OK]
Common Mistakes:
  • Testing requests independently without data sharing
  • Using hardcoded data ignoring dynamic flow
  • Skipping login after signup