Skip to content

Agent and browser testing

Automated browsers behave most like production when they hit a real HTTPS origin. routeup gives your dev server one, locally or publicly.

When the test runner is on the same machine (Playwright, Puppeteer, Cypress), use the local route, real HTTPS, no network:

terminal
routeup serve example-app --port 3000
await page.goto('https://example-app.localhost');

This exercises secure cookies, service workers, and https-only web APIs that a plain http://localhost:3000 would not.

Browsers launched by these tools usually use the system trust store, so the routeup CA is already trusted. If a runtime ships its own CA bundle, point it at the routeup CA:

terminal
export NODE_EXTRA_CA_CERTS=~/.routeup/ca.crt

Apps with a separate trust store may need the CA imported through their own settings. See Custom CA certificates.

When the browser runs somewhere else, CI, a cloud browser, or an LLM agent driving a remote browser, localhost is not reachable. Expose the route and hand the agent the public URL. First configure a public server as described in Exposing publicly. This example assumes your saved token allows *.mukul.routeup.dev:

terminal
routeup serve example-app --port 3000 --expose
https://example-app.mukul.routeup.dev

The configured route and namespace let you request the same target URL between runs, so test configs and prompts do not need a newly generated URL. Public claims remain subject to the server’s normal conflict rules.