Selenium.NET test suite. Handleiding



Vergelijkbare documenten
Selenium IDE Webdriver. Introductie

Werken op afstand via internet

AFO 142 Titel Aanwinsten Geschiedenis

INSTALLATIE EXCHANGE CONNECTOR

Werking van de Office Connector, en het oplossen van fouten.

Technische nota AbiFire5 Rapporten maken via ODBC

DrICTVoip.dll v 2.1 Informatie en handleiding

HANDLEIDING DMS Plugin Installatie, configuratie & werking

Installatie en configuratie documentatie

Installatiehandleiding Windows XP / Vista / Windows 7

ALL-CRM Installatie handleiding

uziconnect Installatiehandleiding

Handleiding helpdesk. Datum: Versie: 1.0 Auteur: Inge van Sark

Gebruikers handleiding. Lizard Configuration Manager ToolTip. Installatie. Instellen. Initieel instellen

Handleiding Installatie en Gebruik Privacy- en Verzend Module Stichting Farmaceutische Kengetallen

Macro s. 4.2 Een macro maken

Handleiding installatie Rental Dynamics

Intramed OnLine instellen en gebruiken. Voor Android tablet of telefoon

uziconnect Installatiehandleiding

Login scherm : - Ingave van gebruikersnaam (user name) en paswoord (password) - Druk op Login toets om in te loggen

Installatie handleiding Reinder.NET.Optac

Handleiding. Handleiding

Installatie- en gebruikshandleiding Risicoverevening. 11 april 2007 ZorgTTP

Handleiding Coligo Connect installatie en gebruik

Handleiding importeren HDN-browsercertificaat

Installatie en configuratie 1.1. Licentie Systeem. Dé specialist in ruimtelijke informatievoorziening

Installatiehandleiding Privacy- en Verzendmodule DIS voor Windows, Mac OS en Linux

Installatiehandleiding King Webservices 2.0

Technische nota AbiFire Rapporten maken via ODBC

Intramed OnLine instellen en gebruiken. Voor Mac OSX

Handleiding. Certificaat installeren

Selenium IDE Webdriver. Aan de slag

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

Handleiding Importeren/ Exporteren Brouwvisie (& pro)

Gemeente Haarlemmermeer. Leer zelf je nieuwsbrief maken in YMLP. Opgesteld door: drs. Mariska I.R. Franse Datum: 6 en 11 juni 2013

Priva Blue ID Network scanner / Syslog Tool

Handleiding voor het installeren van VBA scripts in Outlook

Uursoortfinanciering importeren

Met deze module heeft u de mogelijkheid om gemakkelijk, snel en efficiënt uw documenten als naslag in Unit 4 Multivers te koppelen.

Externe toegang met ESET Secure Authentication. Daxis Versie 2.0

MA!N Rapportages en Analyses

Installatiehandleiding. ixperion Word Import. voor Windows 2008 R2 64bit. Smartsite ixperion WordImport Implementatie. Copyright

Nieuwe Installatie/Factuur2King bijwerken

Gebruikershandleiding. StUF Testplatform Versie 1.3.0

Acht stappen voor JSF

Testoptimal. Een korte introductie... Werkgroep: Model Based Testing Datum: 30 april 2015

Fuel. Handleiding voor installatie en gebruik

AFO 139 Automatische export

Installatie SQL: Server 2008R2

OpenVPN Client Installatie

Bitrix Site Manager gebruikershandleiding BureauZuid

Handleiding. Certificaat installeren

Bijlage Inlezen nieuwe tarieven per verzekeraar

Downloaden beveiligingscertificaat BRON Voor Windows versies vanaf Windows Vista

Central Station. CS website

Handleiding Sportlink Club

Handleiding Certificaat installeren

Coligo conne ct. Gebruikershandleiding

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at

Xiris handleiding Onderhoudsmodule & database onderhoud

Net2CountedAccess. Handleiding 1.0

Gebruikers Toevoegen. EasySecure International B.V. +31(0) Support.EasySecure.nl. v

Installatie King Task Centre

Installatiehandleiding Easy-Car

Intramed OnLine instellen en gebruiken. Voor Android tablet of telefoon

Calculatie tool. Handleiding. Datum Versie applicatie 01 Versie document

Datum: Gemaakt door: Berend de Groot Voor: ComSi, ROC Friese Poort

Upgrade Accowin van versie 1 naar versie 2

Documentatie. Remote Access Voorziening Etam (RAVE)

Handleiding gebruik Citymail

15 July Betaalopdrachten web applicatie gebruikers handleiding

Handleiding Reinder.NET.Tasks.SQL versie 2

Gebruikershandleiding UNIT4 DataCollector

Handleiding Installatie en Gebruik Privacy -en Verzend Module Netwerk Acute Zorg Zwolle

Handleiding Migratie. Bronboek Professional

Handleiding. Act! SnelStart Connect. handleiding. Act! SnelStart Connect. Versie

Handleiding Formulieren in TYPO3 Versie 1.2, 18 juli 2008

KraamZorgCompleet OnLine instellen en gebruiken. Voor Mac OSX

AUTOMATISERING. Act! WerkbonApp. De koppeling tussen het CRM systeem Act! en de Werkbon applicatie WerkbonApp.

Handleiding CrisisConnect app beheersysteem

Globale kennismaking

NetPay Desktop Reporting. Rapportage voor Xafax NetPay

ACT! link XL voor SnelStart handleiding

Handleiding ISaGRAF. Wil men het programma bewaren, dan is het verstandig een back-up te maken: C9 Back-up / Restore

Handleiding voor Zotero versie 2.0

Tips & Trucs ARCHICAD 117: Programma van Eisen add-on voor KeyMembers

DuboCalc 4.0. Installatie instructie

Nummerblokken tool. Gebruikershandleiding. Openbare informatie. Datum 17 maart Auteur Arjen Knibbe. Telefoon Versie 1.

Op de Virtual Appliance is MySQL voorgeïnstalleerd. MySQL is momenteel de meest gebruikte database op het internet.

Handleiding. Act! SnelStart Connect Pro. handleiding. Act! SnelStartConnect Pro. Versie

Nieuwe Installatie/Factuur2King bijwerken

Handleiding. Handleiding

Inhoudsopgave. versie 0.8

Installatiehandleiding. Facto minifmis

Handmatig je lokale mailbox migreren

Gebruikers- handleiding Porta


Handleiding installatie Visual Rental Dynamics

Transcriptie:

Handleiding Auteur: A. van der Smeede Versie: 1.4 Datum: 21 januari 2015

Inhoudsopgave 1 Inleiding 3 2 Installatie 5 2.1 Systeemeisen 5 2.2 Installatie 5 3 Gebruik 6 3.1 Testspecificatie 6 3.1.1 Excel testscript template 6 3.1.2 Samenstellen GUI map 7 3.1.3 Opstellen testcases/teststappen 9 3.1.4 Overzicht beschikbare Selenium acties 10 3.1.5 Gebruik van variabelen 15 3.1.6 Generieke functies definiëren 16 3.1.7 Custom tabel definities 16 3.2 Testuitvoering 18 3.2.1 Importeren Excel testscript 18 3.2.2 Nieuwe test run aanmaken 18 3.3 Test run starten 19 3.4 Command-line testuitvoering 19 3.5 Rapportage 20 3.5.1 Koppelen van defects aan gefaalde teststeps 20 4 Beheer applicaties 21 5 Configuratie 22 5.1 Selenium 22 5.2 Database 22 5.3 Logging 22

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. 3/22

Schematische weergave van de Selenium.NET test suite 4/22

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-8319-81da479ab0d7); 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. 5/22

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. 6/22

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). 7/22

2) identifier=id Het element met het opgegeven id attribuut. Indien er geen element gevonden kan worden, dan wordt het element genomen waarvan het name attribuut overeenkomt met het opgegeven id. 3) name=name Het eerste element met het opgegeven name attribuut. 4) xpath=xpathexpression Identificeer het element door gebruik te maken van een Xpath expression. Enkele voorbeelden van xpath expressions zijn: xpath=//img[@alt='the image alt text'] xpath=//div[@id='inhoud']/div[5]/table/tbody/tr[2]/td[1]/a 5) link=text Identificeer het link (<a>) element dat de opgegeven text bevat. 6) css=cssselector Identificeer het element door gebruik te maken van css selectors. Enkele voorbeelden van css selectors zijn: css=a[href= #id3 ] css=div.classname Indien een element locator geen locator-type prefix (id=, css= etc.) bevat, dan worden de volgende types verondersteld: xpath, indien de locator start met // identifier, in alle andere gevallen Voor het handmatig samenstellen van element locators is de Firefox Firebug add-on aan te raden. M.b.v. deze add-on is een element te inspecteren (rechterklik op het element Element inspecteren) en de xpath of css locator terug te vinden (rechterklik op de html code in het Firebug scherm Xpath/Css-pad kopieren). 3.1.2.3 Dynamische component id's Het kan voorkomen dat een webapplicatie aan bepaalde elementen een dynamisch id toekent (denk bijvoorbeeld aan een database-id als onderdeel van het element id). Dit betekent dat het id van het desbetreffende element iedere test run anders zal zijn. In een dergelijk geval is het mogelijk om een regular expression in de element locator op te nemen. Neem bijvoorbeeld het element id 'ctl00_ctpinhoudrasterbreed_ctl00_metadata12345' waarbij 12345 een dynamisch nummer is. In de GUI map kan dan de volgende element locator opgenomen worden: regexp:ctl00_ctpinhoudrasterbreed_ctl00_metadata.* Let wel, een regular expression werkt alleen in combinatie met een id element locator type (en dus niet met een xpath, css locator etc.). 8/22

3.1.3 Opstellen testcases/teststappen Het FT Selenium werkblad bevat alle testcases/-stappen die geautomatiseerd uitgevoerd kunnen worden m.b.v. de Selenium test tool. Het werkblad bevat de volgende informatie/kolommen: 1) Logisch testgeval nummer Dient te verwijzen naar een logisch testgeval op het werkblad LT. 2) Fysiek testgeval nummer 3) Test stap nummer Dit nummer dient voor iedere testcase bij 1 te starten en nummert door tot de laatste test stap van de testcase. 4) Actie De, door de Selenium test tool, uit te voeren actie. Zie par 3.1.4 voor een overzicht van de beschikbare acties. 5) Scherm en Element naam De scherm en element naam combinatie identificeren een uniek element. De combinatie van scherm en element naam dient in de GUI map voor te komen. 6) Attribuut Geeft aan dat de opgegeven actie uitgevoerd dient te worden op een specifiek attribuut van het opgegeven element. 7) Waarde De verwachte waarde of de waarde die aan de opgegeven actie meegegeven wordt. Zie par 3.1.4 voor de specifieke invulling per actie. 8) Stop de testcase in het geval dat deze test stap faalt Indien dit veld de waarde Ja/J bevat, dan wordt de testuitvoering van de gehele testcase gestopt zodra deze test stap faalt (en wordt de eerstvolgende testcase uitgevoerd). Indien dit veld leeg is dan wordt Nee verondersteld. 9) Niet rapporteren Indien dit veld de waarde Ja/J bevat, dan wordt het resultaat van deze test stap niet gerapporteerd (ongeacht of de test stap geslaagd of gefaald is). Indien dit veld leeg is dan wordt Nee verondersteld. 10) Conditie Indien dit veld een conditie bevat, dan wordt deze test stap alleen uitgevoerd indien deze conditie Waar is. Voorbeelden van geldige condities zijn: ${Datum variabele in formaat yyyy-mm-dd} == 2010-08-01 ${Tijd variabele in formaat hh:mm} > 12:30 ${Variabele} <= 100 ${Variabele}!= 99 ${Variabele} == Tekstwaarde Er kunnen maximaal 2 condities gescheiden door AND of OR opgegeven worden. 11) Known defect Neem hier een hyperlink op naar een evt. known defect in de bevindingenadministratie m.b.t. deze test stap. Op die manier is in één oogopslag te zien dat er reeds een defect aangemaakt is voor het falen van deze test stap. Let wel, in de testresultaten wordt de link naar het defect alleen getoond als de desbetreffende test stap daadwerkelijk gefaald is. Zie par 3.1.5 voor een uitleg over het gebruik van variabelen in het testscript. 9/22

3.1.3.1 Werkwijze importeren testcases/-stappen 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 'FT Selenium' voor 'Selenium IDE script importeren' en selecteer het in stap 2 opgeslagen testscript. 4) Alle teststappen die in het Selenium IDE script voorkomen worden nu toegevoegd aan het werkblad. Voorwaarde is wel dat het Selenium IDE script al geïmporteerd is in de GUI map (zie par 3.1.2.1) en alle elementen in de GUI map zijn voorzien van een scherm- en element naam. 5) De testcases zijn vervolgens uiteraard uit te breiden c.q. aan te passen in de Excel sheet. De Selenium IDE import is met name bedoeld om snel (m.b.v. de record functionaliteit in Selenium IDE) tot een initiële testcase te komen die vervolgens uitgebreid/onderhouden kan worden in de Excel sheet. 3.1.4 Overzicht beschikbare Selenium acties De volgende Selenium acties zijn beschikbaar in de Selenium.NET test suite: 1) Accept IE certificate warning Accepteert (m.b.v. javascript) het waarschuwingscherm in Internet Explorer i.g.v. een ongeldig SSL certificaat op een website. Voor deze actie zijn geen element en waarde benodigd. 2) Browser back button Simuleert het gebruik van de browser back/terug knop. Voor deze actie zijn geen element en waarde benodigd. 3) Clear cookies Verwijdert alle cookies gerelateerd aan de te testen website. Voor deze actie zijn geen element en waarde benodigd. 4) Click Voert een muisklik op een element uit. Voor deze actie is een element verplicht. 5) Doubleclick Voert een doubleclick op een element uit. Voor deze actie is een element verplicht. 6) Execute Javascript Voert een javascript code fragment uit in de browser. Als waarde dient de uit te voeren javascript code opgegeven te worden. 7) Function call Roept een functie gedefinieerd in het werkblad Custom functies aan. Voor deze actie is een element niet benodigd. Als waarde dient de naam van de functie en eventuele functie parameters (tussen haakjes) opgegeven te worden, bv.: Bestel een product(boek, De Aanslag) 10/22

8) Load variables from testrun Laad de opgeslagen variabelen van een reeds uitgevoerde testrun. Op deze manier kunnen variabelen gedeeld worden tussen verschillende testscripts. Als waarde dient de naam opgegeven te worden van het testscript waarvan de variabelen geladen dienen te worden. De laatst uitgevoerde testrun van dat testscript zal geladen worden. 9) Log error Log een foutmelding met als omschrijving de opgegeven waarde. Deze test stap faalt dus altijd en wordt daarom in combinatie met een Conditie (Zie par 3.1.3 punt 10) gebruikt. 10) Loop en Loop end Alle teststappen tussen een 'Loop' en een 'Loop end' worden n keer uitgevoerd. n dient als waarde meegegeven te worden aan de 'Loop' actie. Een loop constructie is met name bedoeld om in combinatie met een testdata set gebruikt te worden. Voor deze actie is waarde dus verplicht. 11) Move mouse to element Beweegt de muiscursor naar het opgegeven element. Deze actie kan bijvoorbeeld gebruikt worden om een onmouseover functionaliteit te kunnen controleren. Voor deze actie is element verplicht. 12) Open url Benadert de, in het waarde veld, opgegeven url alsof een gebruiker deze url zelf in de url balk van de browser ingetypt heeft. Ieder testscript en bij voorkeur iedere testcase (indien iedere testcase afzonderlijk uitgevoerd moeten kunnen worden) dient met een Open url actie te beginnen. 13) Popup confirm Accordeert (indien de opgegeven waarde OK is) of annuleert (indien de opgegeven waarde CANCEL is) een popup. Voor deze actie is waarde verplicht. 14) Reload page Voert een refresh op de webpagina uit. Voor deze actie zijn geen element en waarde benodigd. 15) Select Selecteert een waarde in een dropdown lijst. Selecteren van een waarde in dit element heeft geen reload/refresh (van dezelfde of een andere webpagina) tot gevolg. Voor deze actie zijn zowel element als waarde verplicht. 16) Select frame Selecteert een frame waarop de daarop volgende teststappen uitgevoerd worden. Het is mogelijk een element locator van het frame op te geven of (in het waarde veld) de naam van het frame op te geven. 17) Select window Selecteert een browser window waarop de daarop volgende teststappen uitgevoerd worden. Het is mogelijk een element locator of een waarde op te geven. In geval van een element locator wordt het window geselecteerd waarop dit element zich bevindt. In geval van een opgegeven waarde wordt het window geselecteerd waarvan de titel overeenkomt met de waarde. 18) SendKeys Voert een toetsaanslag uit. Voor deze actie is een element optioneel. Indien een element opgegeven wordt, dan wordt de toetsaanslag op dit specifieke element uitgevoerd (bv. een <Enter> in een textbox). Als waarde dient de key code opgegeven te worden, in het werkblad Variabelen staan default de key codes van <ENTER> en <TAB> opgegeven. 11/22

19) Set variable Zet de waarde van een opgegeven variabele. Als waarde dient de naam v/d variabele en de nieuwe waarde, gescheiden door een komma, opgegeven te worden. Bv. ${AANTAL}, ${AANTAL} - 1 ; in dit geval wordt de waarde van de variabele AANTAL verminderd met 1. 20) Start external process en Start external process and wait Deze actie start de executable die als waarde meegegeven is aan de actie en wacht eventueel totdat dit proces gereed is. Dit kan bijvoorbeeld een proces zijn om, voorafgaand aan de test, specifieke testdata in de testomgeving te laden. Voor deze actie is waarde dus verplicht. 21) Store element present Legt in een opgegeven variabele vast (true of false) of het opgegeven element bestaat op de huidige pagina. Voor deze actie zijn zowel element als waarde verplicht. In het waarde veld dient een variabele naam opgegeven te worden, bv. ${Bevestigen knop aanwezig} 22) Store text Legt de tekst van het opgegeven element vast in een opgegeven variabele. Voor deze actie zijn zowel element als waarde verplicht. In het waarde veld dient een variabele naam (${Variabele naam}) opgegeven te worden. Het is ook mogelijk om middels een regular expression slechts een deel van de tekst op te slaan in een variabele. In dat geval dient het waarde veld zowel de variabele naam als de regular expression te bevatten, gescheiden door een komma, bv. ${Telefoonnummer}, \d{2,4}-{0,1}\d{6,8} Voor html <input> elementen (textbox, dropdown lijst, checkbox etc.) dient de actie Store value gebruikt te worden. 23) Store url Legt de huidige url vast in een opgegeven variabele. Voor deze actie is alleen waarde verplicht. In het waarde veld dient een variabele naam (${Variabele naam}) opgegeven te worden. 24) Store value Legt de value van het opgegeven element vast in een opgegeven variabele. Voor deze actie zijn zowel element als waarde verplicht. In het waarde veld dient een variabele naam (${Variabele naam}) opgegeven te worden. Het is ook mogelijk om middels een regular expression slechts een deel van de value op te slaan in een variabele. In dat geval dient het waarde veld zowel de variabele naam als de regular expression te bevatten, gescheiden door een komma, bv. ${Telefoonnummer}, \d{2,4}- {0,1}\d{6,8} Deze actie is alleen bedoeld voor html <input> elementen, voor elementen van een ander type dient de actie Store text gebruikt te worden. 25) Take screenshot Neemt een screenshot van de huidige pagina. Voor deze actie zijn element en waarde niet benodigd. 26) Type Typt de opgegeven waarde in het opgegeven textbox element. Voor deze actie zijn zowel element als waarde verplicht. 27) Verify checkbox/radiobutton Controleert de status (on/off) van het opgegeven checkbox/radiobutton element. Voor deze actie zijn zowel element als waarde (on/off) verplicht. 12/22

28) Verify element attribute Controleert of het opgegeven attribuut (bv. href of src) van het opgegeven element overeenkomt met de opgegeven waarde. Voor deze actie zijn zowel element als waarde verplicht. 29) Verify element not present Controleert of het opgegeven element op dit moment niet op de webpagina zichtbaar is. Dit kan betekenen dat het desbetreffende element daadwerkelijk niet bestaat op de pagina, of dat het element wel bestaat maar verborgen is. Voor deze actie is alleen element verplicht. 30) Verify element present Controleert of het opgegeven element op dit moment zichtbaar is op de webpagina. Indien een element wel bestaat op de pagina maar niet zichtbaar is, dan zal deze actie falen. Voor deze actie is alleen element verplicht.verify file hash Controleert of de hash-code van een opgegeven bestand (in de vorm van een url) overeenkomt met de opgegeven waarde. Voor deze actie zijn zowel element als waarde verplicht. Het element moet een verwijzing zijn naar een bestand (eventueel het element met het attribuut href). Als waarde dient de verwachte hash-code opgegeven te worden. Met behulp van de Selenium test tool (Menu Tools Calculate hashcode) kan een hashcode van een bestand bepaald worden. Op dit moment is een belangrijke beperking van deze actie dat deze alleen werkt voor bestanden die vrij toegankelijk zijn (geen authenticatie voor nodig). 31) Verify file hash Controleert de hashcode van een bestand. Als element die een href element meegegeven te worden dat naar het te controleren bestand verwijst. Als waarde dient de verwachte hashcode meegegeven te worden. Op dit moment is deze actie beperkt tot bestanden die publiekelijk toegankelijk zijn (geen authenticatie benodigd). Dit aangezien het bestand gedownload worden buiten de Selen ium browser sessie om. 32) Verify popup text Controleert de tekst op het huidige (actieve) popup scherm. Voor deze actie is waarde verplicht. 33) Verify text Controleert of het opgegeven element de opgegeven waarde als text bevat. Voor deze actie zijn zowel element als waarde verplicht. Het is mogelijk om een regular expression in het waarde veld op te nemen, de waarde dient in dat geval te beginnen met regexp: of regexpi: (de laatste is een case-insensitive regular expression). Voor html <input> elementen (textbox, dropdown lijst, checkbox etc.) dient de actie Verify value gebruikt te worden. 34) Verify text not present Zie actie Verify text, in dit geval wordt er gecontroleerd of de opgegeven waarde niet overeenkomt. 35) Verify title Controleert of de titel van de webpagina overeenkomt met de opgegeven waarde. Voor deze actie is waarde verplicht. Het is mogelijk om een regular expression in het waarde veld op te nemen, de waarde dient in dat geval te beginnen met regexp: of regexpi: (de laatste is een caseinsensitive regular expression). 36) Verify url Controleer de huidige url a.d.h.v. de opgegeven waarde. Voor deze actie is alleen waarde verplicht. 13/22

37) Verify value Controleert of het opgegeven element de opgegeven waarde als value bevat. Voor deze actie zijn zowel element als waarde verplicht. Het is mogelijk om een regular expression in het waarde veld op te nemen, de waarde dient in dat geval te beginnen met regexp: of regexpi: (de laatste is een case-insensitive regular expression). Deze actie is alleen bedoeld voor html <input> elementen, voor elementen van een ander type dient de actie Verify text gebruikt te worden. 38) Verify value not present Zie actie Verify value, in dit geval wordt er gecontroleerd of de opgegeven waarde niet overeenkomt. 39) Wait Wacht een aantal seconden alvorens de test te vervolgen. Als waarde dient het aantal seconden opgegeven te worden. 40) Wait for element Wacht totdat het opgegeven element beschikbaar is op de webpagina alvorens de test te vervolgen. Voor deze actie is element verplicht. Deze actie is o.a. geschikt voor het testen van websites die gebruik maken van Ajax technologie. 41) Wait for element not present Wacht totdat het opgegeven element niet meer beschikbaar is. Voor deze actie is element verplicht. 42) Wait for text Wacht totdat de opgegeven tekst beschikbaar is op de webpagina alvorens de test te vervolgen. Voor deze actie is waarde (de tekst waarop gewacht dient te worden) verplicht en element optioneel. Indien een element opgegeven is, dan wordt er gewacht totdat dit element de opgegeven tekst bevat. Het is mogelijk om een regular expression in het waarde veld op te nemen, de waarde dient in dat geval te beginnen met regexp: of regexpi: (de laatste is een case-insensitive regular expression). Deze actie is o.a. geschikt voor het testen van websites die gebruik maken van Ajax technologie. 43) Wait for title Wacht totdat de titel van de webpagina overeenkomt met de opgegeven waarde alvorens de test te vervolgen. Voor deze actie is waarde verplicht. 44) Wait for value Wacht totdat het opgegeven element de opgegeven waarde als value bevat, alvorens de test te vervolgen. Voor deze actie zijn waarde (de value waarop gewacht dient te worden) en element verplicht. Deze actie is o.a. geschikt voor het testen van websites die gebruik maken van Ajax technologie. 45) # Comment Een commentaarregel. De tekst in het waarde veld wordt ter informatie getoond in de Selenium.NET test tool. 14/22

3.1.5 Gebruik van variabelen Variabelen kunnen vooraf gedefinieerd worden (op het werkblad Variabelen) of tijdens de testuitvoering gecreëerd worden (bv. met een Store text actie). Vervolgens kunnen deze variabelen verderop in het testscript gebruikt worden, bv. om een textbox te vullen met de waarde van een variabele. Een verwijzing naar een variabele dient de volgende syntax te hanteren: ${variabele naam} De volgende variabelen m.b.t. de actuele datum/tijd kunnen ten alle tijde in het testscript gebruikt worden: ${TODAY} vandaag in yyyy-mm-dd formaat ${TODAY}+n vandaag + n dagen ${TODAY}+nw vandaag + n werkdagen (${TODAY}).DAY de dag component van vandaag (${TODAY}).MONTH de maand component van vandaag (${TODAY}).YEAR de jaar component van vandaag (${TODAY}+n).DAY de dag component van vandaag + n dagen ${NOW} het actuele tijdstip in hh:mm formaat ${NOW}+n het actuele tijdstip + n uur (${NOW}).HOUR het uur component van het actuele tijdstip (${NOW}).MINUTE de minuut component van het actuele tijdstip (${NOW}+n).HOUR het uur component van het actuele tijdstip + n uur (${TODAY}).dateformat1 vandaag in dd-mm-yyyy formaat (${TODAY}).dateformat2 <dag v/d week voluit> dd <maand voluit> yyyy (${TODAY}).dateformat3 dd <maand voluit> yyyy ${OMGEVING} DEV, TST, ACC, PREPROD of PROD afhankelijk v/d omgeving waarop de test wordt uitgevoerd. ${BROWSER} IE, FIREFOX, CHROME, HTMLUNIT afhankelijk v/d browser waarmee de test uitgevoerd wordt. ${APPLICATION} De identifier van de applicatie (zie hfd. 4) die getest wordt. ${<identifier applicatie>} De url van de applicatie met de opgegeven identifier zoals geregistreerd in de Selenium test suite database (zie hfd. 4). De url is afhankelijk van de omgeving (test, acceptatie etc.) waarop een testrun uitgevoerd wordt. Deze variabelen worden op het moment van testuitvoering vervangen door de actuele datum/tijd. Variabelen kunnen in combinatie met andere tekst of variabelen gebruikt worden, bv.: (${NOW}).HOUR uur en (${NOW}).MINUTE minuten 15/22

3.1.6 Generieke functies definiëren Veel gebruikte combinaties van teststappen kunnen vastgelegd worden in een generieke functie die vervolgens aangeroepen kan worden vanuit het testscript (werkblad FT Selenium ). Een groot voordeel hiervan is dat de teststappen slechts op één plek vastgelegd zijn, dit komt de onderhoudbaarheid van het testscript ten goede. In de uiteindelijke rapportage wordt het resultaat van alle afzonderlijke teststappen in een functie getoond. Functies worden vastgelegd op het werkblad Custom functies en bestaan uit een functie naam en meerdere teststappen. De teststappen volgen dezelfde structuur als die op het werkblad FT Selenium, zie par 3.1.3. Aan de functie aanroep vanuit het FT Selenium werkblad kunnen één of meerdere parameters meegegeven worden, zie par 3.1.4 Function call. De waarden van de parameters kunnen in de functie gebruikt worden door de variabele ${PARAMETER_n} te gebruiken, waarbij n het volgnummer van de parameter (startend bij 1) is. 3.1.7 Custom tabel definities Het komt regelmatig voor dat een webapplicatie een lijst of tabel bevat waarbij voorafgaand aan de test niet te voorspellen is welke rij de gewenste (te testen/controleren) gegevens bevat. Dit kan bijvoorbeeld het geval zijn bij een ongesorteerde lijst/tabel en/of bij een webapplicatie waarvan de content/database inhoud niet vast staat (geen vaste test dataset). In dat geval is het mogelijk om in de Excel testscript sheet een eigen tabel te definiëren. M.b.v. deze tabel definitie kan vervolgens een element in een specifieke rij gevonden worden door een waarde op te geven die zich in één van de kolommen bevindt. De definitie en het gebruik van een dergelijke custom tabel is het makkelijkst uit te leggen aan de hand van een voorbeeld. Stel een webapplicatie bevat een de volgende lijst van namen en bijbehorende e-mailadressen en telefoonnummers. Voorafgaand aan de test is niet te voorspellen in welke volgorde deze namen in de lijst voorkomen of welke namen er überhaupt allemaal voorkomen in de lijst. Achternaam Voorletters E-mailadres Telefoonnummer Jaspers J. jjaspers@test.nl 06 11223344 Smeede A. asmeede@test.nl 06 55667788 Baak D. dbaak@test.nl 06 33445566 Voor deze lijst definiëren we een custom tabel in de Excel testscript sheet. Schermnaam Tabel naam Kolom1 Kolom2 Kolom3 Kolom4 Contactpagina Gebruikers Achternaam Voorletters E-mailadres Telefoonnummer 16/22

Deze tabel moeten we vervolgens voorzien van de element locators van iedere cel: Schermnaam Tabel naam Kolom1 Kolom2 Kolom3 Kolom4 Contactpagina Gebruikers Achternaam Voorletters E-mailadres Telefoonnummer id_row0_achtern id_row0_voorn id_row0_email id_row0_tel id_row1_achtern id_row1_voorn id_row1_email id_row1_tel id_row2_achtern id_row2_voorn id_row2_email id_row2_tel In het testscript kan nu een specifiek element gespecificeerd worden (in de Element naam kolom) volgens de volgende syntax: Tabelnaam.LookupComponent(Zoek in kolom, Zoek naar waarde, neem het element in kolom) Als we in bovenstaand voorbeeld het e-mailadres element behorende bij de gebruiker met achternaam Smeede willen hebben, dan kunnen we dat als volgt specificeren: Gebruikers.LookupComponent(Achternaam, Smeede, E-mailadres) De Selenium test tool zal in dat geval het element met id 'id_row1_email' vinden. 17/22

3.2 Testuitvoering 3.2.1 Importeren Excel testscript Een nieuw of gewijzigd testscript dient eerst geïmporteerd te worden in de Selenium test tool. 1) Start de test tool 2) Klik op de Import Excel testscript knop 3) Selecteer het Excel testscript en geef een naam voor het testscript op (default wordt de naam van de Excel sheet ingevuld). 4) Geef vervolgens op bij welke applicatie het testscript hoort en klik OK. 5) Het testscript wordt nu geïmporteerd. Dit kan enkele minuten in beslag nemen. 6) Indien het testscript fouten bevat dan wordt dit gemeld door de tool en krijg je de keuze om de import te vervolgen (de foutieve testcases/-stappen worden dan overgeslagen) of af te breken zodat de fouten eerst aangepast kunnen worden in Excel. Zodra het testscript vervolgens gewijzigd wordt (in Excel) dan zal het script opnieuw geïmporteerd moeten worden. In andere gevallen kan het testscript in de test tool opgeroepen worden middels de testscript listbox bovenin het scherm. 3.2.2 Nieuwe test run aanmaken Nadat bovenin het scherm een applicatie is geselecteerd kan je een nieuwe test run aanmaken middels de knop New test run. De volgende gegevens dienen (verplicht) ingevuld te worden: 1) Environment De omgeving (test, acceptatie etc.) waarop de test uitgevoerd dient te worden. Per applicatie zijn de url s per omgeving vastgelegd in de test suite (zie par 4). 2) Description Een korte omschrijving van de test run, bv. Release 23. Deze omschrijving is bedoeld om de (resultaten van de) test run later makkelijker terug te vinden. 3) Browser De browser waarmee de test uitgevoerd dient te worden. Welke browsers hier geselecteerd kunnen worden hangt af van de configuratie (zie par 5.1). Vervolgens kan op de Testscripts tab aangevinkt worden welke testscript uitgevoerd dienen te worden in deze test run. Indien er slechts één testscript geselecteerd wordt, kan voor dit testscript tevens aangegeven worden welke testcases uitgevoerd dienen te worden in deze test run. Dubbelklikken op een testscript toont in dat geval de Testcases tab. Dubbelklikken op een testcase toont vervolgens de Teststeps tab met daarop de teststappen behorende bij de testcase. Op de Teststeps tab kunnen breakpoints (pauzeren van de testuitvoering) bij specifieke teststappen worden gezet door in de eerste kolom van de desbetreffende rij te klikken, er verschijnt dan een breakpoint icoon. Opnieuw klikken op de eerste kolom zal het breakpoint weer weghalen. Tevens kan aangegeven worden of de test in langzame modus uitgevoerd dient te worden middels de knop. In deze modus worden de html elementen in het browser scherm geel gemarkeerd tijdens de testuitvoering. 18/22

3.3 Test run starten Middels de knop Start test run kan de testuitvoering vervolgens daadwerkelijk gestart worden. Selenium WebDriver wordt nu gebruikt om de browser aan te sturen. Op de Testcases tab wordt aangegeven welk testgeval op dat moment uitgevoerd wordt. De testuitvoering is ten alle tijde te stoppen middels de knop Stop test run of te pauzeren middels de knop Pause test run. In beide gevallen wordt de huidige test stap eerst afgerond, het kan daarom tussen de 1-60 sec. duren voordat de test daadwerkelijk gestopt/gepauzeerd wordt. In het geval dat de test gepauzeerd wordt of een breakpoint bereikt is, wordt op de Teststeps tab aangegeven bij welke test stap de test gepauzeerd is. De gemarkeerde test stap is dus nog niet uitgevoerd (de test stap direct daarboven wel). Met behulp van de knoppen Execute selected test step en Skip selected test step kan de test per stap vervolgd worden. Door opnieuw op de Start test run knop te klikken wordt de test weer vervolgd. Gedurende de testuitvoering kan er overgeschakeld worden tussen de normale en langzame modus middels de knop. 3.4 Command-line testuitvoering Het is tevens mogelijk om de Selenium test tool vanaf de command line te starten. Bijvoorbeeld voor het geautomatiseerd controleren van deployments op de test-/acceptatieomgeving. Hierbij wordt gebruik gemaakt van HtmlUnit, een gui-less browser. Om de tool vanaf de command line te starten zijn de volgende parameters verplicht: -nogui -application <naam van de te testen applicatie in de database> -description <korte omschrijving van de test run> -environment <ontwikkel/test/acceptatie/preprod/productie> De volgende parameter is optioneel en dient te worden meegegeven als slechts één specifiek testscript behorende tot de opgegeven applicatie uitgevoerd dient te worden: -testscript <naam van het testscript dat uitgevoerd dient te worden> Op de command line komen alleen globale resultaten terug waaronder het aantal gefaalde testcases. De gedetailleerde resultaten zijn weggeschreven naar de database en in te zien door de tool weer in normale modus te starten en het testscript en de test run te selecteren (bovenin het scherm). De exit-code van het proces is als volgt: 0 indien testscript is uitgevoerd is en alle testcases zijn succesvol 1 indien testscript is uitgevoerd, maar minimaal 1 testcase is gefaald 2 indien het testscript niet uitgevoerd kon worden (zie in dat geval de logfile voor details) De volgende testacties zijn niet beschikbaar in de HtmlUnit browser: Screenshot maken 19/22

3.5 Rapportage Zodra een test run afgerond (of vroegtijdig gestopt) is worden de resultaten in de tool getoond. Op de Test run tab worden o.a. de browser (type en versie), de datum/tijd van de run en het aantal geslaagde, gefaalde en/of niet uitgevoerde testcases vermeld. Op de Testcases tab staat per testgeval vermeld of deze geslaagd of gefaald is. Niet uitgevoerde testcases staan hier niet vermeld. Een testgeval is gefaald zodra minimaal 1 test stap gefaald is (uitzondering: een test stap waarvan aangegeven is dat deze niet gerapporteerd dient te worden, zie par 3.1.3). Dubbelklikken op een testcase opent de Teststeps tab waarop per test stap aangegeven wordt of deze geslaagd of gefaald is. Indien er bij een test stap een screenshot is gemaakt, dan is deze te openen door op het screenshot icoon te klikken. Het is tevens mogelijk om alle screenshots die tijdens de testrun gemaakt zijn in één keer te openen middels de menu optie Test Show all screenshots. Met behulp van de optie Show only failed testcases/-steps onderaan het scherm kan het overzicht gefilterd worden zodat alleen de gefaalde testcases/-steps getoond worden. De resultaten van een test run zijn later ook altijd weer op te vragen door in de test tool het testscript en de test run te selecteren in de listboxes bovenin het scherm. De resultaten kunnen naar MS Excel geëxporteerd worden middels de knop Export test run results to MS Excel. 3.5.1 Koppelen van defects aan gefaalde teststeps Vanuit de resultaten van een test run is het mogelijk om een link naar een specifiek defect in een bevindingenadministratie te koppelen aan een gefaalde test stap. De link naar een defect kan opgegeven worden door, in de Teststeps tab, te rechterklikken op een gefaalde test stap en te kiezen voor Add link to defect to teststep. 20/22

4 Beheer applicaties In de Selenium test suite database dienen de te testen applicaties geregistreerd te worden. Ten eerste worden per applicatie de url s van de verschillende omgevingen (test, acceptatie etc.) vastgelegd. Afhankelijk van de omgeving waarop een test uitgevoerd wordt, zal de Selenium test suite de bijbehorende url gebruiken. Daarnaast worden de geïmporteerde testscripts gekoppeld aan een applicatie en is op te geven in welke volgorde de testscripts uitgevoerd dienen te worden. Het beheer van de applicaties is te bereiken via het menu File Applications. 21/22

5 Configuratie De configuratie van de Selenium test tool is aan te passen door in de tool voor Preferences te kiezen. Het Preferences scherm is onderverdeeld in meerdere tabs, deze zullen in de volgende paragrafen behandeld worden. 5.1 Selenium Browser executables De verwijzingen naar de browser executables die beschikbaar zijn op de client. Zodra een executable voor een bepaald type browser opgegeven is, zal deze browser beschikbaar zijn bij het starten van een nieuwe test run. Ter info, de Google Chrome executable bevindt zich doorgaans in C:\Users\<username>\AppData\Local\Google\Chrome\Application Selenium Server Selenium Server wordt gebruikt i.g.v. command-line testuitvoering (zie par. 3.3). Het adres en poortnummer waarop de Selenium Server gestart wordt. Bij voorkeur dienen de standaard instellingen (adres: localhost, poort 4444) gebruikt te worden. Let op, indien hier een afwijkend (remote) adres ingegeven wordt, dan gaat de Selenium Test Suite ervan uit dat de Selenium RC Server reeds draait op het opgegeven adres (en poortnummer). Aangezien de Selenium Test Suite de Selenium RC Server in dat geval niet zelf opstart, zullen de opgegeven Selenium browser codes en commandline parameters geen effect hebben. Untrusted certificates Indien deze optie aangevinkt is worden ongeldige SSL certificaten geaccepteerd in Firefox en Chrome. In Internet Explorer dient een ongeldig SSL certificaat geaccepteerd te worden vanuit het testscript m.b.v. de actie Accept IE certificate warning (zie par. 3.1.4). 5.2 Database De Selenium Test Tool ondersteunt MS Access 2007 en MSSQL Server 2005/2008. Standaard wordt een MS Access database met de tool meegeleverd die lokaal op de client staat. Door gebruik te maken van een gedeelde MSSQL Server database kunnen testscripts en testresultaten centraal opgeslagen worden en gedeeld worden met verschillende gebruikers. In de installatiedirectory van de Selenium test suite staat het sql script MSSQL_CreateScripts.sql. Middels dit script kan een MSSQL database worden voorzien van de benodigde tabellen. Na een aanpassing in de database instellingen dient de tool opnieuw opgestart te worden. 5.3 Logging Hier kan het logging niveau aangepast worden. De gemiddelde gebruiker zal deze instellingen nooit hoeven te wijzigen. 22/22