Automatisk webbtestning med Ruby, Capybara och Selen

Denna handledning fokuserar på att visa dig hur de kan skapas projekt för att testa webbsidor automatiskt, har en ytlig förklaring med ett exempel på testning till YouTube -sidan. Du måste ha grundläggande föreställningar om Ruby för att förstå det väl.

NoteraDetta test har lanserats i Ubuntu 15.10, därför rekommenderar jag att du använder Linux för dess körning, men jag lägger hur jag installerar programmen i Windows.

1. Installera nödvändiga krav


Vi behöver Ruby och dess pärlor (om du använder Mac har du det redan installerat).

Installera Ruby på Windows
För att ladda ner installationsprogrammet, klicka på följande knapp:

LADDA NER RUBY FÖR WINDOWS

Först laddar vi ner och installerar Ruby installatör, (i installationen, se till att markera alternativet att lägga till Ruby i Windows PATH), sedan utvecklings paket, extrahera dess innehåll på disk C i en mapp som du måste skapa Jag kallar det Devkit, men du kan kalla det vad du vill (Se följande bild).

Öppna nu Windows cmd och utför följande instruktioner:

 chdir C: \ Devkitruby dk.rb initruby dk.rb install

Rubininstallation på Linux
I de senaste versionerna har vi redan installerat Ruby, men för säkerhets skull du måste springa:

 sudo apt-get install rubysudo apt-get install rubygems
[color = # a9a9a9] Rubininstallation [/ color]

Installera resten av de nödvändiga programmen (Gäller för alla operativsystem)
Behöver installera gurka, som är ett testverktyg som hjälper oss att utföra BDD.

 pärla installera gurka
Vi behöver också installera Capybara, som är ett specifikt språk som hjälper oss att interagera med webbsidor.
 pärla installera capybara
Och slutligen måste du installera selen, är en drivrutin för Capybara, använder webbläsarens JavaScript -motor och låter oss se hur testet klaras visuellt.
 gem installera selenium-webdriver
Det är lite långsamt.

2. Skapa projektet


När vi har allt installerat ska vi skapa strukturen för vårt projekt.

Steg 1
Låt oss skapa en mapp, låt oss kalla den Testning-selen. Det kommer att vara mappen som innehåller alla filer som vi behöver, därför kan vi betrakta det som projektets rotmapp.

Steg 2
Inne i mappen Testning-selen (rotmapp) låt oss skapa en mapp som heter funktioner. Som innehåller allt du behöver för att köra processen.

Steg 3
Inne i funktionsmappen skapar vi ytterligare två mappar (steg_definitioner Y Stöd) och även en fil som heter test.funktion.

Steg 4
Inne i step_definitions skapar vi en Ruby -fil som heter step_Youtube.rb. och nu i supportmappen kommer vi att skapa en annan Ruby -fil som heter env.rb.

Steg 5
Vi fyller i filen test.feature, det kommer att skrivas på formellt språk (Gherkin), det definierar testet som vi vill klara på ett språk som alla förstår (Testet i sig är scendelen, resten är en beskrivning) i. Dess innehåll är följande:

 #språk: är karaktäristiskt: Gå till youtube Som testare vill jag gå in på youtube för att testa sökningen För att veta om allt fungerar bra Scenario: Testa youtube Eftersom jag är på youtube -sidan När jag söker efter "Metallica One" Då kan jag gå in och se videon "https://www.youtube.com/watch?v=iT6vqeL-ysI"
I scendelen kan vi inte använda accenter eller konstiga tecken, och variablerna är inneslutna i dubbla citattecken (det kommer att vara data som skickas till vår Ruby -kod).

Steg 6
Det är turen för filen step_Youtube.rb, Det är Ruby -koden som klarar våra tester, titta på koden som har (Given, When, So) varje funktion refererar till en rad, de som tidigare hade "variabler" får parametrar (1 för varje variabel i .feature ), för detta är det nödvändigt att använda reguljära uttryck. Under koden.

 Eftersom/ jag är på youtube -sidan $/ besök "https://www.youtube.com/?hl=sv&gl=EN" slutet När (/ jag söker efter "([ ^"] *) "$ /) do | search | fill_in 'search_query' ,: with => search click_button 'Search' end Then ( / I can enter and watch the video "([ ^"] *) "$ /) do | video | resultat = alla ('a'). karta {| a | a ['href']} om inte resultat. inkludera? (video) höja "Video hittades inte" avsluta besök (video) avsluta
I den här koden, i den andra funktionen kan du se search_query, detta namn som jag inte har uppfunnit är namnet attribut som Youtube -sökrutan har.

Instruktionen: resultat = alla ('a'). karta {| a | a ['href']}Vad den gör är att få en lista över alla element a på sidan, och från den listan får den värdena för href -attributen, lagrar dem i resultatvariabeln, och på så sätt kan vi se om webben vi vill ha att besöka finns på sidan, I det här exemplet beror det på om låten visas på första sidan, så om testet inte visas kommer det att bli rött och om inte allt är grönt kommer jag att visa en bild kl. slutet av utmatningen).

Steg 7
Vi ska fylla i den senaste env.rb -filen, det är en konfigurationsfil, det anger det språk som ska användas, drivrutinerna etc. I det här fallet använder vi Capybara och Selen.

 kräver 'capybara' kräver 'capybara / dsl' Capybara.default_driver =: selenmodul Hjälper def utan_resynkronisera page.driver.options [: resynchronize] = false yield page.driver.options [: resynchronize] = true end end World (Capybara :: DSL, hjälpare)
Här har du koden.

3. Kör projektet


Det är dags att köra vårt projekt för att testa Youtube.

Steg 1
Vi öppnar en terminal eller cmd och går till mappen Testing-Selenium, där allt vårt tidigare skapade projekt finns.

Steg 2
Vi skriver gurka och vi ger enter, Gurka söker i funktionsmappen för .feature -filerna (i det här fallet finns det bara 1) och stegen (Ruby -filer) för dessa .features. Om det är korrekt får vi se hur webbläsaren öppnas och börjar köra testerna. Om du inte har Ruby -funktionerna definierade visas en skärm som anger att stegen inte är definierade, till exempel följande bild:

Om allt går rätt kommer du att få en skärm som följande:

NoteraOm det ger dig en varning och inte målar färg i Windows, besök det här förvaret.

Om du vill ha ett snabbare test behöver du en webbläsare utan ett grafiskt gränssnitt (Phantomjs) och Poltergeist som är en drivrutin för Capybara (samma som Selenium) men som ansluter till Phantomjs.

  • Installera Poltergeist:
     pärla installera poltergeist
  • Installera Phantomjs:
     gem installera phantomjs

Om du vill ladda ner hela projektet bifogar jag en zip (kom ihåg att testet har klarats i Ubuntu):

Testing-Selenium.zip 1.71K 167 Nedladdningar

Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave