Bird
Raised Fist0
Postmantesting~15 mins

Monitor regions in Postman - Build an Automation Script

Choose your learning style10 modes available
Verify Postman Monitor runs successfully in specified regions
Preconditions (2)
Step 1: Log in to Postman web dashboard
Step 2: Navigate to the Monitors section
Step 3: Create a new monitor for the given collection
Step 4: Select multiple regions (e.g., US East, Europe, Asia) for the monitor to run
Step 5: Save and start the monitor
Step 6: Wait for the monitor to complete at least one run
Step 7: Open the monitor run results
Step 8: Verify that the monitor ran successfully in all selected regions
✅ Expected Result: The monitor runs successfully in all selected regions and the run results show status 'Passed' for each region.
Automation Requirements - Postman API with Newman and Node.js
Assertions Needed:
Verify monitor creation response status is 201
Verify monitor run status is 'completed'
Verify each selected region has a successful run status
Verify no errors in monitor run results
Best Practices:
Use Postman API to create and manage monitors programmatically
Use Newman to run collections locally for validation
Use explicit checks on API responses and run results
Handle asynchronous waits for monitor run completion
Use environment variables for region names and monitor IDs
Automated Solution
Postman
import fetch from 'node-fetch';

const API_KEY = process.env.POSTMAN_API_KEY;
const COLLECTION_UID = process.env.COLLECTION_UID;
const MONITOR_NAME = 'Test Monitor Regions';
const REGIONS = ['us-east-1', 'eu-west-1', 'ap-southeast-1'];

async function createMonitor() {
  const url = 'https://api.getpostman.com/monitors';
  const body = {
    monitor: {
      name: MONITOR_NAME,
      collection: {
        uid: COLLECTION_UID
      },
      environment: null,
      schedule: {
        type: 'interval',
        interval: 5,
        unit: 'minutes'
      },
      regions: REGIONS
    }
  };

  const response = await fetch(url, {
    method: 'POST',
    headers: {
      'X-Api-Key': API_KEY,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(body)
  });

  if (response.status !== 201) {
    throw new Error(`Failed to create monitor: ${response.status}`);
  }

  const data = await response.json();
  return data.monitor.id;
}

async function waitForMonitorRun(monitorId) {
  const url = `https://api.getpostman.com/monitors/${monitorId}/runs`;
  let attempts = 0;
  while (attempts < 20) {
    const response = await fetch(url, {
      headers: { 'X-Api-Key': API_KEY }
    });
    if (response.status !== 200) {
      throw new Error(`Failed to get monitor runs: ${response.status}`);
    }
    const data = await response.json();
    if (data.runs && data.runs.length > 0) {
      const latestRun = data.runs[0];
      if (latestRun.status === 'completed') {
        return latestRun;
      }
    }
    await new Promise(r => setTimeout(r, 15000));
    attempts++;
  }
  throw new Error('Monitor run did not complete in time');
}

function verifyRegions(run) {
  const runRegions = run.regions || [];
  for (const region of REGIONS) {
    const regionRun = runRegions.find(r => r.region === region);
    if (!regionRun) {
      throw new Error(`No run data for region: ${region}`);
    }
    if (regionRun.status !== 'passed') {
      throw new Error(`Region ${region} run failed with status: ${regionRun.status}`);
    }
  }
}

(async () => {
  try {
    const monitorId = await createMonitor();
    console.log(`Monitor created with ID: ${monitorId}`);

    const run = await waitForMonitorRun(monitorId);
    console.log('Monitor run completed');

    verifyRegions(run);
    console.log('All regions passed successfully');
  } catch (error) {
    console.error('Test failed:', error.message);
    process.exit(1);
  }
})();

This script uses the Postman API to create a monitor with specified regions. It sends a POST request with the monitor details including the collection UID and the regions array.

After creation, it polls the monitor runs endpoint every 15 seconds up to 5 minutes to wait for a completed run.

Once a run is completed, it verifies that each selected region has a run status of 'passed'. If any region is missing or failed, it throws an error.

This approach uses explicit waits and checks API responses carefully, following best practices for asynchronous operations and API testing.

Common Mistakes - 4 Pitfalls
Hardcoding API keys directly in the script
Not waiting for the monitor run to complete before checking results
Assuming monitor runs return region data without checking
Using synchronous waits like sleep without async handling
Bonus Challenge

Now add data-driven testing with 3 different sets of regions to verify monitor runs in multiple region combinations

Show Hint

Practice

(1/5)
1. What is the main purpose of selecting monitor regions in Postman monitors?
easy
A. To run API tests from different global locations
B. To change the API request method
C. To modify the API response format
D. To schedule tests only during business hours

Solution

  1. Step 1: Understand monitor regions concept

    Monitor regions allow running API tests from various global locations to simulate real user environments.
  2. Step 2: Identify the purpose of selecting regions

    Selecting regions helps detect location-specific issues and measure API performance worldwide.
  3. Final Answer:

    To run API tests from different global locations -> Option A
  4. Quick Check:

    Monitor regions = run tests globally [OK]
Hint: Monitor regions = testing APIs from multiple locations [OK]
Common Mistakes:
  • Confusing regions with request methods
  • Thinking regions change response format
  • Assuming regions only schedule tests
2. Which of the following is the correct way to select monitor regions in Postman?
easy
A. Edit the API request body to include region codes
B. Click on the monitor, go to Settings, then choose regions from the dropdown
C. Change the environment variables to region names
D. Add region names as headers in the API request

Solution

  1. Step 1: Locate monitor settings in Postman

    Monitor regions are set in the monitor's Settings tab, not inside requests or environments.
  2. Step 2: Select regions properly

    You choose regions from a dropdown list in the monitor settings to specify where tests run.
  3. Final Answer:

    Click on the monitor, go to Settings, then choose regions from the dropdown -> Option B
  4. Quick Check:

    Monitor regions set in Settings dropdown [OK]
Hint: Monitor regions are set in monitor Settings, not in requests [OK]
Common Mistakes:
  • Trying to set regions inside request body
  • Using environment variables for regions
  • Adding regions as headers
3. Given a Postman monitor set to run tests from regions US East, Europe West, and Asia Pacific, what is the expected benefit?
medium
A. Tests will only run once from the US East region
B. Tests will ignore API response times
C. Tests will run from all three regions to detect location-specific issues
D. Tests will run faster because regions are combined

Solution

  1. Step 1: Understand multi-region monitor execution

    When multiple regions are selected, Postman runs tests independently from each region.
  2. Step 2: Identify the benefit of multi-region testing

    This helps find issues that only appear in certain locations and measures performance differences.
  3. Final Answer:

    Tests will run from all three regions to detect location-specific issues -> Option C
  4. Quick Check:

    Multiple regions = tests run in each region [OK]
Hint: Multiple regions run tests separately to find location issues [OK]
Common Mistakes:
  • Assuming tests run only once from one region
  • Thinking regions speed up tests by combining
  • Believing response times are ignored
4. You set a Postman monitor to run from Asia Pacific and Europe West, but tests only run from Asia Pacific. What is the likely cause?
medium
A. Europe West region was not properly selected in monitor settings
B. API endpoint does not support Europe West region
C. Monitor schedule is set to run only in Asia Pacific timezone
D. Postman does not support multiple regions in one monitor

Solution

  1. Step 1: Check monitor region selection

    If tests run only from one region, likely the other region was not selected or saved correctly in settings.
  2. Step 2: Verify Postman supports multiple regions

    Postman supports multiple regions per monitor, so that is not the issue.
  3. Final Answer:

    Europe West region was not properly selected in monitor settings -> Option A
  4. Quick Check:

    Missing region selection causes tests to skip it [OK]
Hint: Verify all regions are selected and saved in monitor settings [OK]
Common Mistakes:
  • Assuming API endpoint blocks regions
  • Confusing schedule timezone with region selection
  • Believing Postman limits to one region
5. You want to monitor an API globally but notice some regions have slower response times. How can you use Postman monitor regions to improve your API?
hard
A. Change the API request method to POST in all regions
B. Run the monitor only from the fastest region to save time
C. Disable monitor regions to reduce network traffic
D. Select multiple regions in the monitor to identify slow locations and optimize accordingly

Solution

  1. Step 1: Use multiple regions to gather performance data

    Selecting multiple regions lets you see which locations have slower responses.
  2. Step 2: Analyze results to optimize API

    With this data, you can focus on improving performance in slow regions for better global user experience.
  3. Final Answer:

    Select multiple regions in the monitor to identify slow locations and optimize accordingly -> Option D
  4. Quick Check:

    Multiple regions reveal slow areas to fix [OK]
Hint: Use multiple regions to find and fix slow API locations [OK]
Common Mistakes:
  • Running monitor only from fastest region hides issues
  • Disabling regions reduces test coverage
  • Changing request method unrelated to region performance
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard