Skip to main content
Trq

Record & Replay Browser Tests

Trq (pronounced β€œtorque”) β€” an IDE-style desktop app for browser tests. Perform the flow once; Trq records and replays it deterministically. No code, no setup, no flakiness.

Trq in action: create a session, record a flow, capture events, replay with all checks passing, then inspect the Network, Summary, and Timeline panels
βœ“No code to write or maintain
βœ“Selectors that fall back & self-heal
βœ“Deterministic, isolated runs
βœ“Record, API & mocks in one app

A full testing studio β€” not a recorder bolted on

Record, run, debug, and trust browser tests β€” record-first, with the engine to make them hold up.

Record, don’t script

Perform the flow once in a real, bundled Chromium. Trq captures every click, keystroke, upload, navigation, and assertion β€” zero test code to write or maintain.

Selectors that self-heal

Every element is saved as a ranked ladder of selectors. Replay falls back automatically, and a failed step re-scores the live DOM so you fix it in a click.

Deterministic replay

Every run clears cookies, storage, and caches, then replays from step 1 β€” no leftover state, no flake, the same result on every machine.

Assertions & captures

Pick an element to assert text, value, or visibility β€” or capture a value into {{var.NAME}} and reuse it in later steps.

Reusable building blocks

Call one .trq from another, branch a shared prefix, resume to extend, or insert steps mid-flow β€” grow a suite without re-recording.

API requests built in

Call an HTTP endpoint mid-flow (Postman-style builder + Import cURL), extract response values, then drive the URL it returns.

Network mocking

Snapshot API responses while recording and serve them back on replay β€” fast, offline-capable runs. Edit any response to test error states.

Debug & share

Step through a replay with a selector inspector, then export the whole run β€” screenshots, console, network β€” as one self-contained HTML file.

Trq selector ladder: ranked selectors graded stable, brittle, or dynamic with automatic fallback

Selectors that survive redesigns

Brittle selectors are why recorded tests rot. Trq is built so a class rename or a re-ordered DOM doesn’t take your suite down with it.

  • A ranked ladder, not one guessMost tools pin a step to a single selector β€” when the markup shifts, it breaks. Trq records eight ranked rungs (accessible name, test-ids, visible text, semantic class, scoped CSS, XPath) and resolves the first confident match, falling back as needed.
  • Framework-awareAngular (_ngcontent, ng-*), Material/CDK, React useId (:r…:), and hashed CSS-module classes are filtered out β€” semantic BEM names are kept.
  • Fragility you can seeThe Inspector grades every rung stable / brittle / dynamic, so you spot fragile selectors before they bite.
  • Self-heal on failureWhen a step can’t resolve, Trq re-scores candidates from the live DOM and β€œPick from page” captures fresh selectors in one click.
Trq composable flows: a reusable login.trq called by checkout, profile, and settings tests

Build tests you don’t rewrite

Tests share setup β€” login, navigate, seed data. Trq lets you record those once and reuse them, so maintenance stays linear as your suite grows.

  • Composable flowsCall one .trq from another (nested), so a login or setup flow lives in exactly one place β€” fix it once, every caller updates.
  • Branch, resume, insertFork a shared prefix into a new test, extend from the end, or record new steps in the middle β€” without re-recording the whole flow.
  • Values that flowCapture from the page or extract from an API response into {{var.NAME}}, then reuse it downstream; {{uuid}} & friends generate once per run.
  • Reusable setupViewport, locale, geolocation, fake camera/mic, permissions, and headers are saved per session and applied on every run.
Trq assert and capture: assert text with exact/contains/regex match modes, and capture a value into a variable

Assert and capture, by pointing

Check what matters and pull out the values you need β€” all by clicking elements on the page, no selectors to hand-write.

  • Assert what you can seePick an element and check it’s visible, or that its text or value matches β€” no selector hunting, and it works inside same-origin iframes.
  • Three match modesCompare exact, contains, or regex; {{templates}} resolve before the check, so assertions can reference captured values.
  • Capture into variablesRead an element’s text, an input’s value, or any attribute into {{var.NAME}} β€” with an optional regex to pull just the part you want.
  • Always currentOnly the instruction is saved (selector + kind), never the value β€” so it reflects each run’s real data.
Trq API request builder: method, URL, Send, JSON body, response, and extract into variables

A full API client, inside your test

Set up data, read hidden values, or start from a URL the backend returns β€” without leaving the flow.

  • Talk to your API mid-flowRuns server-side (Node fetch) β€” no CORS β€” and it can fire before any page loads, e.g. to fetch the URL you then navigate to.
  • Postman-style builderMethod, URL, query params, headers, and a JSON body β€” all {{templated}}. Send to try it live and see status, time, and size.
  • Import cURLPaste a DevTools or Postman β€œCopy as cURL” and the whole request β€” method, URL, params, headers, body β€” fills in automatically.
  • Extract β†’ variablesPull values by JSON dot-path (data.user.id) or /regex/ into {{var.NAME}}; fail-on-error stops a broken setup loudly.
Trq network mock: recorded API responses served back on replay, one edited to a 500

Mock the network, deterministically

Make replays fast and repeatable β€” and exercise error paths you can’t trigger on demand β€” by serving recorded responses.

  • Record once, serve backSnapshot API responses while recording; replay serves them instead of hitting the backend β€” fast, offline-capable, deterministic runs.
  • Ordered matchingMatched by method + URL in the order recorded, so a single gateway called many times replays the right response each time.
  • Edit any responseChange the body, status, or headers β€” flip a 200 to a 500 β€” to test error and edge states without touching the backend.
  • Hybrid by designOnly API calls are mocked; static assets load live and unmatched requests pass through to the real network.
Trq results after a replay: Events log, Network panel, Summary, and Timeline

Inspect every run

After each replay the bottom panel fills with everything you need to understand β€” and debug β€” what happened.

  • EventsEvery step with pass/fail and per-step timing. Double-click to edit a step, reorder its selector ladder, or re-pick an element from the live page.
  • NetworkA familiar request list β€” filter by request type and search URLs, then open any request to inspect its headers, payload, response, and timing.
  • SummaryPass/fail counts, total duration, the slowest step, and the failure screenshot if the run stopped β€” the at-a-glance health of the run.
  • TimelineA scrubber over time-scaled step bars with a thumbnail of the page at each step β€” hover to preview, click to jump straight to that moment.

Stop scripting tests. Start recording them.

Free, in early access. Universal macOS build β€” Apple Silicon & Intel.