Browser fleets — a managed Selenium Grid & Playwright endpoint
You already have a working Selenium or Playwright suite. Browser fleets let you keep every line of it and swap one URL — MaxoPerf runs the browsers, and hands you a single central control endpoint that speaks both the W3C WebDriver protocol (Selenium Grid-compatible) and Playwright connect().
A fleet is a set of real chrome, firefox, and edge browsers you request by count and location. Point your existing client at the fleet endpoint and MaxoPerf allocates the browsers, records video, steps, HAR, and console for every session, and bills them as browser virtual users on your existing plan.
Why teams move to browser fleets
Section titled “Why teams move to browser fleets”- A Selenium Grid alternative you don’t operate. No hub, no nodes, no Docker images, no autoscaling to babysit. Request browsers, connect, done.
- A Selenoid / Moon replacement. Selenoid is archived. Fleets give you the same facade-over-drivers model as a managed service, with observability built in.
- A Microsoft Playwright Testing replacement. MPT is being retired. Fleets speak Playwright
connect()per engine, plus a version-agnostic CDP escape hatch. - Full observability, no script edits. Every session gets a clean video, a synced step timeline, a network HAR, and the browser console — the same capture as a MaxoPerf browser test.
- Agent-native. Create and scale fleets from the MCP server, Loadrigo, your IDE, the REST API, or the console.
How a fleet works
Section titled “How a fleet works”-
Request browsers. Tell MaxoPerf which browsers you want, how many of each, and in which location — from the console, the REST API, the MCP server, or an AI agent.
-
MaxoPerf allocates runners. Each fleet runs on the same runner image a browser test uses. Browsers connect outbound to a gateway over a secure tunnel — there are no inbound ports and no runner addresses to manage.
-
Connect your client. You get one central endpoint. Selenium clients use the WebDriver URL; Playwright clients use the per-engine WebSocket URLs; anything Chromium can use the CDP escape hatch.
-
Watch and inspect. Live sessions appear as video tiles on the fleet’s run in the console, each with its own steps, HAR, and console.
Browser fleets vs. browser tests — when to use which
Section titled “Browser fleets vs. browser tests — when to use which”Both features run real chrome, firefox, and edge browsers on the same runner image, capture the same video/steps/HAR/console, and bill from the same VU-hours pool. The difference is who drives the browser:
| Browser test | Browser fleet | |
|---|---|---|
| Who drives the browser | MaxoPerf runs your recorded or scripted scenario | Your own Selenium/Playwright client, running wherever your suite already runs |
| Best for | Load and functional scenarios authored in MaxoPerf (builder, VarioTest, or uploaded script) | An existing Selenium/Playwright suite (CI, local dev, another framework) that needs somewhere to run browsers |
| Lifecycle | MaxoPerf starts, drives, and ends every session | You open and close sessions against a long-lived fleet endpoint over its lifetime |
| Concurrency model | Set once at test create (virtual users) | Request N browsers up front, or scale a live fleet up as your suite needs more |
The endpoints
Section titled “The endpoints”Every fleet exposes one central control endpoint, path-routed on the app domain — no new host, no extra DNS:
| Protocol | Endpoint | Browsers |
|---|---|---|
| WebDriver (Selenium Grid) | https://app.maxoperf.com/browser-fleets/<fleetId>/wd/hub | chrome · firefox · edge (pick via the browserName capability) |
| Playwright (per engine) | wss://app.maxoperf.com/browser-fleets/<fleetId>/playwright/{chromium,firefox,msedge} | one WebSocket URL per engine |
| CDP (escape hatch) | wss://app.maxoperf.com/browser-fleets/<fleetId>/cdp | Chromium, version-agnostic |
Authentication in one line
Section titled “Authentication in one line”Every credential position accepts either a fleet token (mpft_…) or an account API key (mpak_…) with access to the fleet. Drop it into whichever slot your client uses:
- Selenium — basic-auth in the URL:
https://<fleetId>:<token>@app.maxoperf.com/browser-fleets/<fleetId>/wd/hub - Playwright / CDP — the
?token=<token>query parameter on the WebSocket URL - Raw HTTP — an
Authorizationheader, or themaxoperf:options.tokencapability on WebDriver
Retrieve or rotate a fleet token any time the fleet is live with GET /v1/fleets/<fleetId>/token, or reveal it on the fleet’s detail page in the console.
What gets captured
Section titled “What gets captured”Capture is honest about what each browser and protocol supports today. WebDriver on chrome and edge is full-fidelity; Playwright captures video for every engine, with console and HAR best-effort.
| Browser | Protocol | Video | Steps | Console | HAR |
|---|---|---|---|---|---|
| chrome | WebDriver | ✅ | ✅ | ✅ | ✅ |
| edge | WebDriver | ✅ | ✅ | ✅ | ✅ |
| firefox | WebDriver | ✅ | ✅ | ⚠️ | ⚠️ |
| chrome | Playwright | ✅ | ❌ | ⚠️ | ⚠️ |
| edge | Playwright | ✅ | ❌ | ⚠️ | ⚠️ |
| firefox | Playwright | ✅ | ❌ | ❌ | ❌ |
Legend: ✅ full · ⚠️ best-effort in v1 · ❌ not available in v1.
Next steps
Section titled “Next steps”See also
Section titled “See also”- Browser tests — author a new scenario inside MaxoPerf instead of driving your own client.