Automatiserede tests af samtykkebanner med Playwright: En praktisk guide
Hvorfor automatisere samtykketests
Manuelle samtykketjek er lette at springe over og lette at få forkert. Et nyt tag tilføjet af marketing, en temaopdatering eller en omskrevet script-loader kan i det stille begynde at udløse trackere før samtykke, og ingen opdager det, før en kunde eller en tilsynsmyndighed gør. Automatiserede browsertests forvandler spørgsmålet “opfører vores banner sig stadig korrekt?” til noget, der kører ved hver udgivelse. Playwright passer godt, fordi det styrer rigtige browsere, kan opfange netværksanmodninger og giver friske, isolerede browserkontekster.
Testkontekster
Hver test bør starte fra en ren browserkontekst uden cookies og uden local storage. Det efterligner en førstegangsbesøgende. Opret en ny kontekst for hver test i stedet for at genbruge en side, ellers siver et valg, som én test har gemt, over i den næste.
Test 1: Intet udløses før samtykke
Lyt til alle netværksanmodninger fra det øjeblik, siden begynder at indlæses. Indlæs siden, vent til den er idle, og rør ikke ved banneret. Sammenlign derefter anmodningerne med en liste over trackerdomæner, som du vedligeholder, f.eks. analyse-, annonce- og sociale pixels. Testen fejler, hvis en anmodning går til et domæne på listen. Læs også cookielisten fra konteksten, og lad testen fejle, hvis der findes en ikke-nødvendig cookie.
Test 2: Afvisning holder tingene slukket
- Indlæs siden i en frisk kontekst.
- Klik på afvis-knappen i banneret.
- Gå til to-tre yderligere sider, herunder en med indlejrede medier.
- Kontrollér, at der ikke er sendt trackeranmodninger, og at der ikke er sat ikke-nødvendige cookies.
- Genindlæs, og kontrollér, at banneret forbliver skjult, og at valget består.
Test 3: Accept aktiverer det, den skal
Klik på accepter, og kontrollér, at de forventede tags nu udløses, f.eks. din analyseanmodning. Det beskytter mod den modsatte fejl: et banner, der registrerer samtykke, men aldrig frigiver scripts, hvilket i det stille koster dig data og indtægt.
Test 4: Granulære valg
Åbn præferencelaget, aktivér kun ét formål, og gem. Kontrollér, at tags knyttet til det formål udløses, og at tags knyttet til de andre ikke gør. Hold en lille mappingfil fra formål til forventede domæner, så testen er læsbar og nem at opdatere.
Test 5: Tilbagetrækning
Accepter, åbn derefter indstillingerne igen via dit permanente link, og træk samtykket tilbage. Kontrollér, at efterfølgende anmodninger til trackere ophører, og at den gemte samtykkestatus afspejler ændringen. Bemærk, at cookies, der allerede er sat, måske skal fjernes eksplicit, så beslut, hvad din politik er, og test for den.
Test 6: Signaler
Hvis du bruger Google Consent Mode, så læs data layer i sidens kontekst før og efter hvert valg, og kontrollér, at samtykkeværdierne passer: nægtet som standard, givet for de kategorier, den besøgende accepterede. Hvis du bruger en TCF-string, så læs den via TCF API'et, og kontrollér, at den findes efter et valg og afspejler det.
Hold testene pålidelige
- Brug stabile selektorer, f.eks. testattributter eller tilgængelige roller, i stedet for CSS-klasser, der ændres med designopdateringer.
- Vent på eksplicitte betingelser, ikke faste forsinkelser.
- Kør testene mod en staging-kopi med samme tag-opsætning som produktion.
- Kør en lille version af suiten efter en tidsplan, ikke kun ved deployments, fordi tredjepartsscripts ændrer sig uden din udgivelse.
- Test de vigtigste regioner, du betjener, ved at sætte geolokalisering eller bruge den regionsoverskrivning, din CMP tilbyder.
Sådan passer FlexyConsent ind
FlexyConsent understøtter IAB TCF 2.4, IAB GPP v1.1 og Google Consent Mode v2, så de signaler, du tester på, er standardsignaler, du kan læse fra siden. Banneret findes på 58 sprog; hvis du betjener flere, så medtag en test, der indlæser mindst én ikke-engelsk version.
Vigtigste pointer
- Brug en frisk browserkontekst pr. test for at simulere en førstegangsbesøgende.
- Kontrollér netværksanmodninger og cookies, ikke kun hvordan banneret ser ud.
- Dæk fire forløb: ingen interaktion, afvisning, accept og tilbagetrækning.
- Tjek også samtykkesignaler i data layer eller TCF API'et.
- Kør suiten ved udgivelse og efter tidsplan for at fange afvigelser fra tredjepartsscripts.