Bird
Raised Fist0
Postmantesting~8 mins

Iteration count 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 - Iteration count
Folder Structure for Postman Test Collections
PostmanProject/
├── collections/
│   ├── UserAPI.postman_collection.json
│   ├── ProductAPI.postman_collection.json
│   └── OrderAPI.postman_collection.json
├── environments/
│   ├── Development.postman_environment.json
│   ├── Staging.postman_environment.json
│   └── Production.postman_environment.json
├── scripts/
│   ├── pre-request-scripts.js
│   └── test-scripts.js
├── reports/
│   └── latest-report.html
├── newman-config.json
└── README.md
Test Framework Layers in Postman
  • Collections: Group of API requests organized by feature or service. Each request can have tests and pre-request scripts.
  • Environments: Variables for different deployment stages (dev, staging, prod) to run tests with different settings.
  • Scripts: JavaScript code for pre-request setup and test assertions. Controls iteration count using Newman CLI or Postman Runner.
  • Reports: Output from test runs, often generated by Newman for CI/CD integration.
  • Configuration: Files like newman-config.json to define iteration count, environment, and other run options.
Configuration Patterns for Iteration Count

In Postman, iteration count controls how many times a collection runs. You configure it in:

  • Postman Runner UI: Set the number of iterations before running the collection.
  • Newman CLI: Use the --iteration-count option to specify how many times to run the collection.
  • newman-config.json: Store iteration count and other options for repeatable runs in CI/CD.

Example Newman command:

newman run collections/UserAPI.postman_collection.json --environment environments/Development.postman_environment.json --iteration-count 5
Test Reporting and CI/CD Integration

Postman tests run via Newman can generate reports for each iteration:

  • HTML or JSON reports: Use Newman reporters like html or json to capture detailed results per iteration.
  • CI/CD pipelines: Integrate Newman commands with iteration count in pipelines (GitHub Actions, Jenkins) to automate repeated test runs.
  • Fail fast: Configure Newman to stop on failure or continue all iterations for full coverage.
Best Practices for Iteration Count in Postman Frameworks
  • Use environment variables: Control iteration count dynamically by setting variables in environment or config files.
  • Data-driven testing: Combine iteration count with data files (CSV/JSON) to run tests with different input sets.
  • Clear state each iteration: Reset variables or clean up to avoid test interference between iterations.
  • Limit iteration count: Avoid unnecessarily high counts to save time and resources.
  • Use descriptive reports: Ensure reports show iteration number to trace failures easily.
Self Check Question

Where in this Postman framework structure would you specify the iteration count to run a collection 10 times in a CI/CD pipeline?

Key Result
Use iteration count in Newman CLI or Postman Runner to repeat API tests multiple times for data-driven or repeated validation.

Practice

(1/5)
1. What does the iterationCount setting in Postman control?
easy
A. The number of requests in a collection
B. The number of times a collection or request runs automatically
C. The number of tests inside a single request
D. The number of environments available

Solution

  1. Step 1: Understand the role of iterationCount

    The iterationCount defines how many times Postman runs the entire collection or request automatically.
  2. Step 2: Differentiate from other counts

    It is not about the number of requests or tests, but how many times the run repeats.
  3. Final Answer:

    The number of times a collection or request runs automatically -> Option B
  4. Quick Check:

    iterationCount = run times [OK]
Hint: iterationCount means how many times to run tests [OK]
Common Mistakes:
  • Confusing iterationCount with number of requests
  • Thinking iterationCount counts tests inside a request
  • Mixing iterationCount with environment count
2. Which of the following is the correct way to set iteration count to 5 in Postman Collection Runner?
easy
A. Set iterationCount = 5 in the pre-request script
B. Set environment variable iterationCount to 5
C. Add pm.iterationCount = 5 in the test script
D. Enter 5 in the 'Iterations' field of the Collection Runner UI

Solution

  1. Step 1: Identify how to set iteration count in Postman UI

    The Collection Runner has an 'Iterations' input field where you specify how many times to run.
  2. Step 2: Understand script limitations

    Setting iterationCount in scripts or environment variables does not control the runner's iteration count.
  3. Final Answer:

    Enter 5 in the 'Iterations' field of the Collection Runner UI -> Option D
  4. Quick Check:

    Use Collection Runner UI to set iterations [OK]
Hint: Set iterations number in Collection Runner UI field [OK]
Common Mistakes:
  • Trying to set iterationCount in scripts
  • Confusing environment variables with runner settings
  • Assuming iterationCount is a pm API property
3. Consider this test script in Postman run with iterationCount = 3:
console.log(pm.info.iteration);
pm.test('Check iteration', () => {
  pm.expect(pm.info.iteration).to.be.below(3);
});

What will be the console output and test result for each iteration?
medium
A. Console logs 0,1,2; last test fails
B. Console logs 1,2,3; last test fails
C. Console logs 0,1,2; all tests pass
D. Console logs 1,2,3; all tests pass

Solution

  1. Step 1: Understand pm.info.iteration values

    Iteration count starts at 0, so for 3 iterations, values are 0, 1, 2.
  2. Step 2: Check test condition pm.expect(pm.info.iteration).to.be.below(3)

    All iteration values (0,1,2) are less than 3, so all tests pass.
  3. Final Answer:

    Console logs 0,1,2; all tests pass -> Option C
  4. Quick Check:

    Iteration index starts at 0 and is below count [OK]
Hint: Iteration index starts at 0, less than iterationCount [OK]
Common Mistakes:
  • Assuming iteration starts at 1
  • Expecting iteration to equal iterationCount
  • Confusing iterationCount with max iteration index
4. You wrote this pre-request script to stop running after 3 iterations:
if (pm.info.iterationCount > 3) {
  postman.setNextRequest(null);
}

Why does the collection keep running beyond 3 iterations?
medium
A. pm.info.iterationCount is total iterations, not current iteration index
B. postman.setNextRequest(null) does not stop iterations
C. pm.info.iterationCount is read-only and cannot be used in conditions
D. The script syntax is incorrect and causes error

Solution

  1. Step 1: Understand pm.info.iterationCount meaning

    pm.info.iterationCount is the total number of iterations set, not the current iteration number.
  2. Step 2: Identify correct property for current iteration

    The current iteration index is pm.info.iteration, which starts at 0.
  3. Final Answer:

    pm.info.iterationCount is total iterations, not current iteration index -> Option A
  4. Quick Check:

    Use pm.info.iteration to check current iteration [OK]
Hint: Use pm.info.iteration for current run, not iterationCount [OK]
Common Mistakes:
  • Confusing iterationCount with iteration index
  • Expecting setNextRequest(null) to stop all iterations
  • Using wrong property names in conditions
5. You want to run a Postman collection 4 times, but skip iteration 2 (zero-based). Which script in the pre-request script will achieve this?
hard
A. if (pm.info.iteration === 2) { postman.setNextRequest(null); }
B. if (pm.info.iteration === 2) { postman.setNextRequest(pm.info.requestName); }
C. if (pm.info.iteration === 2) { postman.setNextRequest('Request1'); }
D. if (pm.info.iteration === 2) { postman.setNextRequest('Request3'); }

Solution

  1. Step 1: Identify how to skip an iteration

    To skip iteration 2, we stop the run at that iteration by setting next request to null.
  2. Step 2: Use correct condition and method

    Check if current iteration is 2, then call postman.setNextRequest(null) to stop further requests in that iteration.
  3. Final Answer:

    if (pm.info.iteration === 2) { postman.setNextRequest(null); } -> Option A
  4. Quick Check:

    Set next request null to skip iteration [OK]
Hint: Use setNextRequest(null) on iteration to skip it [OK]
Common Mistakes:
  • Setting next request to current or wrong request name
  • Confusing iteration index with iterationCount
  • Not stopping requests properly to skip iteration