E2E Testing
Overview

E2E Testing

The E2E Testing service runs end-to-end tests against ShellApps services using Docker and Playwright. It supports visual regression testing and integrates with CI pipelines.

Overview

  • Playwright-based — Tests run in real browsers (Chromium, Firefox, WebKit)
  • Dockerised — Consistent test environments via Docker containers
  • Visual regression — Screenshot comparison to catch UI regressions
  • CI integration — Trigger test runs from GitHub Actions, GitLab CI, or via API
  • OrchestratedRapidStack can trigger test suites as workflow steps

Architecture

┌──────────┐     ┌──────────────┐     ┌──────────────────┐
│ CI / API │ ──▶ │ E2E Service  │ ──▶ │ Docker Container │
│          │     │              │     │  ┌────────────┐  │
│          │     │ Test Runner  │     │  │ Playwright  │  │
│          │     │ Result Store │     │  │ + Browsers  │  │
│          │     └──────────────┘     │  └────────────┘  │
│          │                          └──────────────────┘
│          │ ◄── Results + Screenshots
└──────────┘

Running Tests

Via API

const response = await fetch('https://e2e.shellapps.com/api/v1/runs', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${token}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    suite: 'smoke',
    target: 'https://experience.shellapps.com',
    browsers: ['chromium'],
  }),
});
 
const { runId } = await response.json();

Via CLI

npx @shellapps/e2e-cli run --suite smoke --target https://experience.shellapps.com

Via RapidStack

await rapid.createTask({
  type: 'e2e-test',
  tools: ['e2e.run-suite'],
  input: { suite: 'smoke', target: 'https://experience.shellapps.com' },
});

Test Suites

SuiteDescriptionDuration
smokeCritical path tests — login, navigation, basic CRUD~2 min
regressionFull regression suite~15 min
visualScreenshot comparison tests~5 min
authAuthentication flow tests~3 min

Visual Regression

Screenshots are captured and compared against baselines:

await expect(page).toHaveScreenshot('dashboard.png', {
  maxDiffPixelRatio: 0.01,
});

Failed comparisons generate diff images highlighting changes.

Related


© 2026 Shell Technology. All rights reserved.