Testautomatisering met Selenium

Testautomatisering met Selenium

Selenium IDE is een tool om browsers te automatiseren qua softwaretesten. Het wordt vooral gebruikt voor testdoeleinden en dan met name de testautomatisering van web applicaties (in the cloud). Er zijn twee applicaties van Selenium te weten: Selenium IDE en Selenium Web Driver (de vervanger van Selenium Remote Control).

Selenium IDE

Selenium IDE staat voor Integrated Development Environment. Selenium IDE is een add-on voor FireFox waarmee het mogelijk is simpele Record en Play activiteiten los te laten op de browser. Dit kan gebruikt worden voor scripts voor bug reproduction of bijvoorbeeld geautomatiseerde scripts voor exploratory testing, kortom: test automatiseren. Maar Selenium leent zich ook voor regressietesten echter kan dit wel bewerkelijk worden. Voor de grotere complexere testen is het raadzaam om te kijken of Selenium WebDriver kan worden ingezet.

Een testsuite bestaat uit 1 of meerdere testcases. Het is mogelijk om de gehele suite uit te voeren of elke testcase apart. Verder is het mogelijk om naast de record and play functionaliteit ook gebruik te maken van voor geprogrammeerde commands. Ook opgenomen scripts kunnen later worden aangepast/aangevuld middels deze commands. Een testcase bestaat eigenlijk alleen uit deze commands.

In het onderstaande voorbeeld ziet u een testsuite. In de linker kolom staan de testcases die binnen de testsuite zijn opgenomen en de rechter kolom bevat de commands van de geselecteerde testcase.

Er zijn 3 manieren om testcases te maken, te weten:

  1. Recording
  2. ‘Adding Verifications and Asserts With the Context Menu’
  3. Editing.

1. Opnemen (recording)

Bij het opnemen zal de softwaretester vooral gebruik maken van de acties ‘klikken op een link’, het ‘invullen van de tekstvelden’, het ‘selecteren van keuzes ‘(bijvoorbeeld dropdown) en ‘klikken op check boxes en radio buttons’. Verder dient men er rekening mee houden dat het klikken van een link vaak een nieuwe pagina opent. Standaard wordt het command Click gebruikt. Het is in dit geval beter om dit te veranderen in ClickAndWait zodat de pagina eerst volledig wordt geladen om zo het gevaar tegen te gaan dat de testcases falen omdat de pagina niet volledig is geladen.

Het opnemen werkt heel eenvoudig. Standaard staat de recordbutton (Rode knop recht boven) al geactiveerd. Na het starten van IDE kan dus direct worden begonnen met het opnemen van de test. Om de opname te stoppen kan de gebruiker nogmaals op de record button drukken om deze te stoppen of te pauzeren.

2. Gebruikmaken van het context menu (Adding Verifications and Asserts)

Met Selenium IDE geactiveerd is het mogelijk om via het context menu (rechtermuisknop) commands toe te voegen. De gebruiker kan bijvoorbeeld kiezen om tekst te verifiëren of om geselecteerde tekst in een variabele op te slaan. Wanneer er een optie wordt geselecteerd, zal deze verschijnen als command in de openstaande testcase. Het is niet noodzakelijk om een opname te starten om van deze functionaliteit gebruik te maken.

3. Bewerken

Nadat de gebruiker een test heeft opgenomen is het mogelijk deze in Selenium IDE te bewerken. De gebruiker kan commands wijzigen, verwijderen en toevoegen en zo de test naar wens in richten. Ook kan de gebruiker op deze manier de opgenomen test onderhouden wanneer er een wijziging wordt doorgevoerd in bijvoorbeeld een menu-naam. Het is dan niet nodig om de hele opname opnieuw te starten.

Als de test naar wens is en volledig kan worden doorlopen, is het mogelijk om deze test te exporteren in de gewenste programmeertaal zodat de test kan worden geïmplementeerd in  Selenium WebDriver of RC. Als de gebruiker dit wil gaan doen is een ingerichte ontwikkelomgeving noodzakelijk. Ook is enige programmeerkennis vereist.

Het gebruik van IDE zoals het opnemen van tests is alleen mogelijk met behulp van FireFox aangezien het een add-on is die alleen voor deze browser is beschikbaar gesteld. WebDriver en RC ondersteunen ook de andere platformen.

Selenium WebDriver

Selenium Webdriver is een library van classes (bindings) die kan worden toegevoegd aan de library van de programmeertaal. De manier waarop Selenium Webdriver kan worden toegepast is afhankelijk van de ontwikkelomgeving en/of gekozen programmeertaal. Tijdens het programmeren worden de classes van Selenium gebruikt om de geschreven code meteen te testen. In principe begint de ontwikkelaar eerst met het ontwikkelen van de test-code en vervolgens de reguliere code volgens TDD (Test Driven Development).

Selenium WebDriver wordt ook wel Selenium 2.0 genoemd. Het is een tool die wordt gebruikt bij het geautomatiseerd testen van web applicaties en dan met name om te verifiëren of de web applicaties werken zoals verwacht.

Om gebruik te maken van de WebDriver is het van belang dat er een volledig ingerichte ontwikkelomgeving aanwezig is zoals een volledige ingerichte .NET omgeving of Java-omgeving (op de website van selenium is te vinden welke technieken allemaal worden ondersteund). Vervolgens zullen de bindings moeten worden toegevoegd aan deze ontwikkelomgeving, deze bindings zijn ook te vinden op de website van Selenium.

Omdat de classes van selenium direct vanuit de programmeercode worden aangeroepen is enige programmeerkennis in de gekozen taal eigenlijk wel nodig.

Selenium Remote Control (uitgefaseerd)

Selenium Remote Control ofwel Selenium 1.0 werd gebruikt om automatische tests te schrijven in een programmeertaal. RC bestaat uit twee delen:

1. Een server die automatisch web browsers kan aanroepen en web requests kan versturen

2. Library voor de gekozen programmeertaal.

De Testmanager BV kan u helpen met het implementeren van een tool voor testautomatisering zoals Selenium voor geautomatiseerd testen. Neemt u contact met ons op (contactgegevens linksonderaan) voor een voorbeeld of meer informatie.

Andere tools die geschikt kunnen zijn, zijn bijvoorbeeld: soapUI, loadUI (voor load testen/performancetesten) en de modules van HP Quality Center zoals QTP.