Automatyczne testowanie sieci z Ruby, Capybara i Selenium

Ten samouczek koncentruje się na pokazaniu, jak można je tworzyć projekty do automatycznego testowania stron internetowych, zawiera powierzchowne wyjaśnienie z przykładem testowania na stronie YouTube. Będziesz musiał mieć podstawowe pojęcia o Ruby, aby dobrze go zrozumieć.

NotatkaTest ten został uruchomiony w Ubuntu 15.10, dlatego do jego wykonania polecam używać Linuksa, jednak umieszczam jak zainstalować programy w Windows.

1. Zainstaluj niezbędne wymagania


Potrzebujemy Rubiego i jego perełek (jeśli używasz Maca, będziesz już go miał zainstalowany).

Instalowanie Rubiego w systemie Windows
Aby pobrać instalator, kliknij następujący przycisk:

POBIERZ RUBY DLA WINDOWS

Najpierw pobieramy i instalujemy Ruby instalator, (w instalacji upewnij się, że zaznaczyłeś opcję dodania Rubiego do ŚCIEŻKI Windows), a następnie zestaw deweloperski, wyodrębnij jego zawartość na dysku C w folderze, który będziesz musiał utworzyć. Nazywam go Devkit, ale możesz go nazwać, jak chcesz (patrz poniższy obrazek).

Teraz otwórz cmd systemu Windows i wykonaj następujące instrukcje:

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

Instalacja Rubiego na Linuksie
W najnowszych wersjach mamy już zainstalowanego Rubiego, ale na wszelki wypadek musisz biec:

 sudo apt-get zainstaluj rubysudo apt-get zainstaluj rubygems
[kolor = # a9a9a9] Instalacja Ruby [/ kolor]

Zainstaluj resztę niezbędnych programów (dotyczy wszystkich systemów operacyjnych)
Potrzebować zainstaluj ogórek, czyli narzędzie testowe, które pomaga nam wykonywać BDD.

 klejnot zainstaluj ogórek
Potrzebujemy także zainstaluj kapibarę, czyli specyficzny język, który ułatwi nam interakcję ze stronami internetowymi.
 klejnot zainstaluj kapibarę
I w końcu musisz zainstaluj selen, jest sterownikiem dla Capybara, wykorzystuje silnik JavaScript przeglądarki i pozwala nam zobaczyć, jak wizualnie przechodzi test.
 gem zainstaluj selen-webdriver
To trochę powolne.

2. Stwórz projekt


Po zainstalowaniu wszystkiego, stworzymy strukturę naszego projektu.

Krok 1
Stwórzmy folder, nazwijmy go Testowanie-selen. Będzie to folder, który będzie zawierał wszystkie potrzebne nam pliki, dlatego możemy go uznać za folder główny projektu.

Krok 2
Wewnątrz folderu Testowanie-selen (folder główny) stwórzmy folder o nazwie funkcje. Który będzie zawierał wszystko, czego potrzebujesz do uruchomienia procesu.

Krok 3
Wewnątrz folderu funkcji tworzymy jeszcze 2 foldery (step_definicje Tak Pomoc) a także plik o nazwie test.funkcja.

Krok 4
Wewnątrz step_definitions utworzymy plik Ruby o nazwie step_YouTube.rb. a teraz w folderze wsparcia utworzymy kolejny plik Ruby o nazwie env.rb.

Krok 5
Wypełniamy plik test.feature, będzie napisany w języku formalnym (Gherkin), definiuje test, który chcemy zdać w języku zrozumiałym dla wszystkich (sam test jest częścią sceniczną, reszta to opis) In. Jego treść jest następująca:

 #język: jest Charakterystyka: Idź do youtube Jako tester chcę wejść na youtube, aby przetestować wyszukiwanie Aby wiedzieć, czy wszystko działa dobrze Scenariusz: Przetestuj youtube Ponieważ jestem na stronie youtube Gdy szukam „Metallica One”, mogę wpisać i zobacz film „https://www.youtube.com/watch?v=iT6vqeL-ysI”
W części stage nie możemy używać akcentów, ani dziwnych znaków, a zmienne są ujęte w cudzysłów (będą to dane przekazywane do naszego kodu Rubiego).

Krok 6
Nadeszła kolej na plik step_Youtube.rb, To kod Rubiego przejdzie nasze testy, spójrz na kod, który ma (Given, When, So) każda funkcja odwołuje się do linii, te, które wcześniej miały „zmienne”, otrzymują parametry (1 dla każdej zmiennej w .feature ) , w tym celu konieczne jest użycie wyrażeń regularnych. Poniżej kodu.

 Ponieważ / jestem na stronie YouTube $ / odwiedź 'https://www.youtube.com/?hl=en&gl=EN' end Kiedy (/ szukam „([^”] *) „$ / ) do | search | fill_in 'search_query',: with => search click_button 'Search' end Następnie (/ Mogę wpisać i obejrzeć wideo "([^"] *) "$ /) do | video | wyniki = wszystkie ('a').map {| a | a ['href']} if not results.include? (wideo) podnieś „Nie znaleziono filmu” koniec wizyty (wideo) koniec
W tym kodzie, w drugiej funkcji widać search_query, ta nazwa, której nie wymyśliłem, jest atrybutem name, który ma pole wyszukiwania Youtube.

Instrukcja: wyniki = wszystkie ('a').map {| a | a ['href']}To, co robi, to pobiera listę wszystkich elementów a na stronie, a z tej listy pobiera wartości atrybutów href, przechowując je w zmiennej wynikowej i w ten sposób możemy zobaczyć, czy w sieci chcemy do odwiedzenia jest na stronie, w tym przykładzie będzie to zależało od tego, czy utwór pojawi się na pierwszej stronie, więc jeśli test się nie pojawi, to wyjdzie na czerwono, a jeśli nie wszystko na zielono, pokażę obrazek na koniec wyjścia).

Krok 7
Zamierzamy wypełnić ostatni plik env.rb, jest to plik konfiguracyjny, wskaże używany język, sterowniki itp. W tym przypadku używamy kapibary i selenu.

 require 'capybara' require 'capybara / dsl' Capybara.default_driver =: pomocnik modułu selenu def without_resynchronize page.driver.options [: resynchronize] = false yield page.driver.options [: resynchronize] = true end end Świat (Capybara :: DSL, pomocnicy)
Tutaj masz kod.

3. Uruchom projekt


Czas na uruchomić nasz projekt przetestować Youtube.

Krok 1
Otwieramy terminal lub cmd i przechodzimy do folderu Testing-Selenium, gdzie znajduje się cały nasz wcześniej utworzony projekt.

Krok 2
Piszemy ogórek i dajemy enter, Cucumber będzie szukał w folderze funkcji plików .feature (w tym przypadku jest tylko 1) i kroków (plików Ruby) tych .features. Jeśli jest poprawny, zobaczymy, jak przeglądarka się otwiera i zaczyna przeprowadzać testy. Jeśli nie masz zdefiniowanych funkcji Rubiego, pojawi się ekran wskazujący, że kroki nie są zdefiniowane, jak na poniższym obrazku:

Jeśli wszystko pójdzie dobrze, otrzymasz ekran podobny do następującego:

NotatkaJeśli wyświetla ostrzeżenie i nie maluje kolorów w systemie Windows, odwiedź to repozytorium.

Jeśli chcesz szybszy test, będziesz potrzebować przeglądarki bez interfejsu graficznego (Phantomjs) i Poltergeist, który jest sterownikiem dla Capybara (tak samo jak Selenium), ale łączy się z Phantomjs.

  • Zainstaluj Poltergeist:
     klejnot zainstalować poltergeist
  • Zainstaluj Phantomjs:
     klejnot zainstalować phantomjs

W przypadku, gdy chcesz pobrać cały projekt, dołączam zip (pamiętaj, że test został zdany w Ubuntu):

Testowanie-Selenium.zip 1.71K 167 Pobrań

Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt
wave wave wave wave wave