Menno Pot 19-10-2023
Vorige week organiseerden we weer een DeepDive, deze keer over de TA library Playwright.
Je kunt Playwright het beste vergelijken met Selenium, waarbij Playwright duidelijk meer al voor je doet. Je hoeft dus minder zelf te doen, handig voor de luie IT-ers onder ons.
Playwright wacht bijvoorbeeld standaard tot een element zichtbaar is, en in het geval van een tekstveld, wacht Playwright tot die editable is alvorens het er een actie op uitvoert. In Selenium moet je vaak zelf iets programmeren zoals “WaitForElementToBeVisible()”. Hiermee beperkt het ook flakiness en dat is wel heel fijn.
Verder gebruikt Playwright de locators bij voorkeur vanuit een gebruikersperspectief. Bijvoorbeeld:
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName(“Volgende”)).click();
Hierbij gaat Playwright dus op zoek naar een element van het type BUTTON, met daarop de tekst “Volgende”.
Als er geen knop is met de tekst “volgende”, dan zal de gebruiker een issue hebben omdat hij de knop niet kan vinden, en je TA dus ook, dus toon je gelijk een issue aan.
Natuurlijk kun je ook elementen zoeken op basis van xpath of css. Voor een uitgebreide toelichting check de locator pagina.
We zijn 2 keer in 3 groepjes uiteengegaan om te onderzoeken hoe Playwright zich op verschillende vlakken gedraagt en wat we ervan kunnen leren. De opgedane kennis hebben we gedeeld. Hieronder een samenvatting daarvan.
API testen
Werkt leuk. Authenticaties en Post hadden we al snel aan de praat. We twijfelen wel of Playwright nou de beste tool is hiervoor. In bijvoorbeeld Postman of een programmeertaal als Go kan dit veel makkelijker/sneller.
GUI testen
Er zitten wel standaard heel veel dingen in Playwright om dingen te testen. Playwright wordt goed doorontwikkeld en is erg simpel op te zetten. Met de handleiding kom je al heel snel op gang.
Je merkt al snel dat als je de locators gebruikt op basis van bijvoorbeeld een element met de naam “sites”, dat Playwright een melding geeft dat er meer elementen zijn met de naam “sites”. Je kunt Playwright zo configureren dat het dan het eerste element neemt, maar dit zouden we zeker afraden. Zorg gewoon dat je de elementen uniek kunt adresseren.
De autocomplete functie voor locators is wel erg fijn.
Mobiel testen:
Je kunt niet op een echte mobiele telefoon testen. En dus ook geen native apps testen.
Je geef in je code bijvoorbeeld “device pixel 5” mee, dan gebruikt het Chrome die emuleert alsof het een pixel 5 is.
Je kunt wel testen uitvoeren waarbij je de mobiele applicatie bijvoorbeeld laat denken dat het offline is of een specifieke GPS locatie heeft.
Mocking:
Het was even lastig hoe je een man-in-the-middle positie kunt innemen tussen de browser en internet. Met bestaande testen van Joeri lukte dit wel, dus het is zeker mogelijk. We hadden wat weinig tijd om hier een goed oordeel over te geven.
Verschillende programmeertalen:
Naast Java, JavaScrypt en c# .net kunt je ook gebruik maken van bijvoorbeeld de programmeertaal Go, ook Robot Framework zou mogelijk moeten zijn. Er is veel mogelijk.
Overall:
De documentatie is fijn om te lezen.
Er zitten echt mooie dingen in die het leven als Testautomatiseerder makkelijker maken.
Een voordeel is ook dat je testen parallel kunt draaien, dat verkort de doorlooptijd enorm.
Tracing is ook een gave in-build functie om ‘video’s’ te maken van hoe de testcase is doorlopen. Dat was wel erg fancy.
En de debugger helpt je goed om bijvoorbeeld een unieke locator te bepalen voor een element.
Conclusie:
Een gave library die een aantal van ons zeker in gaat zetten bij de klant.
ChatGPT prompt engineering DeepDive:
Op 21 november duiken we verder in de wondere wereld van ChatGPT, en dan vooral in Prompt Engineering. Dit zodat je ook echt veel waarde kunt halen uit ChatGPT in je dagelijkse werkzaamheden.
Ben jij er ook bij? Meld je aan bij Andre of houd onze meetup pagina in de gaten.