Geautomatiseerde tests voor toestemmingsbanners met Playwright: een praktijkgids
Waarom toestemmingstests automatiseren
Handmatige toestemmingscontroles worden makkelijk overgeslagen en zijn makkelijk fout te doen. Een nieuwe tag van marketing, een thema-update of een herschreven scriptloader kan ongemerkt trackers gaan afvuren vóór toestemming, en niemand merkt het totdat een klant of toezichthouder het ziet. Geautomatiseerde browsertests maken van de vraag “gedraagt onze banner zich nog goed?” iets wat bij elke release draait. Playwright past hier goed bij, omdat het echte browsers bestuurt, netwerkverzoeken kan onderscheppen en verse, geïsoleerde browsercontexten biedt.
De testcontexten
Elke test moet beginnen met een schone browsercontext, zonder cookies en zonder lokale opslag. Dat bootst een nieuwe bezoeker na. Maak per test een nieuwe context aan in plaats van een pagina te hergebruiken, anders lekt een keuze die in de ene test is opgeslagen door naar de volgende.
Test 1: niets vuurt voor toestemming
Luister naar elk netwerkverzoek vanaf het moment dat de pagina begint te laden. Laad de pagina, wacht tot die inactief is en raak de banner niet aan. Vergelijk de verzoeken daarna met een lijst trackerdomeinen die je bijhoudt, zoals analyse, advertenties en social pixels. De test faalt als een verzoek naar een domein op de lijst gaat. Lees ook de cookielijst uit de context en laat de test falen als er een niet-essentiële cookie bestaat.
Test 2: weigeren houdt alles uit
- Laad de pagina in een verse context.
- Klik op de weigerknop in de banner.
- Navigeer naar nog twee of drie pagina's, waaronder een met ingesloten media.
- Controleer dat er geen trackerverzoeken zijn gedaan en geen niet-essentiële cookies zijn geplaatst.
- Herlaad en controleer dat de banner verborgen blijft en de keuze behouden blijft.
Test 3: accepteren schakelt in wat moet
Klik op accepteren en controleer dat de verwachte tags nu vuren, bijvoorbeeld je analyseverzoek. Dit beschermt tegen de omgekeerde fout: een banner die toestemming vastlegt maar de scripts nooit vrijgeeft, wat stilletjes data en inkomsten kost.
Test 4: gedetailleerde keuzes
Open de voorkeurenlaag, schakel slechts één doel in en sla op. Controleer dat tags die bij dat doel horen vuren en tags die bij de andere horen niet. Houd een klein mappingbestand bij van doel naar verwachte domeinen, zodat de test duidelijk leest en makkelijk bij te werken is.
Test 5: intrekken
Accepteer, open daarna de instellingen opnieuw via je permanente link en trek de toestemming in. Controleer dat vervolgverzoeken naar trackers stoppen en dat de opgeslagen toestemmingsstatus de wijziging weerspiegelt. Let op dat reeds geplaatste cookies mogelijk expliciet verwijderd moeten worden, dus bepaal wat je beleid is en test dat.
Test 6: signalen
Als je Google Consent Mode gebruikt, lees dan de data layer in de paginacontext vóór en na elke keuze en controleer dat de waarden van de toestemmingsstatus kloppen: standaard geweigerd, verleend voor de categorieën die de bezoeker accepteerde. Als je een TCF-string gebruikt, lees die dan via de TCF-API en controleer dat hij na een keuze aanwezig is en die keuze weerspiegelt.
Tests betrouwbaar houden
- Gebruik stabiele selectors, zoals testattributen of toegankelijke rollen, in plaats van CSS-klassen die veranderen bij ontwerpupdates.
- Wacht op expliciete voorwaarden, niet op vaste vertragingen.
- Draai tests tegen een staging-kopie met dezelfde tagopzet als productie.
- Draai een kleine versie van de suite volgens schema, niet alleen bij deployments, want scripts van derden veranderen zonder jouw release.
- Test de belangrijkste regio's die je bedient door geolocatie in te stellen of de regio-override van je CMP te gebruiken.
Hoe FlexyConsent past
FlexyConsent ondersteunt IAB TCF 2.4, IAB GPP v1.1 en Google Consent Mode v2, dus de signalen waarop je in de tests controleert zijn standaardsignalen die je uit de pagina kunt lezen. De banner is beschikbaar in 58 talen; bedien je er meerdere, neem dan een test op die minstens één niet-Engelse versie laadt.
Belangrijkste punten
- Gebruik per test een verse browsercontext om een nieuwe bezoeker te simuleren.
- Controleer netwerkverzoeken en cookies, niet alleen hoe de banner eruitziet.
- Dek vier paden af: geen interactie, weigeren, accepteren en intrekken.
- Controleer ook de toestemmingssignalen in de data layer of de TCF-API.
- Draai de suite bij elke release en volgens schema om afwijkingen door scripts van derden te vangen.