Nastavení selenové mřížky pro distribuované testování selenu



Tento blog vám pomůže porozumět potřebě selenové mřížky a jejích výhod. Přečtěte si jej a nastavte svůj první Selenium Grid konfigurací rozbočovače a uzlů.

Ostatní blogy v této výukové sérii Selenium hovoří o vytváření testovacích případů a provádění těchto testovacích případů v pořadí a paralelně. Poslední technikou, která zbývá k diskusi, je provádění testovacích případů na vzdálených počítačích. Selenium Grid lze použít k provedení těchto testů na vzdálených počítačích / hostitelích. To je tedy téma diskuse dnešního blogu.

  1. Proč a kdy použít Selenium Grid?
  2. Co je Selenium Grid?
  3. Selenium Grid 1 vs. Selenium Grid 2
  4. Architektura selenové mřížky
  5. Budování selenové mřížky

Proč a kdy použít selenovou mřížku?

V současnosti se používá tolik webových prohlížečů. Uživatelé mohou ke čtení tohoto blogu používat buď Chrome nebo Firefox nebo Safari nebo Opera nebo dokonce Internet Explorer. Možná používají různé verze prohlížečů. Mohou také používat tyto prohlížeče v jakémkoli operačním systému, ať už je to Windows nebo Mac nebo Ubuntu nebo v jakékoli jiné distribuci Linuxu.





Co kdyby uživatelé viděli něco důležitého na internetu? Něco důležitého pro vaše podnikání. Nechtěli byste jít tou mílí navíc (testování webové aplikace) jen proto, abyste zajistili, že vaši uživatelé nebo zákazníci získají nejlepší uživatelský zážitek? Ty ano, že?

Měli byste!



Otázkou však je, jak je to možné? Budete moci trávit čas testováním své webové aplikace na každém možném operačním systému a každém dostupném webovém prohlížeči? Hmm, to zní jako trochu výzva. To je místo, kde Selenium Grid zapadá do zákona a pomáhášetří váš čas a energii.

Kromě toho vyvstává ještě jedna otázka: Je možné vytvořit infrastrukturu selenové mřížky pomocí místních systémů? Údržba mřížky se všemi požadovanými prohlížeči a operačními systémy je výzvou. K tomu existuje několik online platforem, které poskytují online selenovou mřížku, ke které máte přístup ke spouštění automatizačních skriptů selenu. Můžete například použít LambdaTest . Má více než 2 000 prostředí prohlížeče, ve kterých můžete spouštět své testy a skutečně automatizovat testování mezi prohlížeči.

Co je selenová mřížka?

Selenium Grid je dalším důležitým nástrojem v sadě nástrojů Selenium. Grid je schopen koordinovat testy WebDriver / RC, které mohou běžet současně na více webových prohlížečích nebo mohou být spuštěny na různých operačních systémech nebo dokonce hostovány na různých počítačích.



grid working - selenium gridJak to tedy dopadne? Grid využívá architekturu Hub-Node, kde existuje jeden Hub, který funguje jako hlavní a jeden nebo více uzlů jako otroků.

To znamená, že pokud máte celkem 100 úloh / testů, které je třeba provést, lze testy provést současně na 5 počítačích, kde na každém počítači bude spuštěno 20 testů. Ve skutečnosti můžete tyto testy provádět v různých kombinacích operačních systémů a prohlížečů. Každý stroj zde může mít jiný operační systém a uvnitř každého operačního systému mohou být testy prováděny v různých prohlížečích.

Tento akt by snadno ušetřil spoustu času při provádění testu. Pokud vezmete v úvahu výše uvedený příklad, pak můžeme zkrátit dobu provádění na přibližně 1/5 celkového času potřebného k provedení testů na jednom počítači.

Pokud si vzpomenete z mých předchozích blogů, zmínil jsem nespočetně mnohokrát, že Grid byl součástí projektu Selenium od jeho založení, tj. Od Selenium v1. Selenium Grid byl také součástí Selenium v2 a v současné době je součástí Selenium v3. Ve v2 a v3 selenové mřížky není velký rozdíl. V1 má však poměrně mnoho rozdílů. Pojďmepochopit rozdíly mezi v1 a v2.

Selenium Grid 1 vs. Selenium Grid 2

Základní rozdíl mezi Grid v1.0 a v2.0 je ten, že RC byl použit v Grid 1 a WebDriver byl použit v Grid 2. Tabulka níže vysvětluje rozdíly podrobně.

Mřížka 1 Mřížka 2
Vyžaduje instalaci Apache AntInstalace Apache Ant není nutná
Má vlastní dálkové ovládání (liší se od RC serveru)Balíček se souborem jar serveru Selenium
Podporuje pouze selenové RC příkazyPodporuje skripty Selenium RC a WebDriver
Na dálkové ovládání můžete automatizovat pouze jeden prohlížečNa jedno dálkové ovládání můžete automatizovat až 5 prohlížečů


Nyní, když jsme se naučili zásadní rozdíly mezi těmito dvěma verzemi, se ponořme hlouběji do Selenium Grid.

Architektura Selenové Mřížky

Jak jsem již zmínil dříve, Grid funguje na základě jednoho rozbočovače a více uzlů. Ale co jsou Hub a Nodes a co dělají?

The Hub

V jakémkoli nastavení mřížky může existovat pouze jeden rozbočovač a ten bude ústředním bodem v tomto nastavení mřížky. Zde by měly být načteny všechny testy, které je třeba provést. I přes zde načtené testy budou provedeny pouze v uzlech. Můžeme nakonfigurovat jakýkoli hostitelský počítač jako náš Hub a bude koordinovat aktivity provádění testu v jiných hostitelích.

Aby se to stalo, musíme nejprve nakonfigurovat rozbočovač a poté provést další uzly k registraci do rozbočovače. Než půjdu do příliš mnoha podrobností, dovolte mi ukázat vám příkaz ke konfiguraci centra.

Konfigurace rozbočovače

Nejprve si musíte stáhnout soubor JAR serveru Selenium z webu Seleniumhq. Odkaz je tady . Musíte se také ujistit, že je ve vašem systému nainstalována Java a jsou nastaveny proměnné prostředí.

Jakmile si stáhnete soubor jar, musíte jej umístit do příslušného adresáře. Pro své pohodlí jsem si jej stáhl a umístil do složky Selenium na C Drive. Doporučuje se také stáhnout soubor jar a umístit jej do podobného adresáře ve všech ostatních uzlech.

Chcete-li nakonfigurovat rozbočovač, musíte spustit příkaz v příkazovém řádku systému Windows. Příkaz je obsažen v níže uvedeném fragmentu.

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

The selenium-server-standalone-3.4.0.jar je název souboru jar, který jsem stáhl.
The -role příznak se používá k nastavení konkrétního hostitelského počítače jako rozbočovače. Když stisknete klávesu Enter, zobrazí se na obrazovce níže uvedený výstup.

V případě, že jste si nevšimli výše uvedený snímek obrazovky, podívejte se znovu. Říká ' - Uzly by se měly registrovat na http://192.168.0.11:4444/grid/register „. Nyní, když je Hub nakonfigurován, musíme nastavit uzly a připojit je k tomuto Hubu.

192.168.0.11 je adresa IP rozbočovače a každý uzel by se měl k této adrese IP připojit. 4444 je výchozí číslo portu, na kterém se hostuje Selenium Grid a naslouchá požadavkům. Pokud na portu 4444 běží nějaká jiná služba a chcete, aby byl Selenium Grid hostován na jiném portu, můžete to udělat zadáním -přístav příznak následovaný číslem portu.

Amazon EC2 návod pro začátečníky

Uzly

Uzly jsou hostitelské počítače, na kterých se testy provádějí. Tyto testy spustí centrum. Rozbočovač může spustit jeden nebo více uzlů buď na vzdálených počítačích, nebo na stejném počítači, kde je umístěn samotný rozbočovač. Na každém z uzlů lze zavést různé operační systémy a v různých operačních systémech lze spustit různé verze stejného prohlížeče nebo různých prohlížečů.

Konfigurace uzlů

Podobně jako v Hubu si musíte nejprve stáhnout soubor Jar do strojů Node a umístit jej na disk C nebo do jiného běžného adresáře. Potom můžete spustit následující příkaz v příkazovém řádku systému Windows. Pokud spouštíte dokonce i Node na stejném počítači jako Hub, musíte spustit příkaz spuštěním jiného příkazového řádku.

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 tomto příkazu existuje jen několik rozdílů ve srovnání s příkazem potřebným ke spuštění rozbočovače.
-Dwebdriver.chrome.driver = E: chromedriver.exe se používá k nastavení cesty ovladače prohlížeče. Podobně jako nastavení cesty ovladače prohlížeče v kódu WebDriver, zde jej zadáte, aby uzel umožnil provádět testy. Od verze Selenium v3 si musíte stáhnout prohlížeč ovladačů pro Firefox. Ovladač prohlížeče pro Firefox je ovladač Gecko. Ve verzích 1 a 2 však musíte nastavit ovladač prohlížeče pro všechny prohlížeče kromě Firefoxu.
-role uzel příznak se používá k nastavení konkrétního hostitelského počítače jako uzlu.
-hub http://192.168.0.11:4444/grid/register informuje uzel o připojení k Hubu pomocí IP adresy Hubu. Je důležité si uvědomit, že pokud spouštíte jakýkoli uzel na stejném počítači jako váš Hub, můžete zadat -hub http: // localhost: 4444 / mřížka / registr „V příkazu namísto adresy IP rozbočovače.

jak dělat moc v Javě

Když stisknete klávesu Enter, na příkazovém řádku se zobrazí níže uvedený výstup.

Nyní by byl uzel připojen k rozbočovači. Můžete to ověřit tak, že se vrátíte na příkazový řádek používaný ke spuštění centra a všimnete si následující zprávy: „ Zaregistroval uzel http://192.168.0.11:5555 „.

IP adresa a číslo portu je adresa vašeho uzlu. Vzhledem k tomu, že mám svůj uzel na stejném počítači jako můj rozbočovač, je port používaný pro uzel 5555. Když ho inicializujete na jiném počítači, použije se výchozí port.

Po spuštění následující adresy URL v zařízení vašeho rozbočovače získáte stav uzlů připojených k vašemu rozbočovači. Podívejte se na zvýrazněnou část na níže uvedeném snímku obrazovky.

Nyní, když je nakonfigurována vaše Selenium Grid, můžete pokračovat v provádění testovacích skriptů na uzlech. Dovolte mi znovu zdůraznit, že musíme spouštět skripty v našem centru a budou spouštěny v našich uzlech. Skript použitý k provedení testů je podobný WebDriverutesty.

Budování selenové mřížky

Spustil jsem svůj skript v Eclipse IDE. Provedení tohoto skriptu závisí na dvou důležitých knihovních balíčcích. Oni jsou DesiredCapabilities objekt a RemoteWebDriver objekt.

DesiredCapabilities se používá k nastavení typu prohlížeče a OS našeho uzlu. Chcete-li importovat objekt DesiredCapabilities, použijte následující kód.

importovat org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver se používá k výběru uzlu, na kterém chceme provést test. Chcete-li importovat objekt RemoteWebDriver, použijte níže uvedené řádky kódu.

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

Importoval jsem tyto dva balíčky spolu s balíčkem anotací TestNG pro svůj skript, jak je znázorněno v následujícím fragmentu kódu. Importoval jsem anotace TestNG, protože jsem to provedl jako test TestNG, pro který bude vygenerována podrobná zpráva. Doporučil bych vám importovat stejnou sadu balíčků pro váš kód.

Když manévrujete přes loga libovolného prohlížeče přítomného v konzole Selenium Hub, získáte podrobnosti jako název prohlížeče a plošina uzlu, který chcete automatizovat. Obrázek také ukazuje, kolik instancí prohlížečů mohu v mém uzlu otevřít. Mohu nakonfigurovat maximálně 5 chromovaných, 5 prohlížečů Firefox a 1 instanci prohlížeče Internet Explorer. Tyto podrobnosti jsou uvedeny na následujícím snímku obrazovky.

K nastavení prvního Gridu můžete použít kód v níže uvedeném ú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 veřejná třída TestGrid {statický ovladač WebDriver statický String nodeUrl @BeforeTest veřejné neplatné nastavení () vyvolá MalformedURLEception nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilities capabilities = DesiredCapabilities.chrome () capabilities.setBrowserName ('chrome') capabilities.setPlatform (Platform.WINDOWS) driver = nový RemoteWebDriver (nová URL (nodeUrl) ), schopnosti)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest public void afterTest () {driver.quit ()}}

Celý testovací skript jsem rozdělil do tří testovacích anotací. @BeforeTest, @Test a @AfterTest. V @BeforeTest jsem ke konfiguraci svého uzlu použil objekty DesiredCapablities a RemoteWebDriver. Ve službě @Test jsem požádal Node, aby přešel na domovskou stránku Edureky a uplatnil její název. V @AfterTest jsem požádal Node o ukončení instance prohlížeče.

Když váš test projde provedením, získáte níže uvedený výstup.

18. května 2017 15:09:07 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: OSS PASSED: simpleTest ====================== =========================== Výchozí test Spuštění testu: 1, selhání: 0, přeskočení: 0 =========== =================================================== ================================== Výchozí sada Celkový počet spuštěných testů: 1, Selhání: 0, Přeskočení: 0 = ===============================================

Vzhledem k tomu, že se tento test provádí jako test TestNG, získáte podrobnou zprávu o testu podobnou snímku obrazovky níže.

Pokud nevíte, co je TestNG a jak používat testovací poznámky, přečtěte si můj blog o tom, jak používat Selenium WebDriver s TestNG z této série tutoriálů o selenu.

Níže uvedené video můžete vidět na ukázce, jak postavit selenovou mřížku. Instruktor poskytující video vysvětluje stejné pojmy vysvětlené v tomto blogu.

Výukový program selenové mřížky pro začátečníky Výukový program pro selen | Edureka

Tím se dostáváme na konec tohoto blogu Selenium Grid. Pokud máte jakékoli pochybnosti nebo problémy s jakýmkoli kódem / obsahem této série blogů, nechte je prosím v sekci komentáře níže a já váš problém vyřeším nejdříve.

Pokud se chcete naučit selen a budovat si kariéru v testovací doméně, podívejte se na náš interaktivní online přenos Zde je k dispozici podpora 24 * 7, která vás provede celým obdobím učení.

Máte na nás dotaz? Uveďte to prosím v sekci komentáře a my se vám ozveme.