Selenium Grid výukový program: Nastavení rozbočovače a uzlu (příklad)

Co je to Selenium Mřížka?

Selenium Mřížka je součástí Selenium Sada, která se specializuje na paralelní spouštění více testů napříč různými prohlížeči, operačními systémy a počítači. Toho je dosaženo směrováním příkazů vzdálených instancí prohlížeče, kde server funguje jako rozbočovač. Aby uživatel mohl provést testy, musí nakonfigurovat vzdálený server.

Selenium Grid má 2 verze – starší Grid 1 a novější Grid 2. Zaměříme se pouze na Grid 2, protože Grid 1 je postupně zastaralý. Selenium Tým.

Selenium Mřížka Architecture

Selenium Grid má rozbočovač a uzel Architecture.

Selenium Mřížka Architecture
Selenium Mřížka Architecture

Hub

  • Hub je centrální bod, do kterého načítáte své testy.
  • V mřížce by měl být pouze jeden rozbočovač.
  • Hub je spuštěn pouze na jediném počítači, řekněme, počítači, jehož OS je Windows 7 a jehož prohlížečem je IE.
  • Testy budou spuštěny na počítači obsahujícím rozbočovač, ale uvidíte, že prohlížeč je v uzlu automatizován.

Uzly

  • Uzly jsou Selenium instance, které provedou testy, které jste nahráli na hub.
  • V mřížce může být jeden nebo více uzlů.
  • Uzly lze spustit na více počítačích s různými platformami a prohlížeči.
  • Stroje provozující uzly nemusí být na stejné platformě jako na hubu.

Selenium Grid používá koncept uzlu rozbočovače, kde test spouštíte pouze na jediném počítači s názvem a hub, ale provedení bude provedeno různými stroji s názvem uzly

Jak nastavit Selenium Mřížka?

V této sekci využijete 2 stroje. První počítač bude systém, který bude provozovat rozbočovač, zatímco druhý počítač bude provozovat uzel. Pro jednoduchost nazvěme stroj, na kterém běží rozbočovač, jako „stroj A“, zatímco stroj, na kterém běží uzel, bude „stroj B“. Je také důležité poznamenat si jejich IP adresy. Řekněme, že stroj A má IP adresu 192.168.1.3, zatímco stroj B má IP 192.168.1.4.

Krok 1) stáhněte Selenium Server od zde.

Založit Selenium Mřížka

Krok 2) Můžete umístit Selenium Soubor .jar serveru kdekoli na vašem pevném disku. Ale pro účely tohoto tutoriálu jej umístěte na jednotku C počítače A i počítače B. Poté je instalace dokončena Selenium Mřížka. Následující kroky spustí hub a uzel.

Krok 3)

  • Nyní spustíme hub. Přejděte na počítač A. Pomocí příkazového řádku přejděte do kořenového adresáře jednotky počítače A – C, protože to je adresář, kam jsme umístili Selenium Server.
  • Na příkazovém řádku zadejte java -jar selenium-server-standalone-2.30.0.jar -role hub
  • Hub by měl být úspěšně spuštěn. Váš příkazový řádek by měl vypadat podobně jako na obrázku níže.

Založit Selenium Mřížka

Krok 4) Dalším způsobem, jak ověřit, zda je rozbočovač spuštěn, je použití prohlížeče. Selenium Grid ve výchozím nastavení používá pro své webové rozhraní port 4444 stroje A. Jednoduše otevřete prohlížeč a přejděte na http://localhost:4444/grid/console

Založit Selenium Mřížka

Můžete také zkontrolovat, zda má počítač B přístup k webovému rozhraní hubu, a to tak, že tam spustíte prohlížeč a přejdete na místo, kde „iporhostnameofmachineA“ by měla být IP adresa nebo název hostitele počítače, na kterém je spuštěn hub. Protože IP adresa počítače A je 192.168.1.3, měli byste v prohlížeči na počítači B zadat http://192.168.1.3:4444/grid/console

Krok 5)

  • Nyní, když je hub již nastaven, spustíme uzel. Přejděte na počítač B a spusťte tam příkazový řádek.
  • Přejděte do kořenového adresáře jednotky C a zadejte níže uvedený kód. Použili jsme IP adresu 192.168.1.3, protože tam běží hub. Použili jsme také port 5566, i když si můžete vybrat libovolné volné číslo portu, které si přejete.
  • POZNÁMKA: Nyní musíte zadat cestu k ovladači Gecko, pokud jej používáte Firefox. Zde je aktualizovaný kód, který je třeba použít
java -Dwebdriver.gecko.driver="C:\geckodriver.exe" -jar selenium-server-standalone-3.4.0.jar -role webdriver -hub http://192.168.1.3:4444/grid/register -port 5566

Založit Selenium Mřížka

  • Když stisknete Enter, příkazový řádek by měl být podobný obrázku níže.

Založit Selenium Mřížka

Krok 6) Přejít na Selenium Gridujte webové rozhraní a obnovte stránku. Měli byste vidět něco takového.

Založit Selenium Mřížka

V tomto okamžiku jste již nakonfigurovali jednoduchou mřížku. Nyní jste připraveni provést vzdálený test na počítači B.

Kdy použít Selenium Mřížka?

Měli byste použít Selenium Mřížka, když chcete provést jednu nebo obě následující:

  • Spusťte své testy proti různým prohlížečům, operačním systémům a počítačům najednou. Tím zajistíte, že aplikace, kterou jste Testování je plně kompatibilní s celou řadou kombinací prohlížeč-OS.
  • Ušetřete čas při provádění vašich testovacích sad. Pokud nastavíte Selenium Grid spustit, řekněme, 4 testy najednou, pak byste byli schopni dokončit celou sadu asi 4krát rychleji.

Mřížka 1.0 versus Mřížka 2.0

Níže jsou uvedeny hlavní rozdíly mezi Selenium Mřížka 1 a 2.

Mřížka 1 Mřížka 2
Selenium Grid 1 má své vlastní dálkové ovládání, které se liší od Selenium RC server. Jsou to dva různé programy. Selenium Grid 2 je nyní dodáván s Selenium soubor jar serveru
Musíte nainstalovat a nakonfigurovat Apache Nejprve mravenec, než budete moci použít Grid 1. Nemusíte instalovat Apache Ant do Grid 2.
Lze pouze podpořit Selenium RC příkazy/skripty. Může podporovat obojí Selenium Skripty RC a WebDriver.
Na jedno dálkové ovládání můžete automatizovat pouze jeden prohlížeč. Jedno dálkové ovládání dokáže automatizovat až 5 prohlížečů.

Selenium mřížku lze nastavit dvěma různými způsoby; jeden přes příkazový řádek a druhý přes konfigurační soubor JSON.

Navrhování testovacích skriptů, které lze spustit na mřížce

Chcete-li navrhnout testovací skripty, které poběží na mřížce, musíme použít Požadované schopnosti a RemoteWebDriver objekty.

  • Požadované schopnosti slouží k nastavení typu prohlížeč si OS které budeme automatizovat.
  • RemoteWebDriver se používá k nastavení, proti kterému uzlu (nebo počítači), proti kterému bude náš test probíhat.

Chcete-li použít Požadované schopnosti objekt, musíte nejprve importovat tento balíček

Navrhování testovacích skriptů, které lze spustit na mřížce

Chcete-li použít RemoteWebDriver objekt, musíte tyto balíčky importovat.

Navrhování testovacích skriptů, které lze spustit na mřížce

Použití objektu DesiredCapabilites

Přejděte na webové rozhraní Gridu a najeďte myší na obrázek prohlížeče, který chcete automatizovat. Vezměte na vědomí plošina, a název prohlížeče zobrazený popiskem.

Použití objektu DesiredCapabilites

V tomto případě je platforma „XP“ a název prohlížeče je „Firefox. "

Použijeme platformu a název prohlížeče v našem WebDriver, jak je uvedeno níže (samozřejmě musíte nejprve importovat potřebné balíčky).

Použití objektu DesiredCapabilites

Pomocí objektu RemoteWebDriver

Importujte potřebné balíčky pro RemoteWebDriver a poté předejte objekt DesiredCapabilities, který jsme vytvořili výše, jako parametr pro objekt RemoteWebDriver.

Použití objektu RemoteWebDriver

Spuštění ukázkového testovacího případu na mřížce

Níže je jednoduchý WebDriver Testng kód, který můžete vytvořit Eclipse na stroji A. Jakmile jej spustíte, bude na stroji B provedena automatizace.

import org.openqa.selenium.*; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import java.net.MalformedURLException; 
import java.net.URL; 
import org.openqa.selenium.remote.RemoteWebDriver; 
import org.testng.Assert;
import org.testng.annotations.*; 

public class Grid_2 {
 WebDriver driver;
 String baseUrl, nodeURL; 
 @BeforeTest 
 public void setUpWthrows MalformedURLException {
 baseUrl = "http://newtours.demoaut.com/";
 nodeURL = "http://192.168.1.4:5566/wd/hub"; 
 DesiredCapabilities capability = DesiredCapabilities.firefox();
 capability. setBrowserName("firefox");
 capability. setPlatform(Platform.XP);
 driver = new RemoteWebDriver(new URL(nodeURL), capability); 
} 
@AfterTest 
public void afterTest() {
 driver.quit(); 
 }
@Test 
public void simpleTest() { 
driver.get(baseUr1);
 Assert.assertEquas("Welcome: Mercury Tours", driver.getTitle()); } 
} 

Test by měl projít.

Spuštění ukázkového testovacího případu na mřížce Spuštění ukázkového testovacího případu na mřížce

Selenium konfigurace mřížky pomocí souboru JSON

JSON znamená Javascript Zápis objektů. Jedná se o standardní formát používaný pro výměnu dat mezi prohlížečem a webovým serverem. Selenium má vestavěný konfigurační soubor JSON, který lze použít k nastavení selenové mřížky.

Níže jsou uvedeny kroky ke konfiguraci selenové mřížky pomocí konfiguračního souboru JSON.

Krok 1) Stáhněte si kód pro konfigurační soubor JSON pomocí níže uvedené cesty

https://github.com/SeleniumHQ/selenium/blob/selenium-3.141.59/java/server/src/org/openqa/grid/common/defaults/DefaultHub.json

Zde je kód

{
	  "port": 4444,
	  "newSessionWaitTimeout": -1,
	  "servlets" : [],
	  "withoutServlets": [],
	  "custom": {},
	  "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
	  "registryClass": "org.openqa.grid.internal.DefaultGridRegistry",
	  "throwOnCapabilityNotPresent": true,
	  "cleanUpCycle": 5000,
	  "role": "hub",
	  "debug": false,
	  "browserTimeout": 0,
	  "timeout": 1800
}

Krok 2) Zkopírujte a vložte kód do textového editoru, jako je Poznámkový blok s příponou .json

Krok 3)Spusťte rozbočovač pomocí níže uvedeného příkazu pomocí příkazového řádku

java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json

POZNÁMKA: Selenium samostatný soubor jar a soubor json musí být přítomen ve stejném adresáři

Krok 4) Zobrazí se níže uvedená obrazovka, která indikuje, že rozbočovač je úspěšně nastaven

Selenium Konfigurace mřížky pomocí souboru JSON

Krok 5) Otevřete webový prohlížeč a zkuste se připojit k níže uvedené adrese URL

http://192.168.43.223:4444/grid/console

POZNÁMKA: Adresa URL se může lišit stroj od stroje. Musí být použita adresa URL následovaná 'Nodes should register to' na výše uvedené obrazovce.

Krok 6) Objeví se obrazovka Grid Console, která indikuje, že hub je v provozu

Selenium Konfigurace mřížky pomocí souboru JSON

Nakonfigurujte NODES pomocí JSON

Krok 1) Stáhněte si ukázkový konfigurační soubor uzlu, který poskytuje Selenium pomocí níže uvedené adresy URL

https://github.com/SeleniumHQ/selenium/blob/selenium-2.53.0/java/server/src/org/openqa/grid/common/defaults/DefaultNode.json

POZNÁMKA: POKUD POUŽÍVÁTE SELENIUM 3.0 NEBO VYŠŠÍ, MUSÍ BÝT POUŽIT NÍŽE UVEDENÝ SOUBOR JSON

https://github.com/SeleniumHQ/selenium/blob/selenium-3.141.59/java/server/src/org/openqa/grid/common/defaults/DefaultNodeWebDriver.json

Krok 2) Zkopírujte a vložte kód do textového editoru, jako je Poznámkový blok, a uložte soubor s příponou '.json'

Krok 3)

Spusťte níže uvedený příkaz na příkazovém řádku

Java-Dwebdriver.chrome.driver="chromedriver.exe" -Dwebdriver.ie.driver="IEDriverServer.exe" -Dwebdriver.gecko.driver="geckodriver.exe" -jar selenium-server-standalone-2.53.1.jar -role node -nodeConfig node1.json

POZNÁMKA: Před spuštěním příkazu se prosím ujistěte, že ovladače pro každý z prohlížečů byly staženy do adresáře místního počítače

Krok 4) Po stisknutí klávesy Enter se zobrazí obrazovka níže

Konfigurace uzlů pomocí JSON

Krok 5) Přejděte do konzoly mřížky a ověřte, zda byly uzly úspěšně nakonfigurovány

Konfigurace uzlů pomocí JSON

Prohlížeče se zobrazí na konzole mřížky. Můžeme si tedy být jisti, že uzly jsou úspěšně nakonfigurovány.

Vzorové testovací případy zapnuty Selenium Mřížka:

 package com.objectrepository.demo;
 import org.openqa.selenium.*;
 import org.openqa.selenium.remote.DesiredCapabilities;
 import java.net.MalformedURLException;
 import java.net.URL;
 import org.openqa.selenium.remote.RemoteWebDriver;
 import org.testng.Assert;
 import org.testng.annotations.*;

 public class SeleniumGrid {

     WebDriver driver;
     String baseURL, nodeURL;

     @BeforeTest
     public void setUp() throws MalformedURLException {
         baseURL = "https://demo.guru99.com/test/guru99home/";
         nodeURL = "http://192.168.43.223:5566/wd/hub";
         DesiredCapabilities capability = DesiredCapabilities.chrome();
         capability.setBrowserName("chrome");
         capability.setPlatform(Platform.WIN10);
         driver = new RemoteWebDriver(new URL(nodeURL), capability);
     }

     @AfterTest
     public void afterTest() {
         driver.quit();
     }
     @Test
     public void sampleTest() {
         driver.get(baseURL);
         

         if (driver.getPageSource().contains("MOBILE TESTING")) {
             Assert.assertTrue(true, "Mobile Testing Link Found");
         } else {
             Assert.assertTrue(false, "Failed: Link not found");
         }

     }

 }

Výše uvedený kód spustí prohlížeč Chrome a přejde na adresu URL zadanou v proměnné 'baseURL'. Ověřil, že se na stránce zobrazuje název odkazu „Mobilní testování“.

URL v proměnné 'nodeURL' lze upravit tak, aby odrážela IP adresu vzdáleného počítače. Výsledek testu lze ověřit ve výchozím nastavení TestNG sestava vygenerována

Shrnutí

  • Selenium Grid se používá ke spuštění více testů současně na různých prohlížečích a platformách.
  • Grid využívá koncept hub-node.
  • Hub je centrální bod, do kterého načítáte své testy.
  • Uzly jsou Selenium instance, které provedou testy, které jste nahráli na hub.
  • Chcete-li nainstalovat Selenium Grid, stačí si stáhnout soubor Selenium Soubor jar serveru – stejný soubor, jaký se používá při běhu Selenium RC testy.
  • Existují 2 způsoby, jak ověřit, zda je rozbočovač spuštěný: jeden byl přes příkazový řádek a druhý přes prohlížeč.
  • Chcete-li spustit testovací skripty na mřížce, měli byste použít objekty DesiredCapabilities a RemoteWebDriver.
  • DesiredCapabilites slouží k nastavení typu prohlížeče a OS, které budeme automatizovat.
  • RemoteWebDriver se používá k nastavení uzlu (nebo počítače), proti kterému bude náš test probíhat.

Shrňte tento příspěvek takto: