AI-NATIVE TEST AUTOMATION

Write a test in plain English.
Run it on any website.

QAlchemy reads your BDD scenario, uses an LLM to find its own way through the page, and heals its own locators when the DOM changes — so a moved button doesn't break your whole suite.

Watch it think ↓
LIVE
● using huggingface tokens 0 cache hits 0
0
CSS selectors written by hand
100%
of broken locators self-healed, not failed
1
BDD file per suite, any site

How it works

Three steps. No brittle CSS selectors to maintain.

01

Write plain-English BDD

Given/When/Then, like you always have. No selectors, no page objects, no framework-specific glue code.

Given the user opens the store
When the user searches for "backpack"
Then the search results should be visible
02

The LLM finds its own way

Each step is planned and located against a live snapshot of the actual page — the same step works whether it's Zomato, saucedemo, or your own app.

{"action": "fill",
 "selector": "css=[data-test='search']",
 "value": "backpack"}
03

It heals when the page changes

If a selector stops matching, QAlchemy re-resolves it from the live DOM and updates its cache — instead of failing the whole suite.

strategy: healed
via: huggingface (Qwen3-4B)
cached for next run ✓
Built on
Playwrightpytest-bddOpenRouterHugging FaceChromium CDP

Built for tests that don't rot

Everything you need to stop babysitting brittle selectors.

🩹

Self-healing locators

Primary selectors first, LLM fallback only when they miss — and it remembers what worked, so the fix sticks for every future run.

📹

Live browser view

Watch the run happen inside the page in real time, streamed straight from a headless Chromium session.

🌐

Works on any site

No per-site step files — the same generic engine plans and locates against whatever page you point it at.

🔀

Dual LLM fallback

OpenRouter first, automatic Hugging Face fallback on rate limits, with retries baked in.

Smart step caching

Repeated step shapes hit a persistent cache instead of the LLM — a 1,000-step suite doesn't mean 1,000 calls.

📊

Full BDD gap reports

Every ambiguous step the agent had to assume something about is flagged for a human to tighten up.

Simple pricing

Free
$0/mo

For trying it out

  • ✓ 1 scenario at a time
  • ✓ Community LLM rate limits
  • ✓ Live browser view
  • ✓ Local step cache
Most popular
Hobby
$15/mo

For real test suites

  • ✓ Unlimited scenarios
  • ✓ Bring your own LLM key
  • ✓ Priority self-healing
  • ✓ Full BDD gap reports
Corporate
$99/mo

For QA teams at scale

  • ✓ Everything in Hobby
  • ✓ Higher concurrency
  • ✓ Shared step cache
  • ✓ Priority support
Enterprise
Custom

For large orgs with custom needs

  • ✓ Everything in Corporate
  • ✓ SSO & audit log
  • ✓ Custom contract & SLA
  • ✓ Dedicated support

Questions

No. Describe the step in plain English (or Gherkin/BDD) and the LLM figures out what to click, fill, or assert against a live snapshot of the actual page.

Stop maintaining selectors. Start describing behavior.