Als eerste beginnen we me het installeren van Ruby.
Aangezien Windows geen package manager heeft om het te installeren, moet Ruby geinstalleerd worden met een RubyInstaller. Deze kan gedownload worden via de volgende URL: https://rubyinstaller.org/downloads/
Instaleer de RubyInstaller, accepteer de voorwaarden, selecteer “Add Ruby executables to your PATH” en “Associate .rb and .rbw files with this Ruby”.
Zodra de installatie klaar is, selecteer dan “Run ‘ridk install’….” en kies dan “Finish”.
Het volgende scherm wordtdan geopend:
Nu kom je bij de installer voor MSYS2, deze is nodig voor een aantal functies in Ruby. Doorloop het installatie proces, maar let erop dat het vinkje voor meteen runnen van MSYS uit staat! Ruby is nu geinstalleerd.
De tweede stap is het installeren van Chrome en Firefox drivers
Om Cucumber en Watir de drivers te laten besturen, moeten we Chromedriver en Geckodriver istalleren. Watir maakt gebruik van Chromedriver en Geckodriver om de websites te laden en om acties uit te voeren op de websites. Zoals de naam al doet vermoeden, wordt Chromedriver gebruikt bij de Chrome browser en Geckodriver wordt gebruikt voor Firefox.
Download de laatste versie van Chromedriver: https://sites.google.com/a/chromium.org/chromedriver/downloads
Download de laatste versie van Geckodriver: https://github.com/mozilla/geckodriver/releases
Pak beide zip bestanden uit op de de bin directory van Ruby.
De derde stap is het installeren van Bundler en Lapis Lazuli.
Bundler en Lapis Lazuli zijn twee Rubygems die nodig zijn om geautomatiseerde testen te draaien. Volg de volgende stappen om deze te installeren.
1: Open Powershell en typ ‘gem install bundler’. De installatie start en wacht tot deze is afgerond.
2: Typ vervolgens ‘gem install lapis_lazuli -no-ri no-rdoc’ en wacht weer tot deze installatie afgerond is.
Beide Rubygems zijn nu geinstalleerd.
Maken van een test suite
Er kan nu gestart worden met het maken van een test suite.
Als eerste moet er een map aangemaakt worden waarin de Ruby projecten opgeslagen worden. Bijvoorbeeld C:projectsruby.
Vervolgens wordt er een Powershell scherm geopend. Door het volgende commando uit te voeren ‘cd c:projectsruby’, gaan we naar die betreffende map.
Vervolgens wordt het volgende commando uitgevoerd: lapis_lazuli create test-suite’. Hiermee maakt Lapis Lazuli een map aan met die naam. Deze map gaan we in, door middel van het volgende commando: ‘cd test-suite’.
Om deze test suite te draaien moeten er nog een aantal dingen geinstalleerd worden. Gelukkig kan dit door een commando uit te voeren, namelijk ‘bundle install’. Dit commando zorgt ervoor dat Cucumber, Watir en nog enkele andere benodigde gems geinstalleerd worden.
Nu kunnen er testen uitgevoerd worden, door simpelweg het volgende commando uit te voeren in Powershell: ‘bundle exec cucumber’.
De testen kunnen geschreven worden in een teksteditor, zoals notepad++. Zorg ervoor dat de feature files goed worden opgeslagen met de extentie .feature en de rubyfiles met .rb
Maken van feature en step definition files
Nu alle ingrediënten aanwezig zijn om testen te automatiseren, wordt er nu een voorbeeld gegeven.
Als eerste wordt de .feature file gemaakt. Deze ziet er alsvolgt uit:
Feature: Laat een simpel zoek scenario zien
As a tester
I want wat weten over BDD
So that ik dit zelf kan toepassen
Scenario: BDD zoeken
Given Ik open TestTalk
And Ik vul in BDD
When Ik klik op zoeken
Then Ik zie de resultaten
Hierin is in Gherkin stappen beschreven wat de test doet.
Om deze uit te kunnen voeren, is er ook een step definition file nodig. Deze ziet er alsvolgt uit:
require watir-webdriver’
driver = Watir::Browser.new :firefox
Given (/^Ik open TestTalk$/) do
driver.navigate.to “http://www.testtalk.nl”
end
And (/^Ik vul in BDD$/) do
driver.find_element(:id, ‘search-open’).click
driver.find_element(:id, ‘s’).send_keys(“BDD”)
end
When (/^Ik klik op zoeken$/) do
driver.find_element(:id, ‘searchsubmit’).click
end
Then (/^Ik zie de resultaten$/) do
wait = Watir::Wait.new(:timeout => 10) #seconds
driver.quit
end
Sla deze twee bestanden op in de juiste mappen. Vervolgens wordt cucumber gedraaid vanuit Powershell. Het commando hiervoor is ‘bundle exec cucumber’.
Vervolgens is te zien dat de browser, in dit geval firfox, automatisch wordt geopend, de website wordt bezocht, het zoekveld wordt ingevuld, gezocht wordt, de zoekresultaten worden getoond en de browser wordt weer afgesloten.
In Powershell is het resultaat van de test te bekijken. Dit ziet er ongeveer alsvolgt uit: