info@brightest.be
+32 3 450 88 42

Automation Thursday

Brightest > What about TestCafe?

What about TestCafe?

Posted by: Koen
Category: Business, Test automation

 

Selenium is een van de meeste bekende tools voor test automation, met rede natuurlijk: enorme community, veel beschikbare frameworks, veel gesupporteerde talen, … Maar er zijn ook een aantal nadelen, in vele gevallen is er toch heel wat setup nodig, denk maar aan het installeren en configureren van frameworks of plugins.

Bij DevExpress, een software development bedrijf dat user controls voor mobiele web applicaties ontwikkelt, werd in eerste instantie voor het testen van deze controls gebruik gemaakt van Selenium.  Ze kregen echter moeilijkheden met het ondersteunen van de verschillende browser types en browser versies.  Deze controls moeten namelijk niet alleen ondersteund worden door verschillende browser types, maar ook door verschillende versies van deze browser types.  Hierdoor moeten heel wat regressietesten uitgevoerd worden op verschillende configuraties (browser type – browser version), het moet dus snel en eenvoudig zijn om te kunnen testen tegen deze configuraties.  En dit is exact waarom TestCafe is ontwikkeld, om op een eenvoudige manier testen tegen een groot aantal verschillende browser versies te kunnen uitvoeren.

TestCafe is ontwikkeld in JavaScript/NodeJS, dus makkelijk te installeren en ook cross-platform te gebruiken.  Het is onafhankelijk van Selenium of WebDriver, wat zorgt voor een eenvoudige setup zonder talloze drivers ter ondersteuning van de verschillende browsers.  Door het injecteren van scripts in  de browsers is het mogelijk om met de applicatie te communiceren, acties uit te voeren, te interageren met alerts en file uploads.  Dit betekent dat TestCafe met elke browser overweg kan die HTML5 ondersteunt, zonder dat er daarvoor extra drivers of plugins moeten worden geïnstalleerd en geconfigureerd.  Naar onderhoud toe kan dit belangrijk zijn, want dit betekent ook minder onderhoud om steeds de laatste versies van de te ondersteunen browsers te updaten in je test automation setup.  Bovendien zorgt dit er voor dat je testen ook in de cloud kunnen worden uitgevoerd (bijvoorbeeld BrowserStack of SauceLabs).  Meer nog, je kan een test uitvoeren op een machine waar TestCafe niet op geïnstalleerd is, het enige wat je nodig hebt is een netwerk connectie tussen beide machines.  Heel interessant wanneer je even snel een bug wil demonstreren aan een developer.

Daar Selenium een automation library is, is TestCafe een test framework.  Een framework met zijn eigen test runner, met standaard CSS selectors om de web elementen te identificeren, met specifieke plugins voor bijvoorbeeld Angular, React en Vue om ook de componentnamen als selector te kunnen gebruiken.  Er wordt ook gebruik gemaakt van een impliciet auto-wait mechanisme, wat betekent dat TestCafe automatisch wacht tot requests zijn afgehandeld en pagina’s volledig geladen zijn.  TestCafe heeft een cloud-based webapplicatie met een visualisatie van de testen en een record-and-playback functionaliteit, maar daarnaast is er ook een standalone versie, genaamd TestCafe Studio.  Bovendien kan je via TestCafe Studio de testen ook parallel uitvoeren op verschillende browsers.  Het TestCafe framework kan ook nog worden uitgebreid met TestCafe Live, een service die TestCafe en de bijhorende browser open houdt en de wijzigingen aan je testcode automatisch uitvoert en een rapport met de resultaten genereert.  Doordat je niet telkens de browser moet opstarten, kan je heel wat tijd winnen bij het uitvoeren van jouw aanpassingen aan de testen (demo).

Zoals elke tool heeft ook TestCafe enkele nadelen: enkel bruikbaar met Javascript/Typescript, je hebt een licentie nodig om de tool ten volle te kunnen gebruiken, doordat het gaat om een recente tool is de community niet te vergelijken met deze van bijvoorbeeld Selenium.  TestCafe is, net als Cypress trouwens, een framework in ontwikkeling, wat betekent dat er soms nog foutjes kunnen in voorkomen of dat bepaalde features nog ontwikkeld moeten worden.  Voorlopig krijgt Selenium nog mijn voorkeur, maar er zijn ongetwijfeld situaties waar je een grote testset moet uitvoeren op heel veel types en versies van browsers, en misschien dat TestCafe dan wel een beter oplossing is dan Selenium …

 

Voor meer informatie omtrent de tool kan je terecht op de website van TestCafe, TestCafe Studio en TestCafe Live.  Zowel TestCafe als TestCafe Studio beschikken op hun website over uitgebreide documentatie die je op weg kan helpen bij je eerste ervaring met deze tools.

 

Enjoy!!

Frederique