Gebruik Testspecificatie Excel testscript template Samenstellen GUI map Opstellen testcases/teststappen Overzicht beschikbare Selenium acties Gebruik van variabelen Generieke functies definiëren Custom tabel definities Testuitvoering Importeren Excel testscript Nieuwe test run aanmaken Test run starten Command-line testuitvoering Rapportage Koppelen van defects aan gefaalde teststeps
6 6 6 7 9 10 15 16 16 18 18 18 19 19 20 20
4
Beheer applicaties
21
5 5.1 5.2 5.3
Configuratie Selenium Database Logging
22 22 22 22
Selenium .NET test suite
1
Inleiding
Selenium is een verzameling van open source testautomatisering tools gericht op het testen van webapplicaties/-sites. Selenium bestaat o.a. uit: • “Selenium IDE”, een record/playback add-on in Firefox; • “Selenium WebDriver”. Webdriver bestaat uit een API waarmee verschillende browsers (Firefox, Internet Explorer en Chrome) direct aan te sturen zijn vanuit diverse programmeertalen (zoals .NET en Java). • “Selenium Server”. Middels Selenium Server kan een test uitgevoerd worden m.b.v. de gui-less browser HtmlUnit. Op die manier wordt command-line testuitvoering ondersteund. Voor meer informatie over Selenium, zie http://www.seleniumhq.org/docs/ .
De Selenium .NET test suite biedt de krachtige mogelijkheden van testautomatisering m.b.v. Selenium WebDriver zonder dat daar kennis van een programmeertaal zoals Java of .NET voor nodig is. De test suite bestaat uit een Excel testscript template en een .NET test tool die Selenium WebDriver aanstuurt. De Excel sheet bevat o.a. de mogelijkheid om een Selenium IDE testscript te importeren. De belangrijkste voordelen van de test suite (en deels van Selenium WebDriver) ten opzichte van Selenium IDE zijn: • Support voor andere browsers (dan Firefox); • Volwaardige, leesbare en goed onderhoudbare testscripts in Excel; • Testscripts kunnen bestaan uit meerdere testcases die op hun beurt weer uit meerdere teststappen kunnen bestaan. Deze testcases zijn selectief en los van elkaar uit te voeren; • Rapportage functionaliteit, in de tool zelf en middels een export naar MS-Excel; • Mogelijkheid om herbruikbare functies (bestaande uit meerdere teststappen) te definiëren; • Conditioneel uitvoeren van teststappen; • Maken van screenshots gedurende de testuitvoering; • Betere foutafhandeling; • Hulpmiddel om ongesorteerde lijsten/tabellen te kunnen controleren; • Command line testuitvoering m.b.v. HtmlUnit gui-less browser; • Mogelijkheid om (known) defects (in de vorm van een link naar een bevindingenadministratie) te koppelen aan teststappen.
Pagina
3/22
Selenium .NET test suite
Schematische weergave van de Selenium .NET test suite
Pagina
4/22
Selenium .NET test suite
2
Installatie
2.1 Systeemeisen • Microsoft Windows XP, 2003, Vista of 7; • Microsoft .NET framework 3.5 SP1 (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ab99342f-5d1a-413d-831981da479ab0d7); • Microsoft Office Excel 2007 of hoger. Indien er geen Office beschikbaar is, of de Office versie niet compatible blijkt te zijn, installeer dan de volgende Microsoft component http://www.microsoft.com/enus/download/confirmation.aspx?id=23734
2.2 Installatie Voer de volgende stappen uit om de Selenium .NET test suite te installeren: 1) Kopieer het ZIP-bestand met de Selenium .NET test suite (SeleniumTestsuite.NET.zip) naar een map op de lokale harde schijf. 2) Pak het bestand uit naar een map naar keuze. 3) Maak een snelkoppeling naar SeleniumTestsuiteUpdater.exe in de map uit stap 2. 4) Start Selenium .NET test suite middels de snelkoppeling uit stap 2. Mogelijk wordt nu automatisch de actuele versie gedownload en geïnstalleerd. 5) Open het instellingen scherm via de menubalk File → Preferences 6) Klik op de tab “Selenium” 7) Geef onder de kop “Browser executables” de executables op van de browsers waarmee getest moet kunnen worden (bv. C:\Program Files\Mozilla Firefox\firefox.exe). 8) Bevestig de gewijzigde instellingen met de OK knop 9) Sluit de applicatie 10) De installatie is nu voltooid.
Pagina
5/22
Selenium .NET test suite
3
Gebruik
3.1
Testspecificatie
3.1.1 Excel testscript template De Excel testscript template (SeleniumTestsuite Testscript.xlsm) wordt gebruikt om de testgevallen (logisch en fysiek) en teststappen vast te leggen. Let op, het is belangrijk om direct na het openen van de Excel sheet de macro's in te schakelen. Het testscript bestaat uit de volgende werkbladen: 1) Voorblad; algemene informatie over het testobject, de testbasis en versiebeheer. 2) Draaiboek; het draaiboek voor de testuitvoering. 3) LT; de logische testgevallen. 4) FT Selenium; de testcases/-stappen die geautomatiseerd uitgevoerd zullen worden. Zie paragraaf 3.1.3 en 3.1.4 5) FT handmatig; de testcases/-stappen die handmatig uitgevoerd zullen worden. Bv. omdat deze testgevallen niet of moeilijk te automatiseren zijn. 6) Variabelen; vooraf gedefinieerde variabelen die in de teststappen gebruikt kunnen worden. Zie paragraaf 3.1.5 7) Custom functies; generieke functies bestaande uit een testcase met één of meerdere teststappen. Zie paragraaf 3.1.6 8) Custom tabel definities. Zie paragraaf 3.1.7 9) GUI map; De GUI map is een vertaling tussen de element locators (zie ook par 3.1.2.2), waarmee Selenium de webapplicatie html elementen kan identificeren, en leesbare, zelf verklarende scherm- en element namen. Zie paragraaf 3.1.2 10) Parameters; dit werkblad bevat parameters t.b.v. een correcte werking van de testscript sheet. Dit werkblad mag niet gewijzigd worden. Let op, voeg op de verschillende werkbladen geen nieuwe kolommen toe vóór of tussen de bestaande kolommen in (na de bestaande kolommen kan wel). De import van het testscript in de .NET test tool zal dan mogelijk niet meer werken.
Pagina
6/22
Selenium .NET test suite
3.1.2 Samenstellen GUI map De GUI map is een vertaling tussen de element locators (zie ook par 3.1.2.2), waarmee Selenium de html elementen van de webapplicatie kan identificeren, en leesbare, zelf verklarende scherm- en element namen. Het gebruik van een GUI map heeft de volgende voordelen: 1) Diverse html elementen van een webapplicatie hebben automatisch gegenereerde id's (bv. ctl00_ctpContent_ZoekParlementair1_chkKamer_0) of zijn alleen middels xpath of css te identificeren (bv. //div[@id='Inhoud']/div[5]/table/tbody/tr[2]/td[1]/a). Om een testscript leesbaar en begrijpelijk, en dus beter onderhoudbaar, te houden is een zelf verklarende, functionele naam wenselijk, zoals bv. 'Checkbox.Organisatie.Eerste Kamer'. Daarnaast worden ook de verschillende schermen van de te testen webapplicatie gedefinieerd in de GUI map. De combinatie van een schermnaam en een zelf verklarende, functionele element naam maakt het voor de tester makkelijk om een element te identificeren. 2) Indien de element locator van een bepaald html element wijzigt (bv. bij een nieuwe release) dan hoeft deze slechts op één plek in het testscript gewijzigd te worden. 3.1.2.1 Werkwijze samenstellen GUI map 1) Gebruik de Selenium IDE add-on in Firefox om een (deel van de) test op te nemen. 2) Sla het Selenium IDE script op in HTML formaat (File → Export Test Case As → HTML). 3) Kies in de Excel sheet op het werkblad 'GUI map' voor 'Selenium IDE script importeren' en selecteer het in stap 2 opgeslagen testscript. 4) Alle webapplicatie elementen die in het testscript voorkomen worden nu toegevoegd aan de GUI map (kolom A). 5) Het kan voorkomen dat bepaalde elementen niet correct herkend worden door Selenium IDE, zie in dat geval de volgende paragraaf voor het zelf samenstellen van een element locator. 6) Voorzie ieder element vervolgens van: – de naam van het scherm waarop het element voorkomt (kolom B). Mocht een element met dezelfde element locator voorkomen op meerdere schermen dan is het aan te raden om dit element ook meerdere keren in de GUI map op te nemen (iedere keer met een andere schermnaam uiteraard). – een zelf verklarende, functionele element naam (kolom C). Het is aan te raden om de element naam te beginnen met het type element, bv. 'Button.Opslaan' of 'Checkbox.Onhoud mij'. Bepaalde Selenium acties zijn namelijk alleen mogelijk voor bepaalde typen elementen. 3.1.2.2 Element locator types Middels een element locator kan Selenium een specifiek html element identificeren. Het formaat van een element locator is: locator-type=argument De Selenium .NET test suite ondersteunt de volgende element locator types: 1) id=id Het element met het opgegeven id attribuut. Het opgegeven id kan een regular expression zijn (zie par 3.1.2.3).