Ripple
All guides

Collection Runner

Run every saved HTTP request in a collection in sidebar sort order — with optional iterations and CSV/JSON data files for parameterized runs.

Desktop UI · Same engine as rip run collection for headless CI

Jump to section

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

FeatureCollection RunnerRequest ChainsLoad Test Lab
PurposeRun all requests in a collectionHand-picked sequence with extractionsStress / throughput testing
OrderSidebar sort_orderStep list orderChain or per-endpoint mode
IterationsYes (simple count)No (single pass)Yes (duration, concurrency, RPS)
Data fileYes (CSV/JSON per iteration)NoYes (CSV/JSON per VU iteration)
Stop on errorNo — continuesYes — skips remaining stepsConfigurable
JSON-path → variableNoYesYes (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,user

Use 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

ProblemWhat to check
▶ Run Collection disabledCollection has no runnable HTTP requests
0 passed, all skippedCollection only has WS/SSE/gRPC requests
Variables not substitutedName mismatch (case-sensitive); active environment; data file column names
401 on all requests after firstAuth not on saved request; token env var missing
Data file parse errorCSV: header row required; JSON: must be [{...}, {...}]
Cookies not sentCookie domain/path must match URL; inspect Cookie Jar panel
Request order wrongRe-drag requests in sidebar