Testing and QA infrastructure
Testing and QA infrastructure
Run WebDriver-based UI test suites from CI against a self-hosted Selenium Grid 4. You operate the CI wiring and test suites; Quake AI provides the Compute instance and network the grid runs on.
What this is for#
Teams that run browser-based UI test suites from CI need Chrome and Firefox sessions on demand, without a per-minute device-farm bill from BrowserStack or Sauce Labs. A Selenium Grid hub with browser nodes gives CI runners that on-demand capacity, running on infrastructure you own. The outcome is a WebDriver endpoint your test suites point at, deployable from a validated OpenTofu template and its companion tutorial.
Reference architecture#
Download diagram: SVG, PNG, and PDF.
The base is a single validated template: Selenium Grid testing provisions the instance and network the grid runs on.
-
CI runner. A CI job opens WebDriver sessions against the grid's hub over the private network or a scoped CIDR.
-
Selenium hub. The Selenium Grid testing template runs a Selenium Grid 4 hub on port 4444 in Docker on a Compute instance, which accepts sessions and dispatches them to registered nodes.
-
Browser nodes. Two Chrome nodes and one Firefox node run as sibling containers on the same instance and register with the hub over the event bus; sessions are ephemeral and nothing persists across a container restart.
Services involved#
| Service | Role in this architecture | Docs |
|---|---|---|
| Compute | Hosts the hub and all three browser nodes | Compute |
| Network | Private network, security group scoped to CI runner CIDRs, and floating IP for external CI runners | Network |
Get started#
- Selenium Grid testing template: OpenTofu pattern that provisions the instance and network; the hub and all three nodes start automatically with no credential to generate.
- OpenTofu template library: browse validated IaC starting points for other self-hosted team tools.
Estimate the cost#
Monthly cost estimate
Pricing calculator ↗Sized as a custom package on shared vCPU.
Monthly total for the required template above. Use the configurator below to add optional pieces and see the total update.
What each resource is for
Selenium Grid host
s1a.large · 8 shared vCPU, 8 GiB RAM, 0.5 Gbps
Runs a stateless Selenium Grid hub plus two Chrome nodes and one Firefox node, all ephemeral with no attached data volume.
The hub plus three browser node containers need real memory headroom to avoid crashes under load; 8 vCPU and 8 GiB RAM is the floor. Size up further for more nodes or heavier test suites.
Compute shown per role at custom-package rates ($29/dedicated vCPU, $7.25/shared vCPU, $1/GiB RAM). The headline above is the billed total: the cheaper of a named plan and the custom package, plus add-ons.
Included in baseline
s1a.large
8 shared vCPU, 8 GiB RAM, 0.5 Gbps
Compute + RAM rate basis
8 vCPU + 8 GiB RAM at $29/dedicated vCPU, $7.25/shared vCPU, $1/GiB RAM (regular). Totals apply the flat −$5/mo package promotion.
Block storage (30 GiB)
30 GiB at $0.08/GiB/mo
Public IP (included)
1 included with the custom package
Package promotional discount
Flat −$5.00/mo on the custom package (same promotion as named plans).
Included at no charge
These line items are zero on Quake AI. Many other providers meter them separately.
Data transfer (inbound and outbound)
Unlimited data transfer on every plan; Quake AI does not meter per-GB egress.
AWS, GCP, and Azure meter outbound transfer per GB. DigitalOcean and Hetzner include an allowance on compute plans, then charge overage.
Learn morePrivate networking
Private networks, subnets, Neutron routers, and security groups are included with the plan.
VPC objects are usually free to create elsewhere, but NAT gateways bill hourly plus per-GB processed. Quake AI uses router SNAT with no separate NAT line item.
Control-plane API requests
OpenStack API calls for provisioning and management are included.
Some managed services on other clouds meter API calls or charge for premium control-plane features.
Pricing data last validated: . For current rates, check quake.ai/pricing.
Considerations and limits#
- No built-in authentication. A Selenium Grid ships with no login and no API token. Never widen
grid_allowed_cidrto0.0.0.0/0; scope it to your CI runner IPs or VPN CIDR. - Sessions are ephemeral by design. Nothing a test run produces persists across a container restart, so there is nothing to back up beyond the pinned image tag and the compose file itself.
- Scale nodes as suites grow. Add Chrome or Firefox capacity with
docker compose up -d --scale, or add aselenium/node-edgeservice for a third browser; give each additional node its ownshm_sizeand event-bus configuration. - Flat egress. Quake AI applies a no-egress-fee policy for outbound transfer.
- Three US regions. All current regions are in the United States.
- Compliance posture. Quake AI holds SOC 2 Type I and Type II attestations and SOC 3. See Compliance and certifications for the platform scope.