$ bns environments deploy --run-tests

End-to-End Testing
on Real Infrastructure.

Run Cypress, Playwright, or Selenium against full-stack environments. Every PR, every push. Automated.

No credit card required

B
Environments / e2e-suite / Test Run #89
$ bns test run --suite e2e
▸ Provisioning environment... done (2m 14s)
▸ Running Playwright suite...
  ✓ auth/login.spec.ts          4 passed (3.2s)
  ✓ auth/signup.spec.ts         6 passed (4.1s)
  ✓ checkout/cart.spec.ts       8 passed (5.7s)
  ✓ checkout/payment.spec.ts    5 passed (3.9s)
  ● api/orders.spec.ts          1 failed (2.1s)
23 passed · 1 failed · 0 skipped
▸ Environment auto-destroying...
How Bunnyshell works — architecture diagram

$ cat how-it-works.md

How Bunnyshell works

01

Connect your repo

Link your GitHub, GitLab, or Bitbucket repository. Define your environment using Docker Compose, Helm, or Terraform — tools you already use.

GitHubGitHub
GitLabGitLab
BitbucketBitbucket
DockerDocker
HelmHelm
K8sK8s
02

Open a pull request

Bunnyshell auto-provisions an isolated, full-stack environment for every PR. Share the preview URL with your team.

PR #142→env-142.preview.bunnyshell.dev• Running
PR #143→env-143.preview.bunnyshell.dev• Running
PR #144→env-144.preview.bunnyshell.dev• Running
03

Merge and move on

Tests pass, code is reviewed, PR merges. The environment auto-destroys. No cleanup. No surprise cloud bills.

✓End-to-end tests passed
✓Code review approved
✓Merged — environment destroyed
✦✦

See it in action.

Run your first automated E2E test suite in under 30 minutes. Free tier — no credit card required.

01

Full-Stack Environments
Per Test Suite.

Every test suite runs against a complete, isolated environment. Frontend, backend, database, third-party services — all running together. Not mocked. Not stubbed.

  • ✓Isolated per suite — each test suite gets its own full-stack environment. No shared state, no flaky tests
  • ✓Production parity — same containers, same networking, same configs as production. Catch real bugs
  • ✓Parallel suites — run auth, checkout, and API suites simultaneously across separate environments
  • ✓Auto-provisioned — environments spin up before tests and tear down after. Zero manual setup
See environment components →
B
Environments / PR #312 — feat/payments / Test Suites
SuiteEnvironmentTestsResult
e2e-authenv-auth-pr31210/10Passed
e2e-checkoutenv-checkout-pr31213/13Passed
e2e-dashboardenv-dash-pr3128/8Passed
e2e-apienv-api-pr3126/71 Failed
02

Cypress. Playwright.
Selenium. Any Framework.

Bring your existing test framework. Bunnyshell provisions the environment and gives you the URL. Your CI pipeline runs the tests. No vendor lock-in. Not sure which to pick? See our Playwright vs Cypress vs Selenium comparison.

  • ✓Framework agnostic — Cypress, Playwright, Selenium, TestCafe, Puppeteer — any framework that hits a URL
  • ✓CI/CD integration — GitHub Actions, GitLab CI, Jenkins, CircleCI. Native actions and orbs available
  • ✓Test artifacts collection — screenshots, videos, traces, and logs collected automatically after each run
  • ✓Custom test commands — define your own test scripts. Bunnyshell provides the environment, you run the tests
See CI/CD integration docs →
B
CI / GitHub Actions / e2e-pipeline.yml
# .github/workflows/e2e.yml
name: E2E Tests
on: [pull_request]
 
jobs:
  e2e:
    runs-on: ubuntu-latest
    steps:
      - uses: bunnyshell/deploy@v2
      - run: npx playwright test
        env:
          BASE_URL: ${{ steps.bns.outputs.url }}
      - uses: bunnyshell/destroy@v2
Cypress Playwright Selenium
03

Test on Every PR.
Automatically.

Configure once. Every pull request triggers an environment + test run. Results posted back to the PR as a comment. Merge with confidence. See our full guide on testing a pull request before merging.

  • ✓Auto-trigger on PR — open a PR and tests start running. No manual trigger, no CI config per branch
  • ✓Results in PR comments — test results, pass/fail counts, and artifact links posted directly to your PR
  • ✓Block merge on failure — configure branch protection to require passing E2E tests before merge
  • ✓Parallel PR testing — ten PRs open? Ten environments running tests simultaneously. No queue
See auto-trigger setup →
bunnyshellbotcommented just now

✅ E2E Test Results — 23 passed, 1 failed

SuiteTestsStatus
auth/login.spec.ts4/4✓ Passed
checkout/cart.spec.ts8/8✓ Passed
api/orders.spec.ts6/7✗ 1 Failed

View full report | Download artifacts | Re-run failed

04

Test Reports
& Artifacts.

Collect screenshots, videos, traces, and logs from every test run. Debug failures without re-running. Historical test data across environments.

  • ✓Screenshots & videos — capture visual evidence of every test. See exactly what the browser rendered
  • ✓Playwright traces — download and replay Playwright traces locally. Step through every action
  • ✓Test history per environment — track pass rates, flaky tests, and regressions across runs and environments
  • ✓Failure debugging — stack traces, console logs, and network requests — all collected automatically
See artifact collection docs →
B
Environments / PR #312 / Test Run #89 / Artifacts
FileTypeSuiteSize
📷 checkout-failure.pngScreenshotcheckout/payment142 KB
🔍 orders-test-trace.zipPlaywright Traceapi/orders2.1 MB
🎦 e2e-run-89.mp4Videocheckout/cart8.4 MB
📄 test-run-89.logLogAll suites34 KB

E2E testing that works
for your whole team.

QA Engineers

Dedicated test environments

Every test cycle gets its own full-stack environment. Run E2E, regression, and smoke tests in complete isolation.

Developers

Test before merge

E2E tests run on every PR automatically. See results in the PR comment. Merge only when tests pass.

Platform Teams

Standardize test infrastructure

Define test environments in code. Same YAML, same infrastructure, every time. No flaky tests from environment drift.

Release Managers

Gate releases with confidence

Block deploys on test failure. Full test history per release. Know exactly what was tested.

Performance Engineers

Load test on real infra

Run load tests against production-grade environments. Measure p50, p95, p99 on real infrastructure.

Engineering Leaders

Ship faster with fewer bugs

Automated E2E on every PR catches regressions before merge. Fewer production incidents, faster release cycles.

✦✦

Catch bugs before your users do.

Automated E2E tests on every pull request. Full-stack environments, real infrastructure. 14-day trial, no credit card.

Teams that automated
end-to-end testing.

Enterprise-grade security.
Your data stays in your cloud.

Bunnyshell connects to YOUR Kubernetes cluster. Your code and data never leave your infrastructure. SOC 2, ISO 27001, and ISO 9001 compliant.

SOC 2
ISO 27001
ISO 9001

RBAC

Three-layer permission model: Policies, Resource Selectors, and Teams. Granular enough for enterprise.

SSO

Enterprise single sign-on. Integrate with your existing identity provider.

Network Isolation

Dedicated Kubernetes namespace per environment. Pods accessible only within their namespace.

Secrets Management

Environment variables and secrets handled securely. Never hard-coded, always encrypted.

IP Whitelisting

Restrict access to specific IP ranges. Control who can reach your environments.

Audit Logs

Full audit trail for every environment action. Who deployed what, when, and where.

Frequently asked
questions

Can’t find what you’re looking for? Talk to our team

Bunnyshell isn't a test runner — it's the environment layer underneath one. It provisions the full-stack, production-parity environment your end-to-end testing software (Cypress, Playwright, Selenium, or any framework) runs against, then tears it down when the PR closes. Your existing test suite doesn't change, only what it's pointed at does.

✦✦

Every PR deserves a full-stack test.

Automated E2E testing on real infrastructure. Start free — deploy your first test environment in minutes. No credit card required.