The short version
You describe a test case. An AI agent opens a real Chrome browser, explores your application, and writes a standard Playwright test script. That script is then executed in an isolated sandbox on a schedule or on demand. You get a pass or fail, with a video, a trace and screenshots. The important architectural point: the agent authors the test once, and the test runs on its own afterwards. Routine runs are ordinary Playwright executions with no model involved.The lifecycle
Steps 2 and 3 involve an AI model. Step 5 does not.Components
Model inference is the one part that is not EU-hosted. See
Where your data is processed for the full
picture, including which US providers are involved and on what contractual terms.
How a test gets authored
Two things are worth calling out. The model sees your application’s pages. To write a test that clicks the right button, the agent must read the page. It receives an accessibility tree — the structured text of the page — and screenshots. This is the single most important fact for a privacy review, and we treat it that way in Testing with realistic data. The model never sees your credentials. When the agent needs to log in, it writes a placeholder such as{{personas.admin.creds.web.login.password}}. The real value is substituted immediately
before the browser action runs, and any occurrence of it is stripped out of the result before the
model or the database sees it. The agent works with credential names, never values.
How a test runs afterwards
Once you accept a script, it is an ordinary Playwright test. Running it involves no AI model at all: Each run gets its own sandbox. Sandboxes are never shared between organisations and never reused across customers. When a run finishes, or after an idle timeout, the sandbox is destroyed.Reaching your application
Most customers point vikingQA at a staging or test environment on the public internet. Nothing special is required. If your environment sits behind an IP allowlist, you can enable fixed-IP egress. Every browser session and test run for your project then leaves from a single static address that you add to your firewall. If we cannot determine the correct egress configuration for a session, the run fails rather than silently falling back to a shared dynamic address — so an allowlisted environment is never reached from an unexpected IP.The browser extension
The extension is optional. It does two things:- Record a flow in your own browser and turn it into a test case, so the agent starts from a real user journey instead of exploring blind.
- Capture a manual test run, recording the tab video, console output and network activity while a human tests by hand.