Test web automatici con Ruby, Capibara e Selenium

Questo tutorial è focalizzato sul mostrarti come possono essere creati progetti per testare automaticamente le pagine web, ha una spiegazione superficiale con un esempio di test alla pagina YouTube. Dovrai avere nozioni di base su Ruby per capirlo bene.

NotaQuesto test è stato lanciato in Ubuntu 15.10, quindi consiglio di utilizzare Linux per la sua esecuzione, tuttavia metto come installare i programmi in Windows.

1. Installare i requisiti necessari


Abbiamo bisogno di Ruby e delle sue gemme (se usi Mac lo avrai già installato).

Installazione di Ruby su Windows
Per scaricare il programma di installazione, fare clic sul pulsante seguente:

SCARICA RUBY PER WINDOWS

Per prima cosa scarichiamo e installiamo Ruby installer, (nell'installazione assicurati di selezionare l'opzione per aggiungere Ruby al PATH di Windows), quindi il kit di sviluppo, estrai il suo contenuto sul disco C in una cartella che dovrai creare io lo chiamo Devkit, ma puoi chiamarlo come vuoi (vedi l'immagine seguente).

Ora apri il cmd di Windows e eseguire le seguenti istruzioni:

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

Installazione di Ruby su Linux
Nelle versioni più recenti abbiamo già installato Ruby, ma per ogni evenienza, devi correre:

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

Installa il resto dei programmi necessari (valido per tutti i sistemi operativi)
Bisogno installa il cetriolo, che è uno strumento di test che ci aiuta a eseguire BDD.

 gemma installa cetriolo
Abbiamo anche bisogno installare Capibara, che è un linguaggio specifico che ci aiuterà a interagire con le pagine web.
 gemma installa capibara
E alla fine devi installare il selenio, è un driver per Capybara, utilizza il motore JavaScript del browser e ci permette di vedere come il test viene superato visivamente.
 gem install selenium-webdriver
È un po' lento.

2. Crea il progetto


Una volta installato tutto, creeremo la struttura del nostro progetto.

Passo 1
Creiamo una cartella, chiamiamola Test-Selenio. Sarà la cartella che conterrà tutti i file di cui avremo bisogno, quindi possiamo considerarla come la cartella radice del progetto.

Passo 2
Dentro la cartella Test-Selenio (cartella radice) creiamo una cartella chiamata caratteristiche. Che conterrà tutto il necessario per eseguire il processo.

Passaggio 3
All'interno della cartella features creiamo altre 2 cartelle (step_definitionssostegno) e anche un file chiamato test.feature.

Passaggio 4
All'interno di step_definitions creeremo un file Ruby chiamato step_Youtube.rb. e ora all'interno della cartella di supporto creeremo un altro file Ruby chiamato env.rb.

Passaggio 5
Compiliamo il file test.feature, sarà scritto in linguaggio formale (Gherkin), definisce il test che vogliamo superare in un linguaggio che sia compreso da tutti (Il test stesso è la parte scenica, il resto è una descrizione) In. Il suo contenuto è il seguente:

 #lingua: è Caratteristica: Vai su youtube Come tester voglio entrare in youtube per testare la ricerca Per sapere se tutto funziona bene Scenario: Prova youtube Visto che sono sulla pagina youtube Quando cerco "Metallica One" Poi posso entrare e guarda il video "https://www.youtube.com/watch?v=iT6vqeL-ysI"
Nella parte dello stage non possiamo usare accenti, o caratteri strani, e le variabili sono racchiuse tra virgolette (saranno i dati passati al nostro codice Ruby).

Passaggio 6
È il turno del file step_Youtube.rb, È il codice Ruby che supererà i nostri test, guarda il codice che ha (Given, When, So) ogni funzione fa riferimento a una riga, quelli che in precedenza avevano "variabili" ricevono parametri (1 per ogni variabile nel .feature ), per questo è necessario utilizzare le espressioni regolari. Sotto il codice.

 Dato che / sono sulla pagina youtube $ / visito 'https://www.youtube.com/?hl=en&gl=EN' end When (/ Cerco "([^"] *) "$ / ) do | search | fill_in 'search_query',: con => search click_button 'Search' end Poi (/ posso entrare e guardare il video "([^"] *) "$ /) do | video | risultati = tutti ('a'). map {| a | a ['href']} if not results.include? (video) aumentare "Video non trovato" fine visita (video) fine
In questo codice, nella seconda funzione puoi vedere search_query, questo nome che non ho inventato è l'attributo del nome che ha la casella di ricerca di Youtube.

Le istruzioni: risultati = tutti ('a'). map {| a | a ['href']}Quello che fa è ottenere un elenco di tutti gli elementi a sulla pagina, e da quell'elenco prende i valori degli attributi href, memorizzandoli nella variabile risultato, e in questo modo possiamo vedere se il web vogliamo da visitare è sulla pagina, In questo esempio, dipenderà dal fatto che la canzone compaia in prima pagina, quindi se il test non compare, uscirà rosso e se non tutto verde, mostrerò un'immagine a la fine dell'uscita).

Passaggio 7
Stiamo per compilare l'ultimo file env.rb, è un file di configurazione, indicherà la lingua da utilizzare, i driver, ecc. In questo caso stiamo usando capibara e selenio.

 require 'capybara' require 'capybara / dsl' Capybara.default_driver =: selenium module Helpers def without_resynchronize page.driver.options [: resynchronize] = false yield page.driver.options [: resynchronize] = true end end World (Capybara :: DSL, aiutanti)
Qui hai il codice.

3. Eseguire il progetto


È tempo di gestisci il nostro progetto per testare Youtube.

Passo 1
Apriamo un terminale o cmd e andiamo nella cartella Testing-Selenium, dove si trova tutto il nostro progetto creato in precedenza.

Passo 2
Scriviamo cetriolo e diamo invio, Cucumber cercherà nella cartella delle funzionalità i file .feature (in questo caso ce ne sono solo 1) e i passaggi (file Ruby) di tali file .feature. Se è corretto vedremo come si apre il browser e inizia ad eseguire i test. Se non hai definito le funzioni Ruby, apparirà una schermata che indica che i passaggi non sono definiti, come l'immagine seguente:

Se tutto va bene finirete per avere una schermata come la seguente:

NotaSe ti dà un avviso e non dipinge il colore in Windows, visita questo repository.

Se vuoi un test più veloce avrai bisogno di un browser senza interfaccia grafica (Phantomjs) e Poltergeist che è un driver per Capybara (come Selenium) ma che si connette con Phantomjs.

  • Installa Poltergeist:
     gemma installa poltergeist
  • Installa Phantomjs:
     gem installa phantomjs

Nel caso volessi scaricare l'intero progetto ti allego uno zip (ricorda che il test è stato superato in Ubuntu):

Test-Selenium.zip 1.71K 167 download

Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave