Автоматично уеб тестване с Ruby, Capybara и Selenium

Този урок е фокусиран върху това да ви покаже как те могат да бъдат създадени проекти за автоматично тестване на уеб страници, има повърхностно обяснение с пример за тестване на страницата в YouTube. Ще трябва да имате основни представи за Ruby, за да го разберете добре.

ЗабележкаТози тест е стартиран в Ubuntu 15.10, затова препоръчвам да използвате Linux за неговото изпълнение, но посочих как да инсталирам програмите в Windows.

1. Инсталирайте необходимите изисквания


Нуждаем се от Ruby и неговите скъпоценни камъни (Ако използвате Mac, вече ще имате инсталиран).

Инсталиране на Ruby на Windows
За да изтеглите инсталатора, щракнете върху следния бутон:

ИЗТЕГЛЕТЕ RUBY ЗА WINDOWS

Първо изтегляме и инсталираме Ruby инсталатор, (в инсталацията не забравяйте да проверите опцията за добавяне на Ruby към прозореца PATH), след това комплект за разработка, извлечете съдържанието му на диск C в папка, която ще трябва да създадете. Наричам го Devkit, но можете да го наречете както искате (Вижте следното изображение).

Сега отворете Windows cmd и изпълнете следните инструкции:

 chdir C: \ Devkitruby dk.rb initruby dk.rb инсталиране

Ruby инсталация на Linux
В най -новите версии вече имаме инсталиран Ruby, но за всеки случай, трябва да бягате:

 sudo apt-get install rubysudo apt-get install rubygems
[color = # a9a9a9] Ruby инсталация [/ color]

Инсталирайте останалите необходими програми (валидно за всички ОС)
Трябва инсталирайте краставица, който е инструмент за тестване, който ни помага да изпълняваме BDD.

 скъпоценни камъни инсталирайте краставица
Ние също се нуждаем инсталирайте Capybara, който е специфичен език, който ще ни помогне да взаимодействаме с уеб страници.
 скъпоценни камъни инсталирайте capybara
И накрая трябва инсталирайте селен, е драйвер за Capybara, използва JavaScript двигателя на браузъра и ни позволява да видим как тестът преминава визуално.
 скъпоценен камък инсталирайте selenium-webdriver
Това е някак бавно.

2. Създайте проекта


След като инсталираме всичко, ще създадем структурата на нашия проект.

Етап 1
Нека да създадем папка, да я наречем Тестване-Селен. Това ще бъде папката, която ще съдържа всички файлове, които ще ни трябват, затова можем да я разглеждаме като основна папка на проекта.

Стъпка 2
Вътре в папката Тестване-Селен (основна папка) нека създадем папка с име Характеристика. Което ще съдържа всичко необходимо за стартиране на процеса.

Стъпка 3
Вътре в папката с функции създаваме още 2 папки (step_definitions Y поддържа), а също и файл, наречен test.feature.

Стъпка 4
Вътре в step_definitions ще създадем Ruby файл, наречен step_Youtube.rb. и сега в папката за поддръжка ще създадем друг Ruby файл, наречен env.rb.

Стъпка 5
Попълваме файла test.feature, той ще бъде написан на официален език (корнишон), той определя теста, който искаме да преминем на език, разбираем за всички (Самият тест е сценичната част, останалото е описание) В. Съдържанието му е следното:

 #език: е характерен: Отидете в youtube Като тестер, искам да вляза в youtube, за да тествам търсенето. и вижте видеоклипа „https://www.youtube.com/watch?v=iT6vqeL-ysI“
В етапната част не можем да използваме акценти или странни знаци, а променливите са затворени в двойни кавички (това ще бъдат данните, предадени на нашия Ruby код).

Стъпка 6
Дойде ред на файла step_Youtube.rb, Това е кодът Ruby, който ще премине нашите тестове, погледнете кода, който (Дадено, Кога, Така че) всяка функция се отнася до ред, тези, които преди са имали "променливи" получават параметри (1 за всяка променлива във .feature ), за това е необходимо да се използват регулярни изрази. Под кода.

 Тъй като/ Аз съм на страницата в YouTube $/ направете посещение 'https://www.youtube.com/?hl=bg&gl=EN' end Когато (/ търся "([ ^"] *) "$ /) do | search | fill_in 'search_query' ,: with => search click_button 'Search' end Тогава ( / мога да вляза и да гледам видеото "([ ^"] *) "$ /) do | video | резултати = всички ('a'). карта {| a | a ['href']} ако не резултати.включва? (видео) повишаване "Видео не е намерено" крайно посещение (видео) край
В този код, във втората функция можете да видите search_query, това име, което не съм измислил, е атрибутът на името, който има полето за търсене в Youtube.

Инструкцията: резултати = всички ('a'). карта {| a | a ['href']}Това, което прави, е да получи списък с всички елементи a на страницата и от този списък получава стойностите на атрибутите href, съхранявайки ги в променливата резултат, и по този начин можем да видим дали мрежата, която искаме да посетите е на страницата, В този пример това ще зависи от това дали песента се появява на първата страница, така че ако тестът не се появи, той ще излезе червен и ако не всичко в зелено, ще покажа изображение на края на изхода).

Стъпка 7
Ще попълним последния файл env.rb, това е конфигурационен файл, той ще посочи езика за използване, драйверите и т.н. В този случай използваме Capybara и Selenium.

 изискват 'capybara' изискват 'capybara / dsl' Capybara.default_driver =: модул на селен Помощници def без_resynchronize page.driver.options [: resynchronize] = false page page.driver.options [: resynchronize] = истински край на света (Capybara :: DSL, помощници)
Тук имате кода.

3. Стартирайте проекта


Време е за стартирайте нашия проект за тестване на Youtube.

Етап 1
Отваряме терминал или cmd и отиваме в папката Testing-Selenium, където е целият ни създаден по-рано проект.

Стъпка 2
Пишем краставица и даваме enter, Краставицата ще търси в папката с функции файловете .feature (в този случай има само 1) и стъпките (Ruby файлове) на тези .features. Ако е правилно, ще видим как браузърът се отваря и започва да изпълнява тестовете. Ако нямате дефинирани функции Ruby, ще се появи екран, показващ, че стъпките не са дефинирани, като следното изображение:

Ако всичко върви правилно, в крайна сметка ще имате екран като следния:

ЗабележкаАко ви дава предупреждение и не рисува цвят в Windows, посетете това хранилище.

Ако искате по -бърз тест, ще ви е необходим браузър без графичен интерфейс (Phantomjs) и Poltergeist, който е драйвер за Capybara (същото като Selenium), но който се свързва с Phantomjs.

  • Инсталирайте Poltergeist:
     скъпоценен камък инсталирайте poltergeist
  • Инсталирайте Phantomjs:
     gem install phantomjs

В случай, че искате да изтеглите целия проект, прикачвам цип (не забравяйте, че тестът е преминат в Ubuntu):

Тестване-Selenium.zip 1.71K 167 изтегляния

Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка
wave wave wave wave wave