Skip to content

Suites

A suite is an ordered list of requests. The Testing tab in the sidebar.

The point is chaining: a value captured in one step is spent by the next.

Building one

Create a suite, then + Add step and pick a saved request. Steps run in order, and can be disabled without being deleted.

Nothing is copied — a step is a reference to the request, so editing the request changes the suite.

Passing values along

There is no special mechanism. Step one stores something:

js
sw.environment.set("token", sw.response.json().data.token)

Step two uses it, in a header, the URL, or the body:

Authorization: Bearer {{token}}

Cookies are shared across the run too, so a login step counts for the requests after it.

Running

Run executes the steps in order. Each row shows its status, duration and assertions, and the run is kept in the history below with the same detail — so "it passed yesterday" is a thing you can check rather than remember.

Assertions

Anything written with sw.test in a step's post-response script. See writing scripts.

There is also a Response schema field per request: paste a JSON Schema and every response is checked against it, with failures appearing as tests. No script needed for the common case of "the shape must not change".

In CI

sh
sendwire run "Checkout flow" --env staging --reporter junit --out results.xml

Non-zero exit when any step or assertion fails, so it gates a build. See the command line.

Exporting

Export as script produces a standalone Node file that needs no Sendwire installed. Your scripts are carried across verbatim — it runs the same JavaScript against the same sw API, rather than trying to reconstruct your intent. See code generation.

Load

Every suite has a Load sub-tab. Same steps, put under concurrency — see load testing.

No account. No cloud. No telemetry.