What it is
Collection Runner executes all HTTP requests saved in a collection, one after another, in sidebar sort order. It is Ripple's answer to Postman and Insomnia collection runners — smoke-test or regression-test an entire API workflow without clicking Send on each request.
WebSocket, SSE, gRPC, and Socket.IO requests are skipped. Use Request Chains or manual tabs for stream protocols. For CI, use rip run collection.
- Runs requests in sort_order (same order as drag-and-drop in the sidebar)
- Supports iterations — repeat the full collection N times
- Supports CSV/JSON data files for parameterized runs
- Resolves {{variables}} from global, collection, environment, and data-file scopes
- Applies auth and collection cookie jar on each request
- Live results panel with pass/fail/skip counts, status codes, timing
- Progress logged to the Console tab
Collection Runner vs Request Chains vs Load Test
| Feature | Collection Runner | Request Chains | Load Test Lab |
|---|---|---|---|
| Purpose | Run all requests in a collection | Hand-picked sequence with extractions | Stress / throughput testing |
| Order | Sidebar sort_order | Step list order | Chain or per-endpoint mode |
| Iterations | Yes (simple count) | No (single pass) | Yes (duration, concurrency, RPS) |
| Data file | Yes (CSV/JSON per iteration) | No | Yes (CSV/JSON per VU iteration) |
| Stop on error | No — continues | Yes — skips remaining steps | Configurable |
| JSON-path → variable | No | Yes | Yes (chain mode) |
How to open it
- Open the Collections sidebar (Ctrl+Shift+C if collapsed)
- Find the collection you want to run
- Click the ▶ button on the collection row (between Export and Load Test ⚡)
Basic run
- Click ▶ on a collection — review the Requests list (non-HTTP methods appear dimmed)
- Leave Iterations at 1 and Data file empty for a single pass
- Click ▶ Run Collection and choose an environment (or No Environment)
- Total HTTP calls = runnable requests × iterations
Multiple iterations
Repeat the same collection N times (1–9999). Each iteration starts fresh with the same collection/environment/global variables. Cookies carry over within a run because the cookie jar updates after each response.
Example: 4 requests × 3 iterations = 12 calls.
Data files (CSV / JSON)
Supply per-iteration variable values from a CSV or JSON file without editing requests.
CSV example
email,role
alice@example.com,admin
bob@example.com,userUse in request body
{ "email": "{{email}}", "role": "{{role}}" }CSV format
- First row = header (column names become variable names)
- One data row per line; quoted fields supported
- Example columns: email, role
JSON format
- Must be a JSON array of objects
- Each object's keys become variable names; values coerced to strings
Row mapping
- Iteration 1 → data row 1, iteration 2 → row 2, etc.
- If iterations > row count, rows cycle
- Loading a file sets iterations to row count when iterations was 1 — adjust manually if needed
Reading results
Pass/fail is based on HTTP status (< 400 = pass). pm.test() scripts on tabs are not run in the collection runner yet — use rip with declarative assertions for CI.
Summary bar
- ✓ / ✗ / ⟳ — all passed / any failed / still running
- N passed — HTTP status < 400
- N failed — HTTP status ≥ 400 or network error
- N skipped — WS / SSE / gRPC
Per-request cards
- Iter N, method, name, status code, response time
- Resolved URL after variable interpolation
- ▶ Response — expand Body or Headers
Console logs
- [Collection Runner] Iteration 1: using data row 1 (email, role)
- [Collection Runner] GET Health Check — 200 (42ms)
Variable resolution
For each iteration, variables resolve in this order (later overrides earlier):
- Global variables (Ctrl+Shift+Y)
- Collection variables (sidebar Variables section)
- Environment variables (active environment from the run dialog)
- Data file row (iteration-specific)
- Dynamic variables ({{$guid}}, {{$timestamp}}, etc.) at send time
Supported HTTP methods
- Runnable: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD, and other standard HTTP methods
- Skipped: WS, WSS, SSE, GRPC — shown as skipped in results
- Auth, cookies, multipart, and OAuth refresh use the same path as manual sends
Example workflows
Smoke-test an API collection
- Save GET /health, GET /users, POST /users with Bearer auth
- Set baseUrl in collection or environment
- Run once, 1 iteration, no data file
Login → authenticated calls (cookie-based)
- POST /login returns Set-Cookie; following GET /me and GET /orders use cookie jar automatically
Bulk create users from CSV
- POST /users with body referencing {{email}} and {{name}}
- Attach users.csv — iterations match row count
Troubleshooting
| Problem | What to check |
|---|---|
| ▶ Run Collection disabled | Collection has no runnable HTTP requests |
| 0 passed, all skipped | Collection only has WS/SSE/gRPC requests |
| Variables not substituted | Name mismatch (case-sensitive); active environment; data file column names |
| 401 on all requests after first | Auth not on saved request; token env var missing |
| Data file parse error | CSV: header row required; JSON: must be [{...}, {...}] |
| Cookies not sent | Cookie domain/path must match URL; inspect Cookie Jar panel |
| Request order wrong | Re-drag requests in sidebar |