Skip to content

CI-Integration

Der Runner lässt sich nahtlos in Continuous-Integration-Pipelines einbinden. Diese Seite beschreibt die Integration mit GitLab CI und allgemeine CI-Konfiguration.

GitLab CI

xyva generiert CI-kompatible Konfigurationen für GitLab. Ein typischer Job sieht so aus:

yaml
e2e-tests:
  stage: test
  image: mcr.microsoft.com/playwright:v1.50.0-noble
  script:
    - npm ci
    - npx playwright test
  artifacts:
    when: always
    paths:
      - playwright-report/
      - test-results/
    expire_in: 7 days

TIP

Verwenden Sie das offizielle Playwright-Docker-Image, um sicherzustellen, dass alle Browser-Binaries vorinstalliert sind. Das spart erhebliche Build-Zeit.

Headless-Ausführung

In CI-Umgebungen laufen Tests standardmäßig im Headless-Modus. Der Runner erkennt automatisch, ob er in einer CI-Umgebung ausgeführt wird, und passt die Konfiguration entsprechend an:

  • Kein sichtbares Browserfenster
  • Optimierte Ressourcennutzung
  • Automatische Parallelisierung basierend auf verfügbaren CPU-Kernen

Artefakte und Berichte

Nach jedem CI-Lauf werden folgende Artefakte erzeugt:

ArtefaktBeschreibung
HTML-ReportInteraktiver Playwright-Bericht mit Testergebnissen
JUnit XMLStandard-Testbericht für CI-Dashboard-Integration
TracesPlaywright Traces für fehlgeschlagene Tests
ScreenshotsAutomatische Screenshots bei Assertion-Fehlern
VideosAufzeichnungen fehlgeschlagener Tests (falls aktiviert)

INFO

Die JUnit-XML-Datei (results.xml) wird automatisch erzeugt und kann von GitLab für die Pipeline-Übersicht ausgewertet werden.

Umgebungsvariablen

In CI-Umgebungen werden Variablen über die Pipeline-Konfiguration statt über den Test Hub bereitgestellt:

yaml
variables:
  BASE_URL: "https://staging.example.com"
  TEST_USER: $CI_TEST_USER
  TEST_PASSWORD: $CI_TEST_PASSWORD

WARNING

Speichern Sie Zugangsdaten niemals direkt in der .gitlab-ci.yml. Nutzen Sie stattdessen die geschützten CI/CD-Variablen von GitLab.

Pipeline-Dashboard

Das Pipeline-Dashboard in xyva zeigt den Status Ihrer CI-Läufe an und verknüpft die Ergebnisse mit dem lokalen Intelligence-Dashboard. So bleiben CI- und lokale Testdaten synchron.

Parallele Ausführung

Für große Test-Suites empfiehlt sich die Aufteilung auf mehrere CI-Jobs:

yaml
e2e-tests:
  parallel: 4
  script:
    - npx playwright test --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL

Die Ergebnisse aller Shards werden automatisch zusammengeführt.

Weiterführende Seiten

  • Runner — Übersicht der Ausführungs-Engine
  • Laufmodi — Alle Tests, Chirurgisch, Smart Run
  • Intelligence — Testergebnisse auswerten und analysieren

Local-first QA orchestration.