590 likes | 850 Views
1. Workshop FitNesse & Selenium. Waardevolle spelers bij Agile Ontwikkeling. Wie ben ik? Wat doe ik?. 2. Gijs Sijpesteijn Consultant ICT In dienst bij Ordina sinds 2006 Sinds 2007 bezig met Agile Ontwikkeling Agile projecten bij Microbais, SNS en Rabobank
E N D
1 Workshop FitNesse & Selenium Waardevolle spelers bij Agile Ontwikkeling
Wie ben ik? Wat doe ik? 2 • Gijs Sijpesteijn • Consultant ICT • In dienst bij Ordina sinds 2006 • Sinds 2007 bezig met Agile Ontwikkeling • Agile projecten bij Microbais, SNS en Rabobank • Cursus: Agile testen voor Java Ontwikkelaars
Onderwerpen Introductie van FitNesse Oefenen met FitNesse Introductie van Selenium Oefenen met Selenium (ism FitNesse) 3
FitNesseStukje achtergrond 4 • FitNesse is ontwikkeld onder aanvoering van Robert C. Martin • FitNesse was gebouwd als uitbreiding op FIT • FIT zorgt voor een gemeenschappelijke taal en maakt de testcases voor alle disciplines makkelijk begrijpbaar • FIT interpreteert HTML pagina’s als testcases • FitNesse genereert HTML pagina’s aan de hand van WIKI pagina’s
FitNesseWat is het? 7 “FitNesse is a software development collaboration tool” FitNesse is een software testing tool. FitNesse bestaat uit: • Webserver(tje) • Wiki (om testpagina’s op te stellen)
FitNesseOefening 1 – FitNesse test schrijven 8 Opdrachten: • FitNesse opstarten. • Werken met FitNesse interface. • FitNesse test opstellen in Wiki notatie. • Business methode testen mbv FitNesse test.
FitNesseOpstarten 9 Download: http://www.fitnesse.org(nu te vinden in C:\WorkshopFitNesse\ ) Huidige versie: 20110104 Start commando:java -jar fitnesse.jar Belangrijkste opties: Voor de workshop, gebruik de link op het bureaublad: start_fitnesse.bat om FitNesse te starten. (NOTE: Dosbox niet afsluiten. Dan stopt FitNesse) Optie Default -p <port#> 80 -d /path/to/fitNesse/root .
FitNesseOpstart process 10 Na het opstarten van start_fitnesse.bat opent er een dosbox met de hiernaast getoonde output. We zien hier o.a. poort nummer (9090) waarop FitNesse bereikbaar is.
FitNesseInterface 11 FitNesse is gestart en we kunnen de webserver (=FitNesse) benaderen op url: http://localhost:9090/ en zien dan de homepage zoals hiernaast afgebeeld. Gebruik de 'FitNesse' link op het bureaublad.
FitNesse Onze eerste FitNesse test. Wat gaan we testen? 12 Een requirement voor ons SUT (System under Test), is het optellen van twee getallen en het resultaat retourneren. We willen deze functionaliteit gaan testen m.b.v. een FitNesse test. Aanwezig De business methode en fixture zijn reeds aanwezig. Wij schrijven voor deze oefening enkel de wiki-pagina. Deze wiki-pagina gaan wij nu schrijven.
FitNesseOptellenTest 13 De test voor de business methode zien we hiernaast afgebeeld. Naam van fixture In- en output definitie Test gevallen
FitNesseOptellenTest – het verwachte testresultaat 14 Na het uitvoeren van de test door FitNesse, ver- wachten we het volgende test resultaat.
FitNesseTestpagina’s toevoegen aan FitNesse 15 Gebruik de 'add child' link naast de wiki pagina naam. Voorwaarde: Namen van FitNesse test pagina’s moeten wikiwords zijn.
FitNesseWiki Woord 16 Wiki-words zijn woorden die voldoen aan volgende regels: • Begint met één of meerdere hoofdletter. • Gevolgd door één of meerdere kleine letters of getallen. • Gevolgd door één of meerdere hoofdletter. Voorbeelden: • BobMartin is een wiki woord. • SalesReport1972 is een wiki woord. • USAforEver niet, omdat er drie kapitalen elkaar opvolgen. • Usa1776 niet, omdat het woord maar een kapitaal heeft. • ItDoesNotMatterHowManyCapitalsThereAreYouCanHave1000IfYouLike
FitNesseOptellenTest pagina toevoegen. 17 Toevoegen van de OptellenTest pagina. • Klik op de 'add child' link naast FrontPage. • Kies voor 'Test' als type pagina. • Name = OptellenTest • Klik op 'Add'
FitNesseDe OptellenTest pagina toevoegen 18 De pagina is aangemaakt, maar nog niet zichtbaar op de homepage. • Op de homepage, klik 'Edit' in het menu rechts. • Voeg onderaan de pagina toe: !contents • Klik op de 'Save' button.
FitNesseDe OptellenTest pagina opstellen 19 Door op de link 'OptellenTest' te klikken, komen we op de nieuwe wiki-pagina. • Klik op 'Edit' in het menu rechts en we komen wederom in de edit mode. • We kunnen nu de test in wiki notatie opstellen. • Verwijder '!contents' en voeg de test toe. • Klik op de 'Save' button.
FitNesseDe OptellenTest pagina opstellen 20 Je pagina moet er nu zo uit zien. Onze pagina is nog niet volledig. We hebben enkel de requirements van de test ingevoerd. We moeten FitNesse nu extra informatie geven om de test te kunnen uitvoeren tegen onze SUT.
FitNesseTestpagina van extra informatie voorzien. 21 We moeten FitNesse vertellen welk test systeem we gebruiken. FIT Slim We moeten FitNesse vertellen waar onze fixture code classes staan.
FitNesseTestpagina van extra informatie voorzien. 22 • Klik op 'Edit' in het menu. • Voeg toe: !define TEST_SYSTEM {slim} • Voeg toe: !path C:/WorkshopFitNesse/target/classes/ • Voeg het java package toe aan de Optellen fixture, wijzig | Optellen | in | nl.ordina.workshopfitnesse.fixtures.Optellen | • Klik op de 'Save' button
FitNesseDe volledige testpagina. 23 Je 'OptellenTest' pagina ziet er nu zo uit en is volledig voor FitNesse om de test uit te voeren. Klik nu op 'Test' in het menu.
FitNesseOptellenTest - resultaat 24 Na het uitvoeren van de test door FitNesse, ver- wachten we het volgende test resultaat.
FitNesseGebruik van import fixture 25 Het is extra werk om telkens het java package op te nemen. We kunnen hiervoor de build-in fixture ‘Import' gebruiken.
FitNesseGebruik van import fixture 26 • Klik op 'Edit' in het menu en wijzig de wiki tekst in het volgende: Java package is verdwenen en verplaatst naar de import fixture. • Klik na de aanpassingen op de 'Save' button.
FitNesseGebruik van import fixture 27 Het resultaat zal eruit zien zoals de afbeelding hiernaast.
FitNesseSpecial pages 28 O.a.: • SetUp & TearDown Subwiki’s die respectievelijk voor en na de test worden uitgevoerd. • SuiteSetUp & SuiteTearDown Subwiki’s die respectievelijk voor en na de suite worden uitgevoerd. • root Wiki pagina waarin globale variabelen kunnen worden gezet.
FitNesseOptimalizeren van FitNesse. 29 Opdrachten: • !define TEST_SYSTEM {slim} verplaatsen naar 'root' wikipagina. • !path c:/workshopfitnesse/target/classes verplaatsen naar 'root' wikipagina. • Toevoegen van 'SetUp' wiki-pagina. • Verplaatsen van Import fixture uit ‘OptellenTest’ naar 'SetUp' wiki-pagina.
FitNesseOptimalizeren van FitNesse - root pagina. 30 Link onderaan pagina opent de 'root' wiki pagina. Klik op de link.
FitNesseOptimalizeren van FitNesse- root pagina. 31 • Klik op 'Edit' in het menu. • Voeg de twee onderstaande regels toe. • Klik op de 'Save' button.
FitNesseOptimalizeren van FitNesse- root pagina. 32 De 'root' wiki pagina ziet er nu zo uit. De informatie geldt nu voor elke wiki test pagina.
FitNesseOptimalizeren van FitNesse – Toevoegen 'SetUp'. 33 • Klik op het logo om naar de homepagina te navigeren. • Klik op de 'add child' link naast FrontPage. • Kies voor 'Normal' als type pagina. • Name = SetUp • Klik op 'Add'
FitNesseOptimalizeren van FitNesse – 'SetUp' bewerken. 34 • Klik op de 'SetUp' link op de homepagina. • Klik 'Edit' in het menu. • Voeg de onderstaande regels toe. • Klik op de 'Save' button
FitNesseOptimalizeren van FitNesse – 'SetUp' resultaat. 35 De 'SetUp' wiki pagina ziet er nu zo uit. Deze wiki pagina wordt voor iedere FitNesse test uitgevoerd. We kunnen nu de inmiddels overbodige informatie uit de 'OptellenTest' FitNesse test verwijderen.
FitNesseOptimalizeren van FitNesse – Opschonen OptellenTest. 36 • Navigeer naar de homepagina door op het logo te klikken. • Klik op de link 'OptellenTest' • Klik 'Edit' in het menu. • Verwijder alle code, behalve de fixture tabel. • Klik op de 'Save' button.
FitNesseOptimalizeren van FitNesse – Opschonen OptellenTest. 37 De 'OptellenTest' pagina ziet er nu zo uit. Let op de automatisch toegevoegde 'SetUp' wiki.
FitNesseDe gangbare werkwijze. 38 We hebben nu enkel de FitNesse test moeten opstellen, maar normaal zal de procedure zijn: • SUT uitbreiden met functionaliteit. • FitNesse testpagina opstellen die de requirements van de nieuwe functionaliteit testen. • Fixture code schrijven die de wiki pagina verbindt met het SUT. • Of in een TDD ( Test Driven Design ) omgeving: • FitNesse testpagina opstellen die de requirements van de nieuwe • functionaliteit testen. • Fixture code schrijven die de wiki pagina verbindt met het SUT. • SUT uitbreiden met functionaliteit.
FitNesseDe fixture code en business methode nader bekeken. 39 • Open Eclipse d.m.v. link op het bureaublad. • Navigeer naar: WorkshopFitNesse/src/main/java/nl/ordina/workshopfitnesse/fixtures/Optellen Of gebruik shortkey: <ctrl>+<shift>+r en type 'Optellen' • De fixture Optellen opent.
FitNesseDe business methode nader bekeken. 41 • In Eclipse, navigeer naar: WorkshopFitNesse/src/main/java/nl/ordina/workshopfitnesse/aandelen/ business/OptellenBusiness Of gebruik shortkey: <ctrl>+<shift>+r en type 'OptellenBusiness' • De business service OptellenBusiness opent.
SeleniumStukje achtergrond 42 In een notendop: Selenium automatiseert browsers. Selenium levert een set van tools om tests uit te voeren tegen een webapplicatie. • Selenium IDE – Firefox plugin om gebruikers acties op te nemen en af te spelen. • Selenium Server – Afspelen selenium scripts. • Selenium Client Drivers – Aansturen van selenium server. Support voor Java, Ruby, C#, Python.
SeleniumArchitectuur 43 SUT in een browser Selenium Server (web-acties op SUT) Selenium Client Driver (programma code of selenium script)
Selenium - FitnesseArchitecture 44 Maken wij. com.neuri.webfixture.WebTest http(s) Selenium Client Driver Selenium server
SeleniumOefening 1 – Selenium test schrijven 45 Opdrachten: • Test applicatie starten. • Selenium Server starten. • FitNesse test opstellen.
SeleniumOefening 1 – Test applicatie starten 46 Gebruik start_app.bat op het bureaublad om de test applicatie te starten. Na het opstarten van start_app.bat opent er een dosbox met de hieronder getoonde output. We zien o.a. het poort nummer (9999) waarop de test applicatie is gestart.
SeleniumOefening 1 – Test applicatie starten 47 De test applicatie is nu bereikbaar op: http://localhost:9999/aandelen/ Of gebruik de link ‘open_app’ op het bureaublad.
SeleniumOpstarten Selenium Server 48 Download: http://seleniumhq.org/download/(nu te vinden in C:\WorkshopFitNesse\ ) Huidige versie: 2.6.0 Start commando:java -jar selenium-server.jar Belangrijkste opties: Voor de workshop, gebruik de link op het bureaublad: start_selenium.bat om de Selenium Server te starten. (NOTE: Dosbox niet afsluiten. Dan stopt Selenium Server) Optie Default -p <port#> 4444
SeleniumOefening 1 – Selenium Server starten 49 Gebruik start_selenium.bat op het bureaublad om de Selenium Server te starten. Na het opstarten van start_selenium.bat opent er een dosbox met de hieronder getoonde output. We zien o.a. het poort nummer (4444) waarop de Selenium Server is gestart.
SeleniumOefening 1 – FitNesse test toevoegen. 50 • Selecteer de FitNesse webinterface in de browser. • Klik op de 'add child' link naast FrontPage. • Kies voor 'Test' als type pagina. • Name = WebTest • Klik op 'Add'