Automatické webové testování s Ruby, Capybara a Selenium

Tento tutoriál je zaměřen na to, aby vám ukázal, jak je lze vytvářet projekty pro automatické testování webových stránek, má povrchní vysvětlení s příkladem testování na stránku YouTube. Abyste ji dobře pochopili, budete muset mít základní představy o Ruby.

PoznámkaTento test byl spuštěn v Ubuntu 15.10, proto pro jeho provedení doporučuji použít Linux, nicméně jsem uvedl, jak nainstalovat programy do Windows.

1. Nainstalujte potřebné požadavky


Potřebujeme Ruby a její drahokamy (Pokud používáte Mac, budete ho mít již nainstalovaný).

Instalace Ruby na Windows
Instalační program stáhnete kliknutím na následující tlačítko:

STÁHNĚTE RUBY PRO WINDOWS

Nejprve stáhneme a nainstalujeme R.instalační program uby, (v instalaci nezapomeňte zaškrtnout možnost přidat Ruby do Windows PATH), poté vývojová sada, rozbalte jeho obsah na disk C do složky, kterou budete muset vytvořit. Říkám tomu Devkit, ale můžete tomu říkat, jak chcete (viz následující obrázek).

Nyní otevřete Windows cmd a proveďte následující pokyny:

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

Ruby instalace na Linuxu
V nejnovějších verzích již máme nainstalovaný Ruby, ale jen pro případ, musíš běžet:

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

Nainstalujte zbývající potřebné programy (platí pro všechny OS)
Potřeba nainstalujte okurku, což je testovací nástroj, který nám pomáhá provádět BDD.

 drahokam nainstalujte okurku
Také potřebujeme nainstalujte Capybara, což je specifický jazyk, který nám pomůže interagovat s webovými stránkami.
 drahokam nainstalujte kapybaru
A nakonec musíte nainstalovat selen, je ovladačem pro Capybara, používá JavaScriptový engine prohlížeče a umožňuje nám vidět, jak test prochází vizuálně.
 drahokam nainstalujte selen-webdriver
Je to trochu pomalé.

2. Vytvořte projekt


Jakmile máme vše nainstalováno, vytvoříme strukturu našeho projektu.

Krok 1
Vytvořme složku, nazveme ji Testování-selen. Bude to složka, která bude obsahovat všechny soubory, které budeme potřebovat, proto ji můžeme považovat za kořenovou složku projektu.

Krok 2
Uvnitř složky Testování-selen (kořenová složka) vytvořme složku s názvem funkce. Který bude obsahovat vše, co potřebujete ke spuštění procesu.

Krok 3
Ve složce funkcí vytvoříme další 2 složky (step_definitions Y Podpěra, podpora) a také soubor s názvem test. funkce.

Krok 4
Uvnitř step_definitions vytvoříme soubor Ruby s názvem step_Youtube.rb. a nyní uvnitř složky podpory vytvoříme další soubor Ruby s názvem env.rb.

Krok 5
Vyplníme soubor test.feature, bude napsán formálním jazykem (Gherkin), definuje test, který chceme absolvovat v jazyce, kterému rozumí každý (Samotný test je fázovou částí, zbytek je popisem) In. Jeho obsah je následující:

 #language: je charakteristický: Přejít na youtube Jako tester chci zadat youtube, abych otestoval vyhledávání Chcete -li vědět, zda vše funguje dobře Scénář: Testovat youtube, protože jsem na stránce youtube Když hledám „Metallica One“, pak mohu zadat a podívejte se na video „https://www.youtube.com/watch?v=iT6vqeL-ysI“
V části fáze nemůžeme použít akcenty nebo podivné znaky a proměnné jsou uzavřeny do uvozovek (budou to data předaná našemu kódu Ruby).

Krok 6
Na řadě je soubor step_Youtube.rb„Je to kód Ruby, který projde našimi testy, podívejte se na kód, který má (Vzhledem k tomu, kdy, takže) každá funkce odkazuje na řádek, ty, které dříve měly„ proměnné “, přijímají parametry (1 pro každou proměnnou v .feature ), k tomu je nutné použít regulární výrazy. Pod kódem.

 Protože/ jsem na stránce youtube $/ do navštivte 'https://www.youtube.com/?hl=cs&gl=EN' end When (/ I search for "([ ^"] *) "$ /) do | search | fill_in 'search_query' ,: with => search click_button 'Search' end Then ( / I can enter and watch the video "([ ^"] *) "$ /) do | video | results = all ('a'). map {| a | a ['href']} pokud to není results.include? (video) zvýšit "Video not found" end visit (video) end
V tomto kódu, ve druhé funkci můžete vidět search_query, toto jméno, které jsem nevymyslel, je atribut name, který má vyhledávací pole Youtube.

Pokyn: results = all ('a'). map {| a | a ['href']}Co to dělá, je získat seznam všech prvků a na stránce a z tohoto seznamu získá hodnoty atributů href, uložit je do výsledkové proměnné, a tak můžeme zjistit, zda web chceme návštěva je na stránce. V tomto případě bude záležet na tom, zda se skladba objeví na první stránce, takže pokud se test nezobrazí, vyjde červený a pokud ne vše zeleně, ukážu obrázek na konec výstupu).

Krok 7
Vyplníme poslední soubor env.rb, je to konfigurační soubor, který bude indikovat jazyk, který se má použít, ovladače atd. V tomto případě používáme kapybaru a selen.

 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, pomocníci)
Tady máte kód.

3. Spusťte projekt


Je čas spustit náš projekt vyzkoušet Youtube.

Krok 1
Otevřeme terminál nebo cmd a přejdeme do složky Testing-Selenium, kde je veškerý náš dříve vytvořený projekt.

Krok 2
Píšeme okurku a dáváme enter, Okurka vyhledá ve složce funkcí soubory .feature (v tomto případě existuje pouze 1) a kroky (soubory Ruby) těchto .features. Pokud je to správné, uvidíme, jak se prohlížeč otevře a začne spouštět testy. Pokud nemáte definovány funkce Ruby, zobrazí se obrazovka indikující, že kroky nejsou definovány, jako na následujícím obrázku:

Pokud vše proběhne správně, budete mít obrazovku podobnou následující:

PoznámkaPokud vás upozorní a nenamaluje barvu ve Windows, navštivte toto úložiště.

Pokud chcete rychlejší test, budete potřebovat prohlížeč bez grafického rozhraní (Phantomjs) a Poltergeist, což je ovladač pro Capybara (stejný jako Selenium), ale který se spojuje s Phantomjs.

  • Nainstalujte Poltergeist:
     gem nainstalovat poltergeist
  • Nainstalujte Phantomjs:
     gem nainstalovat phantomjs

V případě, že si chcete stáhnout celý projekt, přikládám zip (pamatujte, že test prošel v Ubuntu):

Testování-Selenium.zip 1,71K 167 stažení

Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave