Automating API Tests with Collection Runner and Newman
Collection Runner, data-driven testing, CSV data files, Newman CLI, Newman installation, CI/CD integration, GitHub Actions, test reports
Automating API Tests with Collection Runner and Newman
Automating your API test suite is where Postman evolves from a testing tool into a continuous quality assurance platform. The Collection Runner executes your entire collection in sequence, and Newman — Postman's command-line companion — integrates those same tests into your CI/CD pipeline. This is the foundation of automated REST API testing at scale.
Collection Runner
The Collection Runner runs all requests in a collection automatically, in order, and reports results for every test assertion:
Click the Run button (triangle icon) next to your collection name in the sidebar.
Select which folders and requests to include.
Choose the environment to run against.
Set the number of Iterations (how many times to run the entire collection).
Set a Delay between requests in milliseconds — important for rate-limited APIs.
Click Run [Collection Name].
The runner shows each request in real time with green (pass) and red (fail) indicators for every test assertion. A summary at the end shows total pass/fail counts.
Data-Driven Testing with CSV and JSON Files
The Collection Runner supports running the same requests with different input data from a CSV or JSON file. This is powerful for testing an API with many different user inputs:
// users.csv:
username,email,role
alice,alice@test.com,admin
bob,bob@test.com,user
carol,carol@test.com,editorIn the request body, reference CSV columns as variables: {{username}}, {{email}}, {{role}}. The Collection Runner runs one iteration per row, with each iteration using the corresponding row's values.
Newman — Running Collections from the Command Line
Newman is the command-line interface for running Postman collections outside of the Postman app. Install it with npm:
npm install -g newmanRun a collection:
# Run with an environment file
newman run MyCollection.json -e Development.json
# Run with a data file
newman run MyCollection.json -e Production.json -d users.csv
# Generate an HTML report
newman run MyCollection.json -e Staging.json --reporters html --reporter-html-export report.htmlIntegrating Newman into CI/CD
Add Newman to your GitHub Actions workflow to run API tests on every push:
name: API Tests
on: [push, pull_request]
jobs:
api-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Newman
run: npm install -g newman
- name: Run API Tests
run: |
newman run postman/collection.json -e postman/staging-env.json --reporters cli,junit --reporter-junit-export results.xml
- name: Publish Results
uses: actions/upload-artifact@v3
with:
name: test-results
path: results.xmlInterpreting Runner Results
Green check: All test assertions in that request passed.
Red X: One or more assertions failed — click to see which ones.
Failed requests: Network errors or server errors — check the console for details.
Iteration failures: If one request fails, subsequent requests in the same iteration still run (unless you stop on error).
Key Takeaways
Collection Runner executes your entire test suite in sequence with full pass/fail reporting.
Use CSV/JSON data files for data-driven testing — one iteration per data row.
Newman runs collections from the command line — essential for CI/CD integration.
Export collections and environments as JSON files to version-control them alongside your source code.
