A recorded visual test running in a browser on a tester VM

Visual workflow evidence

Exercise a public workflow, then inspect the evidence

OpenFactory drives Firefox in a tester VM and records a scoped run. Visual judgments can be wrong, and guest demo artifacts are public.

Scope before you start: the guest widget accepts only publicly resolvable HTTP(S) targets and publishes its report artifacts. Submit no private URL, credential, personal data, or confidential page. A visual pass is evidence from one VM run, not proof of accessibility, security, compatibility, or production readiness.

Create a test right now

Paste a publicly resolvable HTTP(S) URL. The guest demo runs a bounded smoke check in Firefox and records a public report. Do not submit private URLs, credentials, personal data, or confidential pages.

Guest artifacts are public. The demo opens the page, attempts the optional check, and records a visual baseline plus an eight-second stability sample, not a security, accessibility, or production certification. For private reports, sign-in flows, 2FA, multi-step suites, and saved tests, open the console.

How it works

Perceive → Reason → Act

Agentic goal steps can capture the screen, choose an action, and inspect the result. That loop is probabilistic: preserve evidence and pair it with exact assertions where correctness matters.

Visual actions plus exact backstops

Visible intent can reduce hand-authored selectors, but it can click the wrong target or misread a state. Keep DOM, API, accessibility, security, and data-integrity tests for deterministic contracts.

Real browsers on real VMs

Firefox runs in an Ubuntu tester VM against the submitted route. That is one browser, viewport, network path, and environment, not a substitute for a browser/device matrix or user research.

A demo test for OpenFactory

Here's an illustrative saved sign-in scenario for the OpenFactory console named console-login-smoke. Each step is written in plain English; the tester resolves every target visually as it goes.

  1. Open the OpenFactory console sign-in page
  2. Type the test email into the email field
  3. Resolve a test-account password from the platform key store
  4. Click the Sign In button
  5. Fetch the one-time 2FA code from email and enter it
  6. Assert the “Test Panel” dashboard is visible
  7. Capture a visual baseline for a later comparison within a defined threshold
  8. Confirm the dashboard stays stable for 10s (no flicker, nothing vanishes)

Expected evidence: a status for each defined step plus screenshots and, when enabled, video. Record actual timing and results per run; cache reuse and a prior pass do not guarantee the next result.

Supported scenario steps

Scenario steps mix natural-language targets with explicit actions and thresholds. Drag operations may use offsets; visual grounding and OCR can be wrong, so use exact application assertions where possible.

open_url

Navigate to a URL and confirm the page loaded.

click

Click an element described in plain language.

type

Type into a field; supports ${secrets} and variables.

key

Press a key: Enter, Tab, Escape, Shift+Tab…

wait

Pause, or wait until an element appears.

assert_text

Check that text is visible on screen (OCR).

assert_visual

Perceptual-hash baseline to catch layout & render drift.

assert_stable

Soak a region over time for flicker or disappearance.

drag

Drag-and-drop by pixel offset or onto another element.

email_otp

Fetch a one-time code from email and type it in.

Four ways to assert

Text match

Confirm a phrase is on screen. The check survives restyles and DOM churn.

Image recognition

Evaluate semantic states, while allowing for false positives and false negatives.

Perceptual-hash regression

Detect image-distance changes within a configured threshold; review whether each change matters.

Temporal stability

Sample flicker or disappearance over 1–120 seconds; it does not prove long-term stability.

Built for a real test loop

Resolved-element replay

Saved scenarios can reuse cached targets and fall back to parsing when a target no longer matches. Cache reuse is not a speed or correctness guarantee.

Evidence controls

Runs can preserve screenshots, MP4 video, and HTML reports. Saved reports default private; the guest demo intentionally produces a public report.

Bounded group re-runs

Queue a whole suite, project, or app across leased tester VMs. Actual concurrency depends on pool capacity and busy tests queue.

Secrets & 2FA

Saved secrets live in the platform key store; one-run overrides are not persisted. Email OTP requires an active managed Gmail connection and a dedicated test account.

Project → app → scenario

Organize tests in a tree with a run-history strip so you can spot solid, broken, and flaky at a glance.

Console, CLI & MCP

Drive it from the dashboard, the openfactory CLI, or AI agents via the MCP tools.

Test the app wherever it lives

  • Deployed on OpenFactory: a stable, health-checked *.apps.openfactory.tech URL.
  • Your own dev server: bind it to the network and the tester VM reaches it directly.
  • Public HTTP(S) URL: the guest gate requires a hostname whose resolved addresses are global; reachability can still fail because of DNS, TLS, bot controls, authentication, geofencing, or network policy.

Frequently asked questions

How is this different from Playwright or Selenium?

Vision-driven goal steps can follow visible intent without a selector for every action, but they are probabilistic. Playwright or Selenium remains valuable for exact DOM, browser, network, and API assertions. Use the approaches together rather than treating one as a universal replacement.

Do I need to install anything to try it?

The guest demo needs no signup, but it only accepts HTTP(S) hosts that resolve to global addresses, is rate-limited, and may queue behind the shared tester pool. Its report, screenshots, and video are public: submit no private URL, token, personal data, or confidential content.

Where can the app under test run?

The guest demo accepts only publicly resolvable HTTP(S) targets. Authenticated console scenarios can also reach routes available from their tester VM under the deployment's network policy. Reachability, authorization, and a passing smoke test are separate properties.

Can it sign in and handle 2FA?

Saved scenarios can resolve key-store passwords and TOTP seeds, or read an emailed code from an active managed Gmail connection. Use dedicated test accounts, keep secrets out of definitions and screenshots, review the provider data path, and test revocation. These richer flows run from the authenticated console.

Build the image instead of hand-assembling it

Use OpenFactory to turn the same requirements into a bootable, testable Linux system.

Open console