OpenClaw · Playwright sharding · Flake · Remote Mac · 2026

2026 OpenClaw Frontend-QA in der Praxis:
Playwright-Shards, Report-Merge, Flake-Schwellen und PR-Zusammenfassung auf dem Remote Mac

24. April 2026 Frontend-QA-Automatisierung ca. 12 Min.

Zielgruppe: Frontend-QA-Engineer:innen, die Playwright bereits fahren, aber parallele Shards, einen zusammengeführten Report, nachvollziehbare Flake-Behandlung und eine PR-Zusammenfassung brauchen, die Menschen in unter einer Minute erfassen. Dieses HowTo verbindet einen Remote-Mac-Runner mit dem OpenClaw-Gateway der 2026-Toolkette, damit Orchestrierung und Rückmeldung reproduzierbar bleiben — ohne den Fokus auf Einzeltest-Triage oder KI-Auto-Fix-Schleifen (siehe unten Verweise). Ergänzend: Token-Auth und E2E-Summary, Trace und HAR als Min-Repro sowie Regressions-Log-Triage — bewusst anders gelagert als Playwright E2E mit KI-Auto-Fix, das Reparaturzyklen statt Shard-Ökonomie betont. Preise, Hilfe und Kaufen auf macwww.com bleiben ohne Login-Zwang einsehbar.

Schmerzpunkte: (1) Vier grüne HTML-Reports, die niemand zu einem Signal zusammenführt. (2) Branch-Protection liest junit nur von Shard 0. (3) Flaky Tests retry-en endlos und verdecken echte Regressionen. (4) OpenClaw postet JSON-Wände statt reviewfertiges Markdown.

Die Lösung ist ein klarer Vertrag: Shard für Wandzeit, Merge für ein Gate, Flake-Budget mit Formel und Gateway nur für strukturierte Artefakte. Auf gemietetem Apple-Silicon-Remote-Mac halten Sie WebKit- und Chromium-Projekte nah an Produktion — ideal für 7×24-Smokes und PR-Vorläufe parallel zur Linux-CI.

01 Shard-Parameter-Tabelle

Parameter Typischer Wert Hinweis Remote Mac
PLAYWRIGHT_SHARD / PLAYWRIGHT_TOTAL 3 von 8 Nullbasierter Shard-Index muss über Re-Runs stabil bleiben; TOTAL entspricht der Worker-Anzahl, die Sie provisionieren.
--shard=aktuell/gesamt CLI-Spiegel der Env-Paare Dasselbe Tupel in Logs ausgeben, die OpenClaw echo-t — Support kann dann einen String greppen.
--workers 1 pro Shard-Job Pro Shard eine Browser-Flotte auf Apple Silicon, um GPU-Konkurrenz mit WebKit zu vermeiden.
Blob-Ausgabeordner blob-report/shard-3 Pro Shard eindeutig vor dem Merge; niemals zwei Schreiber auf einem Pfad.
Ansatz Wandzeit Reviewer-UX Flake-Sichtbarkeit
Ein dicker Runner Langsamste Variante Ein Report, einfach Noisy Retries auf einer Zeitleiste
Sharding ohne Merge Roh am schnellsten Fragmentierte Tabs Flake-Raten schwer vergleichbar
Sharding plus Merge Schnell mit einem Fan-in-Schritt Ein HTML und eine junit Zentrale flake_stats.json

02 Report-Verzeichnis-Konventionen

Verwenden Sie .openclaw/reports/$GIT_SHA/ als Vertragswurzel auf dem Remote Mac. Jeder Shard schreibt nach raw/shard-$i/blob/. Nach dem Kopieren merge-reports nach merged/html und merged/junit.xml ausführen. Legen Sie flake_stats.json daneben ab, damit OpenClaw-Vorlagen deterministische Pfade lesen können, ohne den Baum zu scannen.

mkdir -p ".openclaw/reports/${GIT_SHA}/raw/shard-${SHARD}/blob"
PLAYWRIGHT_SHARD=${SHARD} PLAYWRIGHT_TOTAL=${TOTAL} npx playwright test --reporter=blob
# Fan-in-Host:
npx playwright merge-reports ".openclaw/reports/${GIT_SHA}/raw/shard-"*"/blob" \
  --reporter=html,junit

Zitierfähige Fakten: GitHub Branch-Protection liest typischerweise einen junit-Pfad. Der Blob-Reporter ist der unterstützte Merge-Input in aktuellen Playwright-Versionen. WebKit-Kaltstarts kosten auf dem ersten Launch oft zig Sekunden — das gehört in die Shard-Zeitplanung, nicht nur in timeout-Literale.

03 OpenClaw-Aufrufgrenzen

Browser und Playwright bleiben vollständig auf dem Mac. Das OpenClaw-Gateway (Ingress, Schema-Validierung, optionales Modell für Textzusammenfassung) bekommt nur strukturierte Artefakte: gemergte junit-Zähler, Top-fehlgeschlagene Testtitel, Wandzeit-Schiefstand zwischen Shards und signierte Artefakt-URLs. Rohe Traces nicht durch das Modell streamen, außer bei gezielter Triage; stattdessen verlinken wie im Trace- und HAR-Playbook. Summaries mit Idempotency-Key: ${GIT_SHA}:${CI_PIPELINE_ID}:pw posten und <!-- openclaw-pw:${GIT_SHA} --> einbetten, damit PR-Kommentar-Updates idempotent bleiben.

  • Das Gateway validiert JSON-Schema-Version pw_summary/v1, bevor Git berührt wird.
  • Secrets verlassen den Runner nicht; OpenClaw erhält presigned GET-URLs mit kurzer TTL.
  • Wenn Auth mitten im Lauf scheitert, die Observability-Felder aus dem Token-Auth-Artikel nutzen statt zu raten.

04 Retry-Schwellen: Formelbeispiele (Flake)

Sei p die Fehlerwahrscheinlichkeit pro Versuch für einen flaky Fall und ε Ihr Rest-Risiko-Budget nach automatisierten Retries (Unabhängigkeit als Erstnäherung). Lösen Sie p^(r+1) ≤ ε, also r_max = min(3, ceil(ln(ε)/ln(p) - 1)) mit harter Obergrenze aus Policy. Beispiel: p = 0,2 und ε = 0,01 erfordert r+1 ≥ 3, weil 0,2^2 > 0,01 während 0,2^3 ≤ 0,01 — damit zwei Retries nach dem ersten Lauf. Für die Suite: flake_budget = floor(0,15 * total_tests), damit ein lautes Modul nicht den gesamten Pool verbraucht.

Bekannte Flakes taggen, in einem langsameren Quarantäne-project fahren und im Merge-Report sowohl Erstversuch als auch Retry-Spalten zeigen — so bleibt Grün glaubwürdig für die PR-Zusammenfassung.

05 Häufige Timeouts — Fehlersuche

  • Fixture-Timeout unter WebKit: expect-Timeouts erst anheben, wenn actionTimeout und reale Last stimmen — prüfen, ob der Mac parallele Shards thermisch drosselt.
  • Navigation-Timeout zu Preview-URLs: Kaltstart-Probes an die Kadenz aus Deploy-Hook-Smoke (Vercel) oder Ihrem eigenen Warm-up koppeln, damit Tests erst starten, wenn die Edge 200 liefert.
  • Merge-Schritt hängt: Prüfen, ob jeder Shard einen vollständigen Blob hochgeladen hat; partielle Kopien erzeugen stille Merge-Hänger — Ordner vor dem Fan-in checksummieren.

06 Reproduzierbare HowTo-Schritte

  1. GIT_SHA, TOTAL und pro Job SHARD exportieren; Start verweigern, wenn das Tupel unvollständig ist.
  2. Browser einmal pro Maschinen-Image installieren; PLAYWRIGHT_BROWSERS_PATH außerhalb der Workspace-Kopie cachen.
  3. Tests mit Blob-Reporter unter .openclaw/reports/$GIT_SHA/raw/shard-$SHARD/blob ausführen.
  4. Auf dem Fan-in-Runner Blobs mergen, HTML und junit erzeugen, Flake-Deltas aus junit-Zeitstempeln berechnen.
  5. pr_playwright_summary.md mit Abschnitten für Failures, Flakes, Shard-Schiefstand und Artefakt-Links bauen.
  6. Per OpenClaw mit Idempotency-Key posten und bei gleichem SHA den bestehenden PR-Kommentar-Marker aktualisieren.

Für kontinuierliche Läufe (nachts, auf PR-Labels) lohnt sich dieselbe Pipeline auf dem Remote Mac wie für Merge-Queue: einheitliche Pfade, identische Playwright-Version, reproduzierbare OpenClaw-Webhooks — siehe auch Docker × Playwright auf Remote Mac für Isolationsvarianten.

Kurzfassung

Shard für Geschwindigkeit, Merge für ein klares Signal, Flakes mit expliziter Mathematik begrenzen und OpenClaw Markdown statt Rohlogs liefern lassen. Ein Remote Mac hält WebKit für Dauerläufe ehrlich.

Weitere OpenClaw-Playbooks im Technik-Blog; slug dieser Seite: 2026-openclaw-playwright-shard-report-remote-mac.html.

Remote Mac · WebKit · Dauer-QA

Apple Silicon mieten für shardierte Playwright-Läufe und OpenClaw-Digests

Lange Shard-Pools und Merge-Hosts auf derselben Remote-Mac-Klasse wie Ihre WebKit-Abnahme betreiben. Preise, Hilfe mit SSH und VNC, Kaufen — alles ohne Konto-Pflicht.

Parallele Shards PR-Summaries WebKit-Nähe
Remote Mac für Playwright-Shards