/ SONDA · BUILD

Three languages for scripts. None for checks.

A pre-request or post-response script in JavaScript, Go or Python, with the same sonda API in all three and real IntelliSense in the editor. And for the ninety percent of tests that are "the status is 200 and the body has an id", a check is a sentence you pick from three menus — no code at all.

JAVASCRIPT · GO · PYTHON 10 SUBJECTS × 25 OPERATORS JSON SCHEMA 309 SNIPPETS

At a glance

WhereScripts on the project, a folder and the request, run in that order; each can pick its own language.
APIsonda.environment, globals, projectVariables, variables, request, response, info, iterationData, expect, test, sendRequest, setNextRequest, skipRequest, hash, hmac, uuid, base64, console.
EditorMonaco with TypeScript IntelliSense for sonda.* and the snippets panel: 123 JavaScript, 94 Go, 92 Python.
Limits10 seconds per script; a sendRequest restarts the clock. Go is a standard-library allow-list: no files, no processes, no network.
ThemisWrites a request's script into the editor, or the checks from the last answer.
/ CHECKS

Tests that read as sentences.

Subject, operator, value. The runner, the flows and the load test all read them, and a failing one brings the Tests tab forward on its own.

Ten subjects

Status, time, size, redirects, content type, a header, a cookie, the body, a JSON path in it, and the spec — "the answer matches the spec" validates against the project's OpenAPI document.

Twenty-five operators

Equals and not, contains, starts and ends with, matches, one of, greater and less, between, exists, empty, null, is type, length and its bounds, is a date, matches a JSON Schema.

Inherited

Checks on a folder or a project run on every answer under them, before the post script. Draft a JSON Schema from an answer in one click. Re-read a check without sending again. See the rows as code in any of the three languages.

/ COMING FROM SOMEWHERE ELSE

Your Postman scripts come across.

The scripting object is sonda, and the importer knows what yours was.

Postman

On import, pm. becomes sonda.; the legacy postman.* calls and tests[...] lines are converted. On export to Postman the reverse is done.

Bruno

A compatibility layer for bru, req, res and test(). Bruno folders import with their scripts, tests as checks, and docs.

require()

Shims over sonda for the usual suspects: lodash, uuid, nanoid, crypto-js hashes and HMAC, dayjs, moment, date-fns, axios, chai, buffer.

/ LOCKFLARE SONDA

Scripts and checks, in the free edition.

Checks and the runner, listed →