Automatisk webtest med Ruby, Capybara og Selen

Denne vejledning er fokuseret på at vise dig, hvordan de kan oprettes projekter for automatisk at teste websider, har en overfladisk forklaring med et eksempel på test til YouTube -siden. Du bliver nødt til at have grundlæggende forestillinger om Ruby for at forstå det godt.

BemærkDenne test er blevet lanceret i Ubuntu 15.10, derfor anbefaler jeg at bruge Linux til dens udførelse, men jeg sætter, hvordan jeg installerer programmerne i Windows.

1. Installer nødvendige krav


Vi har brug for Ruby og dens perler (Hvis du bruger Mac, har du det allerede installeret).

Installation af Ruby på Windows
For at downloade installationsprogrammet skal du klikke på følgende knap:

DOWNLOAD RUBY FOR WINDOWS

Først downloader og installerer vi Ruby installatør, (i installationen skal du markere muligheden for at tilføje Ruby til Windows PATH), derefter udviklingssæt, udpak dets indhold på disk C i en mappe, som du bliver nødt til at oprette, jeg kalder det Devkit, men du kan kalde det, hvad du vil (Se følgende billede).

Åbn nu Windows cmd og udfør følgende instruktioner:

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

Rubin installation på Linux
I de nyeste versioner har vi allerede installeret Ruby, men bare i tilfælde af, du skal løbe:

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

Installer resten af ​​de nødvendige programmer (Gælder for alle operativsystemer)
Brug for installere agurk, som er et testværktøj, der hjælper os med at udføre BDD.

 perle installere agurk
Vi har også brug for installere Capybara, som er et specifikt sprog, der hjælper os med at interagere med websider.
 perle installere capybara
Og endelig skal du installere selen, er en driver til Capybara, bruger browserens JavaScript -motor og giver os mulighed for at se, hvordan testen er visuelt bestået.
 gem installer selen-webdriver
Det er lidt langsomt.

2. Opret projektet


Når vi har installeret alt, skal vi skabe strukturen i vores projekt.

Trin 1
Lad os oprette en mappe, lad os kalde den Test-selen. Det vil være den mappe, der indeholder alle de filer, vi får brug for, derfor kan vi betragte det som projektets rodmappe.

Trin 2
Inde i mappen Test-selen (rodmappe) lad os oprette en mappe kaldet funktioner. Som vil indeholde alt hvad du behøver for at køre processen.

Trin 3
Inde i funktionsmappen opretter vi yderligere 2 mapper (trin_definitioner Y support) og også en fil kaldet test.funktion.

Trin 4
Inde i step_definitions opretter vi en Ruby -fil kaldet step_Youtube.rb. og nu i supportmappen vil vi oprette en anden Ruby -fil kaldet env.rb.

Trin 5
Vi udfylder filen test.feature, det vil blive skrevet i formelt sprog (Gherkin), det definerer den test, som vi vil bestå på et sprog, der forstås af alle (Selve testen er scenedelen, resten er en beskrivelse) I. Dens indhold er som følger:

 #sprog: er karakteristisk: Gå til youtube Som tester vil jeg indtaste youtube for at teste søgningen For at vide, om alt fungerer godt Scenario: Test youtube Da jeg er på youtube -siden Når jeg søger efter "Metallica One", så kan jeg gå ind og se videoen "https://www.youtube.com/watch?v=iT6vqeL-ysI"
I scenedelen kan vi ikke bruge accenter eller underlige tegn, og variablerne er omsluttet af dobbelte anførselstegn (det vil være dataene, der sendes til vores Ruby -kode).

Trin 6
Det er turen til step_Youtube.rb -filen, Det er Rubin -koden, der vil bestå vores test, se på koden, der har (givet, når, så) hver funktion refererer til en linje, de, der tidligere havde "variabler" modtager parametre (1 for hver variabel i .feature ), til dette er det nødvendigt at bruge regulære udtryk. Under koden.

 Da/ jeg er på youtube -siden $/ besøg 'https://www.youtube.com/?hl=da&gl=EN' slut Når (/ jeg søger efter "([ ^"] *) "$ /) do | search | fill_in 'search_query' ,: with => search click_button 'Search' end Then ( / I can enter and watch the video "([ ^"] *) "$ /) do | video | resultater = alle ('a'). map {| a | a ['href']} hvis ikke resultater. inkluderer? (video) hæv "Video ikke fundet" afslut besøg (video) slut
I denne kode, i den anden funktion kan du se search_query, dette navn, jeg ikke har opfundet, er navneattributten, som Youtube -søgefeltet har.

Instruktionen: resultater = alle ('a'). map {| a | a ['href']}Hvad den gør, er at få en liste over alle elementerne a på siden, og fra den liste får den værdierne for href -attributterne, gemmer dem i resultatvariablen, og på denne måde kan vi se, om det web, vi ønsker at besøge er på siden, I dette eksempel vil det afhænge af, om sangen vises på den første side, så hvis testen ikke vises, kommer den ud rødt, og hvis ikke alt er grønt, viser jeg et billede kl. slutningen af ​​output).

Trin 7
Vi skal udfylde den sidste env.rb -fil, det er en konfigurationsfil, det angiver det sprog, der skal bruges, driverne osv. I dette tilfælde bruger vi Capybara og Selen.

 kræver 'capybara' kræver 'capybara / dsl' Capybara.default_driver =: selenmodul Hjælper def uden_resynkroniser side.driver.options [: resynchronize] = falskt udbytte page.driver.options [: resynchronize] = true end end World (Capybara :: DSL, hjælpere)
Her har du koden.

3. Kør projektet


Det er tid til køre vores projekt at teste Youtube.

Trin 1
Vi åbner en terminal eller cmd og går til mappen Testing-Selenium, hvor alt vores tidligere oprettede projekt er.

Trin 2
Vi skriver agurk, og vi giver enter, Agurk vil se i funktionsmappen for .feature -filerne (i dette tilfælde er der kun 1) og trinene (Ruby -filer) for disse .features. Hvis det er korrekt, vil vi se, hvordan browseren åbner og begynder at køre testene. Hvis du ikke har defineret Ruby -funktionerne, vises der en skærm, der angiver, at trinene ikke er defineret, f.eks. Følgende billede:

Hvis alt går korrekt, ender du med en skærm som følgende:

BemærkHvis det giver dig en advarsel og ikke maler farve i Windows, skal du besøge dette lager.

Hvis du vil have en hurtigere test, skal du bruge en browser uden en grafisk grænseflade (Phantomjs) og Poltergeist, som er en driver til Capybara (samme som Selenium), men som forbinder med Phantomjs.

  • Installer Poltergeist:
     perle installere poltergeist
  • Installer Phantomjs:
     perle installere phantomjs

Hvis du vil downloade hele projektet, vedhæfter jeg en zip (husk at testen er bestået i Ubuntu):

Testing-Selenium.zip 1.71K 167 Downloads

Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave