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.

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.
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.
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
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
- Když stisknete Enter, příkazový řádek by měl být podobný obrázku níže.
Krok 6) Přejít na Selenium Gridujte webové rozhraní a obnovte stránku. Měli byste vidět něco takového.
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
Chcete-li použít RemoteWebDriver objekt, musíte tyto balíčky importovat.
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.
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).
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.
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.
![]() |
![]() |
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
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
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
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
POZNÁMKA: POKUD POUŽÍVÁTE SELENIUM 3.0 NEBO VYŠŠÍ, MUSÍ BÝT POUŽIT NÍŽE UVEDENÝ SOUBOR 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
Krok 5) Přejděte do konzoly mřížky a ověřte, zda byly uzly úspěšně nakonfigurovány
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.







.png)






