Selenium Tutoriál k mřížce: Nastavení centra a uzlu

⚡ Chytré shrnutí

Selenium Grid spustí více testů napříč prohlížeči, operačními systémy a počítači paralelně pomocí architektury hub-and-node. Hub načítá testy na jednom počítači, zatímco uzly je spouštějí na jiných, což umožňuje rychlejší pokrytí napříč prohlížeči prostřednictvím příkazového řádku nebo konfigurace JSON.

  • 🧩 Definice mřížky: Spouští testy napříč prohlížeči, operačními systémy a počítači paralelně prostřednictvím hubu a uzlů.
  • 🎯 Hub: Jeden centrální počítač, kde se provádějí zátěžové testy; pouze jeden hub na mřížku.
  • 🖥️ Uzly: Jeden nebo více počítačů, které skutečně provádějí testy na různých platformách.
  • ⚙️ Setup: Spustit Selenium JAR serveru s centrem -role a uzlem -role nebo použijte konfigurační soubor JSON.
  • 🧪 Testovací skripty: Použijte DesiredCapabilities a RemoteWebDriver k cílení na prohlížeč, operační systém a uzel.
  • ⏱️ Kdy použít: Široké kontroly kompatibility prohlížeče a operačního systému a rychlejší paralelní spouštění sady.

Selenium Tutoriál k mřížce

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č a 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ému URL

http://192.168.43.223:4444/grid/console

POZNÁMKA: Jedno URL se může lišit stroj od stroje. URL následované textem „Uzly by se měly zaregistrovat do“ 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ého 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 URL specifikováno v „základně“URL' proměnná. Ověřilo se, že se na stránce zobrazuje název odkazu 'Mobilní testování'.

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

Nejčastější dotazy

Hub je jediný centrální počítač, kam se načítají testy a spravuje se grid. Uzly jsou počítače, které skutečně spouštějí testy na konkrétních kombinacích prohlížečů a operačních systémů. Grid má jeden hub a jeden nebo více uzlů.

Grid 1 používá samostatné dálkové ovládání a vyžaduje Apache Ant, který podporuje pouze Selenium RC skripty a jeden prohlížeč na ovládací prvek. Grid 2 je dodáván s Selenium Serverový JAR soubor, nepotřebuje Ant a podporuje skripty RC i WebDriver.

Vytvořte objekt DesiredCapabilities, nastavte jeho browserName a platformu a poté jej předejte RemoteWebDriver zaměřenému na uzel. URLMřížka směruje test na odpovídající uzel pro daný prohlížeč a operační systém.

Umělá inteligence dokáže upřednostňovat a paralelizovat testovací běhy, předpovídat nestabilní testy, vyvažovat zátěž mezi uzly a samočinně opravovat poškozené lokátory. To snižuje dobu provádění a náročnost údržby u velkých gridů s mnoha kombinacemi prohlížečů a operačních systémů.

Ano. Nástroje umělé inteligence dokáží doporučit optimální počet uzlů, generovat konfigurace JSON, automaticky škálovat cloudové mřížky na základě délky fronty a detekovat nevyužitou kapacitu.ping Týmy efektivně provozují velké sady bez ručního ladění.

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