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.

A suite run: pass/fail per step and per assertion, with a timing share

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.

Local-first. No account. No cloud. Telemetry off by default.