Nastavenie selénovej mriežky pre distribuované testovanie selénu



Tento blog vám pomôže pochopiť potrebu Selenium Grid a jeho výhody. Prečítajte si ju a nastavte svoju prvú selénovú mriežku konfiguráciou uzla a uzlov.

Ostatné blogy v tejto sérii tutoriálov o seléne hovoria o vytváraní testovacích prípadov a ich postupnom a paralelnom vykonávaní. Poslednou technikou, ktorá zostáva na diskusiu, je teda vykonávanie testovacích prípadov na vzdialených počítačoch. Na vykonanie týchto testov na vzdialených počítačoch / hostiteľoch je možné použiť Selenium Grid. To je teda téma diskusie o dnešnom blogu.

  1. Prečo a kedy používať Selenium Grid?
  2. Čo je to selénový rošt?
  3. Selénová mriežka 1 vs. Selénová mriežka 2
  4. Architektúra selénovej mriežky
  5. Budovanie selénovej mriežky

Prečo a kedy použiť selénovú mriežku?

V súčasnosti sa používa toľko webových prehľadávačov. Používatelia môžu na čítanie tohto blogu používať buď Chrome alebo Firefox, Safari alebo Opera alebo dokonca Internet Explorer. Možno používajú rôzne verzie prehľadávačov. Môžu tiež používať tieto prehľadávače na ľubovoľnom operačnom systéme, či už je to Windows alebo Mac alebo Ubuntu alebo v akejkoľvek inej distribúcii systému Linux.





Čo ak by používatelia videli na internete niečo dôležité? Niečo dôležité pre vaše podnikanie. Nechceli by ste prejsť tou ďalšou míľou (testovanie webovej aplikácie), len aby ste zaistili, že vaši používatelia alebo zákazníci získajú najlepší používateľský dojem? Mali by ste, že?

No mali by ste!



Otázkou však je, ako je to možné? Budete môcť tráviť čas testovaním svojej webovej aplikácie na všetkých možných operačných systémoch a vo všetkých dostupných webových prehliadačoch? Hmm, znie to ako malá výzva. To je miesto, kde Selenium Grid zapadá do zákona a pomáhašetrite svoj čas a energiu.

Okrem toho vyvstáva ešte jedna otázka: Je možné zriadiť infraštruktúru selénovej siete pomocou miestnych systémov? Údržba mriežky so všetkými požadovanými prehľadávačmi a operačnými systémami je výzvou. Existuje niekoľko online platforiem, ktoré poskytujú online selenovú mriežku, ku ktorej máte prístup a môžete tak spúšťať svoje skripty na automatizáciu selénu. Môžete napríklad použiť LambdaTest . Má viac ako 2 000 prostredí prehľadávačov, v ktorých môžete spúšťať svoje testy a skutočne automatizovať ich testovanie.

Čo je selénová mriežka?

Selénová mriežka je ďalším dôležitým nástrojom v súbore nástrojov selénu. Grid je schopný koordinovať testy WebDriver / RC, ktoré môžu bežať súčasne na viacerých webových prehliadačoch alebo môžu byť spustené na rôznych operačných systémoch alebo dokonca hostené na rôznych strojoch.



mriežková práca - selénová mriežkaAko to teda funguje? Grid využíva architektúru Hub-Node, kde je jeden Hub, ktorý funguje ako hlavný a jeden alebo viac uzlov ako otrokov.

Čo to znamená, ak máte celkom 100 úloh / testov, ktoré je potrebné vykonať, potom je možné testy vykonať súčasne na 5 strojoch, kde na každom stroji bude spustených 20 testov. Tieto testy môžete v skutočnosti vykonať v rôznych kombináciách operačných systémov a prehľadávačov. Každý stroj tu môže mať odlišný operačný systém a vo vnútri každého operačného systému sa testy môžu vykonávať v rôznych prehľadávačoch.

Týmto aktom by ste ľahko mohli ušetriť veľa času pri vykonávaní testu. Ak vezmete do úvahy vyššie uvedený príklad, potom môžeme znížiť čas vykonávania na zhruba 1/5 z celkového času potrebného na vykonanie testov na jednom stroji.

Ak si spomínate z mojich predchádzajúcich blogov, spomenul som nespočetne veľakrát, že Grid bol súčasťou projektu Selenium od jeho vzniku, teda od Selenium v1. Selénová mriežka bola tiež súčasťou selénu v2 a v súčasnosti je súčasťou selénu v3. Nie je veľký rozdiel vo v2 a v3 selénového roštu. Avšak verzia 1 má pomerne veľa rozdielov. Takže poďmepochopiť rozdiely medzi v1 a v2.

Selénová mriežka 1 vs. Selénová mriežka 2

Zásadný rozdiel medzi Grid v1.0 a v2.0 je ten, že RC bol použitý v Grid 1 a WebDriver bol použitý v Grid 2. Nasledujúca tabuľka vysvetľuje rozdiely podrobne.

Mriežka 1 Mriežka 2
Vyžaduje inštaláciu Apache AntInštalácia Apache Ant sa nevyžaduje
Má vlastné diaľkové ovládanie (líši sa od RC servera)Dodáva sa so súborom jar servera Selenium Server
Podporuje iba príkazy selénu RCPodporuje skripty Selenium RC aj WebDriver
Na každé diaľkové ovládanie môžete automatizovať iba jeden prehliadačNa jedno diaľkové ovládanie môžete automatizovať až 5 prehľadávačov


Teraz, keď sme sa dozvedeli zásadné rozdiely medzi týmito dvoma verziami, ponorme sa hlboko do selénovej mriežky.

Architektúra selénovej mriežky

Ako som už spomínal, Grid funguje na základe jedného rozbočovača a viacerých uzlov. Čo sú to však Hub a Nodes a čo robia?

Rozbočovač

V ľubovoľnom nastavení siete môže byť iba jeden rozbočovač, ktorý bude ústredným bodom tohto nastavenia siete. Mali by sa sem načítať všetky testy, ktoré je potrebné vykonať. Napriek tu načítaným testom sa vykonajú iba na uzloch. Môžeme nakonfigurovať akýkoľvek hostiteľský počítač ako náš Hub a bude koordinovať aktivity vykonávania testu v iných hostiteľoch.

Aby sa to stalo, musíme najskôr nakonfigurovať Hub a potom vytvoriť ďalšie uzly, aby sa zaregistrovali do Hubu. Predtým, ako prídem do príliš veľa detailov, ukážem vám príkaz na konfiguráciu rozbočovača.

Konfigurácia rozbočovača

Najprv si musíte stiahnuť súbor JAR servera Selenium z webovej stránky Seleniumhq. Odkaz je tu . Musíte sa tiež ubezpečiť, že je vo vašom systéme nainštalovaná Java a sú nastavené premenné prostredia.

Po stiahnutí súboru jar ho musíte umiestniť do vhodného adresára. Pre väčšie pohodlie som si ho stiahol a umiestnil do priečinka Selenium na disku C Drive. Odporúča sa tiež stiahnuť súbor jar a umiestniť ho do podobného adresára vo všetkých ostatných uzloch.

Ak chcete nakonfigurovať rozbočovač, musíte spustiť príkaz v príkazovom riadku systému Windows. Príkaz sa nachádza v úryvku nižšie.

C: UsersVardhan> cd .. C: Users> cd .. C:> cd Selenium C: Selenium> java -jar selenium-server-standalone-3.4.0.jar -role hub

The selén-server-samostatný-3.4.0.jar je názov súboru jar, ktorý som si stiahol.
The -role príznak sa používa na nastavenie konkrétneho hostiteľského počítača ako rozbočovača. Po stlačení klávesu Enter sa na obrazovke zobrazí nasledujúci výstup.

Ak ste si vyššie nevšimli snímku obrazovky, pozrite si ju znova. Hovorí ' -Node by sa mali zaregistrovať na http://192.168.0.11:4444/grid/register „. Teraz, keď je Hub nakonfigurovaný, musíme nastaviť uzly a pripojiť ich k tomuto Hubu.

192.168.0.11 je adresa IP rozbočovača a každý uzol by sa mal pripojiť k tejto adrese IP. 4444 je predvolené číslo portu, na ktorom je hostený server Selenium Grid a ktorý počúva žiadosti. Ak na porte 4444 beží nejaká iná služba a chcete, aby sa Selenium Grid hostil na inom porte, môžete to urobiť zadaním -port vlajka nasledovaná číslom portu.

návod pre Amazon Amazon EC2 pre začiatočníkov

Uzly

Uzly sú hostiteľské počítače, na ktorých sa vykonávajú testy. Tieto testy spustí Hub. Hub môže spustiť jeden alebo viac uzlov buď na vzdialených počítačoch alebo na rovnakom stroji, kde sa nachádza samotný Hub. Na každom z Uzlov je možné zaviesť rôzne operačné systémy a na rôznych operačných systémoch je možné inicializovať rôzne verzie toho istého prehliadača alebo rôznych prehľadávačov.

Konfigurácia uzlov

Podobne ako v prípade rozbočovača je potrebné najskôr stiahnuť súbor Jar do strojov Node a umiestniť ho na disk C alebo do iného spoločného adresára. Nasledujúci príkaz potom môžete spustiť v príkazovom riadku systému Windows. Ak spúšťate dokonca aj uzol na rovnakom počítači ako váš rozbočovač, musíte tento príkaz spustiť spustením iného príkazového riadku.

java -Dwebdriver.chrome.driver = E: chromedriver.exe -jar selenium-server-standalone-3.4.0.jar -role node -hub http://192.168.0.11:4444/grid/register

V porovnaní s príkazom potrebným na spustenie rozbočovača existuje v tomto príkaze iba niekoľko rozdielov.
-Dwebdriver.chrome.driver = E: chromedriver.exe sa používa na nastavenie cesty ovládača prehliadača. Podobne ako pri nastavení cesty ovládača prehliadača v kóde WebDriver, tu ho zadáte, aby uzol umožnil vykonávanie testov. Od verzie Selenium v3 si musíte stiahnuť prehliadač ovládačov pre Firefox. Ovládač prehľadávača pre Firefox je ovládač Gecko. Vo verziách 1 a 2 je však potrebné nastaviť ovládač prehľadávača pre všetky prehľadávače okrem prehliadača Firefox.
-rolový uzol príznak sa používa na nastavenie konkrétneho hostiteľského počítača ako uzla.
-hub http://192.168.0.11:4444/grid/register informuje Uzol o pripojení k Hubu pomocou IP adresy Hubu. Je dôležité poznamenať, že ak spúšťate akýkoľvek uzol na rovnakom počítači ako váš rozbočovač, môžete určiť ‘ -hub http: // localhost: 4444 / mriežka / register „V príkaze namiesto adresy IP rozbočovača.

ako používať mysql pracovný stôl -

Po stlačení klávesu Enter sa na príkazovom riadku zobrazí nasledujúci výstup.

Teraz by bol uzol pripojený k rozbočovaču. Môžete to overiť tak, že sa vrátite na príkazový riadok, ktorý slúži na spustenie rozbočovača, a všimnete si nasledujúcu správu: „ Zaregistroval som uzol http://192.168.0.11:5555 „.

IP adresa a číslo portu je adresa vášho uzla. Pretože mám svoj uzol na rovnakom stroji ako môj rozbočovač, port použitý pre uzol je 5555. Keď ho inicializujete na inom počítači, použije sa predvolený port.

Po spustení nasledujúcej adresy URL v zariadení rozbočovača získate stav uzlov pripojených k vášmu rozbočovaču. Pozrite sa na zvýraznenú časť na snímke obrazovky nižšie.

Teraz, keď je nakonfigurovaná vaša selénová mriežka, môžete pokračovať v vykonávaní testovacích skriptov na uzloch. Dovoľte mi znovu zdôrazniť, že musíme v našom Hube spúšťať skripty, ktoré sa budú spúšťať v našich Uzloch. Skript použitý na vykonanie testov je podobný ako WebDrivertesty.

Budovanie selénovej mriežky

Spustil som svoj skript v Eclipse IDE. Vykonanie tohto skriptu závisí od dvoch dôležitých balíkov knižníc. Oni sú DesiredCapabilities objekt a RemoteWebDriver objekt.

DesiredCapabilities sa používa na nastavenie typu prehliadača a OS nášho Uzla. Ak chcete importovať objekt DesiredCapabilities, použite nasledujúci kód.

importovať org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver sa používa na výber uzla, na ktorom chceme vykonať test. Na importovanie objektu RemoteWebDriver použite nasledujúce riadky kódu.

import java.net.MalformedURLException import java.net.URL import org.openqa.selenium.remote.RemoteWebDriver

Importoval som tieto dva balíčky spolu s balíkom anotácií TestNG pre svoj skript, ako je znázornené v nasledujúcom útržku kódu. Importoval som anotácie TestNG, pretože som ich vykonal ako test TestNG, pre ktorý sa vygeneruje podrobná správa. Odporučil by som vám importovať rovnakú sadu balíkov pre váš kód.

Pri manévrovaní s logami ľubovoľného prehľadávača v konzole Selenium Hub získate podrobnosti ako napríklad názov prehliadača a plošina uzla, ktorý chcete automatizovať. Obrázok tiež naznačuje, koľko inštancií prehľadávačov môžem vo svojom uzle otvoriť. Môžem nakonfigurovať maximálne 5 chrómových, 5 inštancií Firefoxu a 1 inštanciu Internet Explorer. Tieto podrobnosti sú uvedené na nasledujúcej snímke obrazovky.

Na nastavenie svojej prvej mriežky môžete použiť kód v nasledujúcom úryvku.

balíček GridTest import org.testng.annotations.AfterTest import org.testng.annotations.BeforeTest import org.testng.annotations.Test import java.net.MalformedURLException import java.net.URL import org.junit.Assert import org.openqa.selenium .Platform import org.openqa.selenium.WebDriver import org.openqa.selenium.remote.DesiredCapabilities import org.openqa.selenium.remote.RemoteWebDriver public class TestGrid {static WebDriver driver static String nodeUrl @BeforeTest public void setup () throws MalformedURLE nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilities capabilities = DesiredCapabilities.chrome () capabilities.setBrowserName ('chrome') capabilities.setPlatform (Platform.WINDOWS) ovládač = nový RemoteWebDriver (nová URL (nodeUrl) ), možnosti)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest public void afterTest () {driver.quit ()}}

Celý testovací skript som rozdelil do troch testovacích anotácií. @BeforeTest, @Test a @AfterTest. V @BeforeTest som na konfiguráciu môjho uzla použil objekty DesiredCapablities a RemoteWebDriver. V službe @Test som požiadal uzol, aby prešiel na domovskú stránku spoločnosti Edureka a uplatnil jej názov. V aplikácii @AfterTest som požiadal uzol o ukončenie inštancie prehliadača.

Po vykonaní testu získate výstup uvedený nižšie.

18. mája 2017 15:09:07 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Zistený dialekt: OSS PROŠLO: simpleTest ====================== =========================== Predvolený test Testované testy: 1, zlyhania: 0, preskočenie: 0 =========== =================================================== ================================== Predvolený balík Celkový počet spustených testov: 1, Zlyhania: 0, Preskočenie: 0 = ===============================================

Pretože sa to vykonáva ako test TestNG, dostanete podrobnú správu o teste podobnú snímke obrazovky uvedenej nižšie.

Ak neviete, čo je TestNG a ako používať testovacie anotácie, prečítajte si môj blog o tom, ako používať Selénový WebDriver s TestNG z tejto série tutoriálov selénu.

Video môžete vidieť nižšie, aby ste boli svedkami ukážky, ako postaviť selénovú mriežku. Inštruktor poskytujúci video vysvetľuje rovnaké koncepty, aké sú vysvetlené v tomto blogu.

Výukový program pre selenovú mriežku pre začiatočníkov Výukový program pre selén Edureka

Týmto sa dostávame na koniec tohto blogu Selenium Grid. Ak máte pochybnosti alebo problémy s akýmkoľvek kódom / obsahom tejto série blogov, zanechajte ich v sekcii komentárov nižšie a ja váš problém vyriešim najskôr.

Ak sa chcete naučiť selén a budovať si kariéru v testovacej doméne, pozrite si náš interaktívny online prenos tu je dodávaná s podporou 24 * 7, ktorá vás prevedie celým vzdelávacím obdobím.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov a my sa vám ozveme.