
AI-in-the-loop visual testing
OpenFactory drives a real browser on a real VM, checks each result by sight, and records a run you can scrub step by step. Describe a test in a sentence — or paste a URL and watch one run right now.
OpenFactory App Testing is AI-in-the-loop visual testing: describe a workflow in plain language and the platform opens your app on a real machine, drives it by sight, checks each result with image recognition, signs in with a one-time code when it has to, and hands you a video of the whole run with a marker on every step.
Paste any public URL. We'll spin up a real browser on a real VM, drive it by sight, and record the run — no signup, no install. Runs as a guest.
Demo tests run a no-credentials smoke check (load + visual baseline + stability). For sign-in flows, 2FA, click/type steps and saved suites, open the console.
Every step runs a tight loop: capture the screen, decide what to do, do it, then look again to confirm. The test reacts to what's actually on screen, not to a script frozen in time.
No CSS selectors, no brittle DOM paths. Rename a class or swap a component library and the test still works, because it looks at the page the way a person does.
Firefox on a vanilla Ubuntu tester VM — no headless simulators, no mocks. Your app runs at its real URL and the tester sees exactly what your users see.
Here's a real sign-in smoke test for the OpenFactory console — a scenario named console-login-smoke. Each step is written in plain English; the tester resolves every target visually as it goes.
Result: 8/8 passed in ~18s, with a scrubbable video and a shareable report. The next run replays the learned steps in a fraction of the time — tests get faster, not slower.
No selectors, no pixel coordinates — every step is described in plain language and grounded on screen for you.
open_urlNavigate to a URL and confirm the page loaded.
clickClick an element described in plain language.
typeType into a field; supports ${secrets} and variables.
keyPress a key — Enter, Tab, Escape, Shift+Tab…
waitPause, or wait until an element appears.
assert_textCheck that text is visible on screen (OCR).
assert_visualPerceptual-hash baseline — catch layout & render drift.
assert_stableSoak a region over time for flicker or disappearance.
dragDrag-and-drop by pixel offset or onto another element.
email_otpFetch a one-time code from email and type it in.
Confirm a phrase is on screen — survives restyles and DOM churn.
Assert semantic states like “the Sign In button is visible.”
Catch subtle layout drift a text check would miss.
Detect flicker and disappearance over 1–120 seconds.
First run learns each step; later runs replay from cache up to 10× faster, re-learning only what changed.
Per-step screenshots, a recorded MP4 with a seek marker on every step, and a shareable HTML report.
Re-run everything, a project, or one app on a fleet of isolated tester VMs — with live pass/fail progress.
Encrypted passwords, TOTP seeds, and email one-time codes — fetched fresh at run time, never stored in the test.
Organize tests in a tree with a run-history strip so you can spot solid, broken, and flaky at a glance.
Drive it from the dashboard, the openfactory CLI, or AI agents via the MCP tools.
*.apps.openfactory.tech URL.Traditional UI tests bind to CSS selectors and DOM structure, so they break when markup changes even though users see nothing wrong. OpenFactory tests by sight: it looks at the screen, decides what to do, acts, and looks again to confirm. That makes tests robust to restyles and lets you write one by simply describing it.
No. Paste a public URL into the box above and a real Firefox browser on a real tester VM will load it, capture a visual baseline, and check the page stays stable — then hand you a recorded report. It runs as a guest, no signup required.
Anywhere reachable: an app you deployed on OpenFactory (a stable *.apps.openfactory.tech URL), your own self-hosted dev server, or any publicly hosted site on Vercel, AWS, Netlify, and the like.
Yes. Saved scenarios support encrypted passwords, time-based (TOTP) codes, and email one-time codes fetched at run time — so end-to-end sign-in flows work without ever putting a credential in the test definition. Those richer flows run from the console.
Why testing by sight beats selector-bound test suites.
Re-run a whole suite on a fleet of isolated tester VMs.
Deploy on OpenFactory, then test the live URL immediately.
Build the bootable stack your app runs on.
Use OpenFactory to turn the same requirements into a bootable, testable Linux system.