← Alle Beiträge

Anleitungen

Eine bestimmte A/B-Test- oder Feature-Flag-Variante fürs QA erzwingen

A/B-Tests und Feature-Flags sind großartig für Produktteams und ein Elend für QA. Du wirst einmal, zufällig, in einen Bucket gesteckt — und siehst die andere Variante danach nie wieder. Dieser Artikel zeigt, wie du die Kontrolle übernimmst: Finde den Wert, mit dem die Seite dich einordnet, überschreibe ihn, bevor die Seite ihn liest, und pinne eine Variante pro URL-Muster mit einer JustZix-Regel.

Wie Seiten dich einordnen

Fast jedes clientseitige Experimentier-Tool — Optimizely, GrowthBook, LaunchDarkly, Statsig, Split, Eigenbau-Lösungen — funktioniert gleich. Bei deinem ersten Besuch würfelt es, schreibt das Ergebnis irgendwo dauerhaft hin und liest dieselbe Stelle bei jedem späteren Besuch, damit deine Erfahrung stabil bleibt. Dieses „irgendwo dauerhaft" ist fast immer eines von drei Dingen:

Die ersten beiden kannst du direkt überschreiben. Das dritte ist schwieriger — mehr dazu unten.

Den Bucketing-Schlüssel finden

Öffne die DevTools und gehe zum Tab Application. Unter Storage hast du Cookies und Local Storage nebeneinander. Lade die Seite neu und such nach allem, was nach einem Experiment aussieht: Schlüssel mit ab, exp, variant, flag, bucket, test, feature oder einem Anbieternamen wie optimizely oder growthbook.

Falls nichts Offensichtliches auftaucht, kommt die Entscheidung übers Netzwerk. Öffne den Tab Network, filtere auf Fetch/XHR, lade neu und such nach einer Anfrage an etwas wie /api/flags, /decide oder config.json. Das Antwort-JSON verrät dir die Variantennamen und — entscheidend — unter welchem Schlüssel das SDK sie speichert.

localStorage überschreiben, bevor Skripte es lesen

Timing ist alles. Das Experimentier-SDK liest seinen Schlüssel früh, oft vor DOMContentLoaded. Deine JustZix-JS-Regel muss vor diesem Lesen laufen. Stelle die Regel auf document_start und schreibe den Wert sofort:

// Pin the GrowthBook-style variant before the SDK initialises
const KEY = 'gb_anonymous_id';      // the bucketing key you found
const FORCED = 'qa-pinned-variant-b';

// Overwrite whatever value the SDK would have rolled
localStorage.setItem(KEY, FORCED);

// Some SDKs cache a whole decision object — pin that too
localStorage.setItem('growthbook_features', JSON.stringify({
  'new-checkout': { defaultValue: true },
  'pricing-table-v2': { defaultValue: 'variant-b' }
}));

Wähle für den Ansatz mit anonymer ID eine stabile, nicht-zufällige ID: Die meisten SDKs hashen diese ID in einen Bucket, also landet derselbe String immer in derselben Variante. Probiere einmal ein paar IDs durch, merk dir, welche dir Variante B liefert, und nutze sie für immer.

Ein Cookie überschreiben

Cookies sind einfacher — kein SDK steht im Weg, nur ein String. Schreib ihn bei document_start, damit die seiteneigenen Skripte deinen Wert sehen:

// Force the experiment cookie for this domain
function setCookie(name, value) {
  document.cookie =
    name + '=' + value + '; path=/; max-age=31536000; SameSite=Lax';
}

setCookie('ab_variant', 'B');
setCookie('feature_new_nav', 'on');

Ist das Cookie HttpOnly, kannst du es aus JavaScript überhaupt nicht anfassen — das ist ein serverseitiges Flag, dazu gleich mehr. Bestätigen kannst du das im Tab Application: HttpOnly-Cookies zeigen ein Häkchen in dieser Spalte.

Serverseitige Flags behandeln

Wird die Variante auf dem Server entschieden, ist das HTML, das du erhältst, bereits die Variante. Es gibt keinen clientseitigen Wert zum Umlegen. Du hast zwei ehrliche Optionen:

Ein Override per Query-Parameter ist der sauberste Weg. Unterstützt deine Seite ?ff_override=new-checkout:true, brauchst du nicht einmal JavaScript — leg dir einfach die URL als Lesezeichen an.

Eine Variante pro URL-Muster pinnen

Der echte Gewinn mit JustZix ist das Scoping. Du willst nicht jede Seite gleich einordnen — du willst diese Staging-Umgebung auf Variante B gepinnt und jene in Ruhe gelassen. Erstelle eine Regel mit einem engen URL-Muster:

URL pattern:  https://staging.example.com/*
JS (document_start):
  localStorage.setItem('exp_checkout', 'variant-b');
  document.cookie = 'ab_force=B; path=/';

Mach eine Regel pro Variante — „Checkout A pinnen", „Checkout B pinnen", „Kontrolle pinnen" — und schalte sie aus der Aktionsleiste um. Ein QA-Durchlauf durch alle drei Zweige wird zu drei Klicks statt drei Inkognito-Fenstern und viel Glück.

Prüfen, ob die Variante wirklich gegriffen hat

Vertraue nicht darauf, dass das Override funktioniert hat, nur weil die Seite anders aussieht. Bestätige es. Die meisten SDKs legen die aktive Zuweisung irgendwo offen — logge sie aus der Output Console:

// Read back what the SDK decided, after it initialised
window.addEventListener('load', () => {
  // GrowthBook example
  if (window.growthbook) {
    console.log('Active features:', window.growthbook.getFeatures());
  }
  // Generic: dump every storage key for the audit trail
  console.log('Forced storage:', { ...localStorage });
});

Kombiniere das mit dem Output-Console-Fenster, damit die Zuweisung im Tab sichtbar ist, während du dich durch den Flow klickst. Meldet das SDK die Variante, die du erzwungen hast, ist dein Test echt. Meldet es etwas anderes, lief deine Regel zu spät — schieb sie auf document_start.

Häufige Stolperfallen

Siehe auch

Hör auf, dich auf Inkognito-Fenster und glückliche Würfelwürfe zu verlassen. Installiere JustZix, baue eine Regel pro Variante und durchlaufe auf Abruf jeden Zweig jedes Experiments.

Bewerte diesen Beitrag

Noch keine Bewertungen — sei der Erste.

Probiere es selbst aus

Installiere JustZix und füge ein beliebiges Snippet aus diesem Artikel ein. Zwei Minuten von null bis zu einer funktionierenden Regel auf allen deinen Geräten.

JustZix holen

Funktionen · So funktioniert es · Beispiele · Anwendungsfälle