Auw dat doet pijn.
Ik heb het zelf mogen ervaren. Je hebt je hele applicatie geautomatiseerd om je testen elke nacht te laten draaien (in mijn geval in Jenkins) om er vervolgens achter te komen dat je testen falen om de verkeerde redenen.
De eerste keren bekijk je de rapportage en ga je op zoek naar de reden waarom ze falen, want wellicht is er regressie opgetreden. Maar al snel kom je erachter dat het een andere reden heeft: Flakiness.
Met als gevolg dat je na verloop van tijd niet meer de rapportage opent, want het zullen wel weer flaky testen zijn. En dat is jammer, want dan kun je net zo goed geen automatische testen schrijven als je toch niets met het resultaat doet.
WAT IS FLAKINESS?
Flakiness betekent dat automatische testen falen, omdat ze te snel verder gaan naar de volgende stap in het testscript en niet lang genoeg wachten tot een bepaalde stap volledig is uitgevoerd. Bijvoorbeeld: De inlogpagina wordt aangeroepen (stap 1) en voordat de inlogknop zichtbaar is, wordt de volgende stap al uitgevoerd, namelijk: klik op de inlogknop (stap 2). Omdat deze knop nog niet zichtbaar is, kan hier dus niet op worden geklikt en faalt de automatische test.
Nu zou je kunnen stellen dat er niet zoiets is als een flaky test, alleen slecht geschreven testen of een slecht geschreven applicatie.
AWAIT FUNCTIE
Om flakiness te voorkomen heeft Playwright een await functie die ervoor zorgt dat er bij elke stap wordt gewacht tot het element zichtbaar is óf tot de time-out is bereikt. Hiermee voorkom je dat de flakiness aan de kant van de testautomatisering zit. De code van de applicatie kan natuurlijk nog steeds knudde zijn, daar kan Playwright niet zoveel aan doen. 😉
Loop jij ook tegen deze pijn aan in je testautomatisering? Geef Playwright dan eens een kans. Het is open source software en alle functionaliteiten zijn gratis te gebruiken.