Selenium Grid Eğitimi: Bir Merkez ve Düğüm Oluşturma

⚡ Akıllı Özet

Selenium Grid, bir merkez-düğüm mimarisi kullanarak tarayıcılar, işletim sistemleri ve makineler genelinde birden fazla testi paralel olarak çalıştırır. Merkez, testleri bir makineye yüklerken, düğümler bunları diğer makinelerde yürütür; bu da komut satırı veya JSON yapılandırması aracılığıyla daha hızlı tarayıcılar arası kapsama olanağı sağlar.

  • 🧩 Izgara Tanımlı: Bir merkez ve düğümler aracılığıyla tarayıcılar, işletim sistemleri ve makineler genelinde testleri paralel olarak yürütür.
  • 🎯 Hub: Yük testlerinin yapıldığı tek bir merkezi makine; her şebeke için yalnızca bir merkez.
  • 🖥️ düğümler: Testleri farklı platformlarda fi fiilen yürüten bir veya daha fazla makine.
  • ⚙️ Kurmak: Başlatın Selenium Sunucu JAR dosyasını -role hub ve -role node seçenekleriyle kullanın veya bir JSON yapılandırma dosyası kullanın.
  • 🧪 Test Komut Dosyaları: Tarayıcıyı, işletim sistemini ve düğümü hedeflemek için DesiredCapabilities ve RemoteWebDriver'ı kullanın.
  • ⏱️ Ne Zaman Kullanılır: Geniş kapsamlı tarayıcı-işletim sistemi uyumluluk kontrolleri ve daha hızlı paralel paket yürütme.

Selenium Izgara Eğitimi

Nedir? Selenium Kafes?

Selenium Grid bir parçası Selenium Farklı tarayıcılar, işletim sistemleri ve makineler arasında paralel olarak birden fazla test çalıştırma konusunda uzmanlaşmış paket. Sunucunun bir merkez görevi gördüğü uzak tarayıcı örneklerinin komutlarını yönlendirerek elde edilir. Bir kullanıcının testleri yürütmek için uzak sunucuyu yapılandırması gerekir.

Selenium Grid'in 2 versiyonu vardır – eski Grid 1 ve yeni Grid 2. Sadece Grid 2'ye odaklanacağız çünkü Grid 1 yavaş yavaş kullanımdan kaldırılıyor. Selenium Takım.

Selenium Grid Archidoku

Selenium Izgaranın bir Hub'ı ve Düğümü vardır Archidoku.

Selenium Grid Archidoku
Selenium Grid Archidoku

merkez

  • Hub, testlerinizi yüklediğiniz merkezi noktadır.
  • Gridde yalnızca bir hub bulunmalıdır.
  • Hub yalnızca tek bir makinede, örneğin işletim sistemi olan bir bilgisayarda başlatılır. Windows 7 ve tarayıcısı IE olan.
  • Hub'ı içeren makine, testlerin yürütüleceği yerdir ancak tarayıcının düğümde otomatikleştirildiğini göreceksiniz.

Nodes

  • Düğümler Selenium hub'a yüklediğiniz testleri yürütecek örnekler.
  • Bir ızgarada bir veya daha fazla düğüm olabilir.
  • Düğümler farklı platformlara ve tarayıcılara sahip birden fazla makinede başlatılabilir.
  • Düğümleri çalıştıran makinelerin hub'ınkiyle aynı platformda olması gerekmez.

Selenium Grid, testi yalnızca adı verilen tek bir makinede çalıştırdığınız bir hub düğüm konsepti kullanır. merkez, ancak yürütme adı verilen farklı makineler tarafından yapılacaktır. düğümler.

Nasıl kurulur Selenium Kafes?

Bu bölümde 2 adet makine kullanacaksınız. İlk makine hub'ı çalıştıracak sistem olacak, diğer makine ise bir düğümü çalıştıracak. Basitlik açısından, hub'ın çalıştığı makineye “Makine A”, düğümün çalıştığı makineye ise “Makine B” diyelim. IP adreslerini not etmek de önemlidir. Diyelim ki Makine A'nın IP adresi 192.168.1.3, Makine B'nin IP adresi ise 192.168.1.4'tür.

) 1 Adım Atomic Cüzdanı indirin : Selenium Sunucusundan okuyun.

Kurma Selenium Grid

) 2 Adım Yerleştirebilirsiniz Selenium Sunucu .jar dosyası sabit sürücünüzün herhangi bir yerinde. Ancak bu eğitimin amacı doğrultusunda, onu hem Makine A'nın hem de Makine B'nin C sürücüsüne yerleştirin. Bunu yaptıktan sonra artık yükleme işlemini tamamlamış olursunuz. Selenium Grid. Aşağıdaki adımlar hub'ı ve düğümü başlatacaktır.

) 3 Adım

  • Şimdi bir merkez kuracağız. Makine A'ya gidin. Komut istemini kullanarak Makine A – C sürücüsünün köküne gidin, çünkü bu, dosyayı yerleştirdiğimiz dizindir. Selenium Sunucu.
  • Komut isteminde şunu yazın java -jar selenyum-sunucu-bağımsız-2.30.0.jar -rol merkezi
  • Hub başarıyla başlatılmalıdır. Komut isteminiz aşağıdaki resme benzer görünmelidir.

Kurma Selenium Grid

) 4 Adım Hub'ın çalışıp çalışmadığını doğrulamanın başka bir yolu da tarayıcı kullanmaktır. Selenium Grid, varsayılan olarak web arayüzü için Makine A'nın 4444 numaralı bağlantı noktasını kullanır. Basitçe bir tarayıcı açın ve şuraya gidin: http://localhost:4444/grid/console

Kurma Selenium Grid

Ayrıca, Makine B'nin hub'ın web arayüzüne erişip erişemediğini, orada bir tarayıcı başlatıp "iporhostnameofmachineA"nın hub'ın çalıştığı makinenin IP adresi veya ana bilgisayar adı olması gereken yere giderek kontrol edebilirsiniz. Makine A'nın IP adresi 192.168.1.3 olduğundan, Makine B'deki tarayıcıya şunu yazmalısınız: http://192.168.1.3:4444/grid/console

) 5 Adım

  • Artık hub zaten kurulduğuna göre, bir düğüm başlatacağız. Makine B'ye gidin ve orada bir komut istemi başlatın.
  • C Sürücüsünün köküne gidin ve aşağıdaki kodu yazın. Hub'ın çalıştığı yer burası olduğundan 192.168.1.3 IP adresini kullandık. Ayrıca 5566 numaralı bağlantı noktasını da kullandık, ancak istediğiniz herhangi bir boş bağlantı noktası numarasını seçebilirsiniz.
  • NOT: Artık kullanıyorsanız Gecko sürücüsünün yolunu vermeniz gerekir. Firefox. İşte kullanılması gereken güncellenmiş kod
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

Kurma Selenium Grid

  • Enter tuşuna bastığınızda komut isteminiz aşağıdaki görsele benzer olmalıdır.

Kurma Selenium Grid

) 6 Adım Git Selenium Izgara web arayüzü ve sayfayı yenileyin. Bunun gibi bir şey görmelisiniz.

Kurma Selenium Grid

Bu noktada zaten basit bir ızgarayı yapılandırdınız. Artık Makine B'de uzaktan bir test çalıştırmaya hazırsınız.

Ne zaman kullanılır? Selenium Kafes?

Kullanmalısın Selenium Aşağıdakilerden birini veya her ikisini de yapmak istediğinizde Grid'i kullanın:

  • Testlerinizi farklı tarayıcılarda, işletim sistemlerinde ve makinelerde aynı anda çalıştırın. Bu, bulunduğunuz uygulamanın Test yapmak çok çeşitli tarayıcı-işletim sistemi kombinasyonlarıyla tamamen uyumludur.
  • Test paketlerinizin yürütülmesinde zaman kazanın. Eğer ayarlarsan Selenium Izgarayı, örneğin bir seferde 4 test çalıştırırsanız, tüm paketi yaklaşık 4 kat daha hızlı tamamlayabilirsiniz.

Izgara 1.0 ve Izgara 2.0

Aşağıda, aralarındaki temel farklar yer almaktadır: Selenium Izgara 1 ve 2.

Kılavuz 1 Kılavuz 2
Selenium Şebeke 1'in, şebekeden farklı olarak kendi uzaktan kumandası vardır. Selenium RC sunucusu. İkisi farklı programlardır. Selenium Izgara 2 artık şu paketle birlikte sunulmaktadır: Selenium Sunucu jar dosyası
Yüklemeniz ve yapılandırmanız gerekiyor Apache Izgara 1'i kullanmadan önce ilk önce karınca. Grid 2'ye Apache Ant kurmanıza gerek yoktur.
Yalnızca destekleyebilir Selenium RC komutları/komut dosyaları. Her ikisini de destekleyebilir Selenium RC ve WebDriver komut dosyaları.
Uzaktan kumanda başına yalnızca bir tarayıcıyı otomatikleştirebilirsiniz. Bir uzaktan kumanda en fazla 5 tarayıcıyı otomatikleştirebilir.

Selenium ızgara iki farklı şekilde kurulabilir; biri komut satırından, diğeri JSON yapılandırma dosyasından.

Grid Üzerinde Çalışabilecek Test Komut Dosyalarının Tasarlanması

Izgarada çalışacak test komut dosyalarını tasarlamak için şunu kullanmamız gerekir: İstenilen Yetenekler ve UzakWebSürücüsü nesneler.

  • İstenilen Yetenekler türünü ayarlamak için kullanılır tarayıcı hem de OS otomatikleştireceğiz.
  • UzakWebSürücüsü Testimizin hangi düğüme (veya makineye) karşı çalışacağını ayarlamak için kullanılır.

Kullanmak için İstenilen Yetenekler nesne, önce bu paketi içe aktarmalısınız

Grid Üzerinde Çalışabilen Test Komut Dosyalarının Tasarlanması

Kullanmak için UzakWebSürücüsü nesne, bu paketleri içe aktarmanız gerekir.

Grid Üzerinde Çalışabilecek Test Komut Dosyalarının Tasarlanması

DesiredCapabilites Nesnesini Kullanma

Grid'in web arayüzüne gidin ve otomatikleştirmek istediğiniz tarayıcının resminin üzerine gelin. Şunu not edin: Platform, ve tarayıcıAdı araç ipucuyla gösterilir.

DesiredCapabilites Nesnesini Kullanma

Bu durumda platform “XP”, tarayıcıAdı ise “Firefox".

WebDriver'ımızda aşağıda gösterildiği gibi platformu ve tarayıcıAdı'nı kullanacağız (tabii ki önce gerekli paketleri içe aktarmanız gerekir).

DesiredCapabilites Nesnesini Kullanma

RemoteWebDriver Nesnesini Kullanma

RemoteWebDriver için gerekli paketleri import edin ve ardından yukarıda oluşturduğumuz DesiredCapaabilitys nesnesini RemoteWebDriver nesnesi için parametre olarak iletin.

RemoteWebDriver Nesnesini Kullanma

Izgarada Örnek Test Senaryosu Çalıştırma

Aşağıda basit bir WebDriver var Test içinde oluşturabileceğiniz kod Eclipse Makine A'da. Çalıştırdığınızda, Makine B'de otomasyon gerçekleştirilecektir.

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 geçmeli.

Gride Üzerinde Örnek Bir Test Senaryosu Çalıştırma Gride Üzerinde Örnek Bir Test Senaryosu Çalıştırma

Selenium JSON Dosyasını kullanarak ızgara yapılandırması

JSON'un açılımı Javascript Nesne Gösterimi. Tarayıcı ile web sunucusu arasında veri alışverişi için kullanılan standart bir formattır. Selenium Selenium Grid'i kurmak için kullanılabilen dahili bir JSON yapılandırma dosyasına sahiptir.

JSON yapılandırma dosyasını kullanarak Selenyum ızgarasını yapılandırma adımları aşağıda verilmiştir.

) 1 Adım Aşağıdaki yolu kullanarak JSON yapılandırma dosyası kodunu indirin

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

İşte kod

{
	  "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
}

) 2 Adım Kodu kopyalayıp Not Defteri gibi '.json' uzantılı bir metin düzenleyiciye yapıştırın

) 3 Adım Komut istemini kullanarak aşağıdaki komutu kullanarak hub'ı başlatın

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

NOT: Selenium bağımsız jar dosyası ve json dosyası aynı dizinde bulunmalıdır

) 4 Adım Hub'ın başarıyla kurulduğunu gösteren aşağıdaki ekran görünecektir

Selenium JSON Dosyasını Kullanarak Izgara Yapılandırması

) 5 Adım Web tarayıcınızı açın ve aşağıdaki bağlantıya bağlanmayı deneyin. URL

http://192.168.43.223:4444/grid/console

NOT: MKS URL Bu durum makineden makineye değişebilir. URL Yukarıdaki ekranda 'Düğümlerin kaydolması gereken yer' ifadesinin ardından gelen seçenek kullanılmalıdır.

) 6 Adım Hub'ın çalışır durumda olduğunu gösteren Izgara Konsolu ekranı görünecektir

Selenium JSON Dosyasını Kullanarak Izgara Yapılandırması

JSON'u kullanarak NODES'u yapılandırma

) 1 Adım Tarafından sağlanan örnek düğüm yapılandırma dosyasını indirin. Selenium aşağıdakileri kullanarak URL

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

NOT: SELENIUM 3.0 VEYA YUKARISINI KULLANIYORSANIZ AŞAĞIDAKİ JSON DOSYASI KULLANILMALIDIR

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

) 2 Adım Kodu kopyalayıp Not Defteri gibi bir metin düzenleyiciye yapıştırın ve dosyayı '.json' uzantısıyla kaydedin.

) 3 Adım

Komut isteminde aşağıdaki komutu çalıştırın

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

NOT: Komutu çalıştırmadan önce lütfen her tarayıcının sürücülerinin yerel makine dizinine indirildiğinden emin olun.

) 4 Adım Enter tuşuna basıldığında aşağıdaki ekran görünecektir

JSON Kullanarak Düğümleri Yapılandırma

) 5 Adım Düğümlerin başarıyla yapılandırılıp yapılandırılmadığını doğrulamak için ızgara konsoluna gidin

JSON Kullanarak Düğümleri Yapılandırma

Tarayıcılar ızgara konsolunda görüntülenir. Dolayısıyla düğümlerin başarıyla yapılandırıldığından emin olabiliriz.

Örnek Test Durumları Açık Selenium Kafes:

 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");
         }

     }

 }

Yukarıdaki kod Chrome tarayıcısını başlatır ve şu adrese yönlendirir: URL 'taban'da belirtilenURL' değişkeni. Sayfada 'Mobil Test' adlı bir bağlantının görüntülendiğini doğruladı.

URL 'düğüm' üzerindeURL' değişkeni, uzak makinenin IP adresini yansıtacak şekilde değiştirilebilir. Test sonucu varsayılan ayarlarda doğrulanabilir. TestNG rapor oluşturuldu

SSS

Merkez, testleri yüklediğiniz ve grid'i yönettiğiniz tek merkezi makinedir. Düğümler ise belirli tarayıcı ve işletim sistemi kombinasyonlarında testleri fi fiilen çalıştıran makinelerdir. Bir grid'in bir merkezi ve bir veya daha fazla düğümü vardır.

Grid 1 ayrı bir uzaktan kumanda kullanır ve yalnızca Apache Ant'ı destekler. Selenium RC komut dosyaları ve kontrol başına bir tarayıcı. Grid 2, aşağıdakilerle birlikte paketlenmiştir: Selenium Sunucu jar dosyasına ihtiyaç duymaz, hem RC hem de WebDriver komut dosyalarını destekler.

Bir DesiredCapabilities nesnesi oluşturun, browserName ve platform özelliklerini ayarlayın, ardından bu nesneyi düğümün tarayıcısına işaret eden bir RemoteWebDriver'a iletin. URLIzgara, testi ilgili tarayıcı ve işletim sistemi için uygun bir düğüme yönlendirir.

Yapay zeka, test çalışmalarını önceliklendirebilir ve paralelleştirebilir, kararsız testleri tahmin edebilir, düğümler arasında yükü dengeleyebilir ve bozuk konum belirleyicileri kendi kendine onarabilir. Bu, birçok tarayıcı-işletim sistemi kombinasyonu çalıştıran büyük ağlarda yürütme süresini ve bakım çabasını azaltır.

Evet. Yapay zeka araçları, optimum düğüm sayısını önerebilir, JSON yapılandırmaları oluşturabilir, kuyruk uzunluğuna göre bulut ağlarını otomatik olarak ölçeklendirebilir ve az kullanılan kapasiteyi tespit edebilir.ping Ekipler, manuel ayarlama yapmadan büyük test paketlerini verimli bir şekilde yönetir.

Bu yazıyı şu şekilde özetleyin: