Selenium Izgara Eğitimi: Bir Hub ve Düğüm Kurulumu (Örnek)

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ı ve 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ımKomut 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ısını açın ve aşağıdaki URL'ye bağlanmayı deneyin

http://192.168.43.223:4444/grid/console

NOT: URL makineden makineye değişebilir. Yukarıdaki ekranda 'Düğümler kayıt olmalı' ifadesinin ardından URL 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ğıdaki URL'yi kullanarak

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 = "http://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, krom tarayıcıyı başlatır ve 'baseURL' değişkeninde belirtilen URL'ye gider. Sayfada 'Mobil Test' bağlantı adının görüntülendiğini doğruladı

'nodeURL' değişkenindeki URL, uzak makinenin IP Adresini yansıtacak şekilde değiştirilebilir. Test sonucu varsayılan olarak doğrulanabilir TestNG rapor oluşturuldu

ÖZET

  • Selenium Grid, birden fazla testi aynı anda farklı tarayıcılarda ve platformlarda çalıştırmak için kullanılır.
  • Grid, hub-düğüm konseptini kullanır.
  • Hub, testlerinizi yüklediğiniz merkezi noktadır.
  • Düğümler Selenium hub'a yüklediğiniz testleri yürütecek örnekler.
  • Yüklemek için Selenium Grid'i indirmeniz yeterli Selenium Sunucu jar dosyası – çalıştırmada kullanılan dosyanın aynısı Selenium RC testleri.
  • Hub'ın çalışıp çalışmadığını doğrulamanın 2 yolu vardır: biri komut istemi aracılığıyla, diğeri ise tarayıcı aracılığıyla yapılır.
  • Izgarada test komut dosyalarını çalıştırmak için DesiredCapaability'leri ve RemoteWebDriver nesnelerini kullanmalısınız.
  • DesiredCapabilites, otomatikleştireceğimiz tarayıcı ve işletim sistemi türünü ayarlamak için kullanılır.
  • RemoteWebDriver, testimizin hangi düğüme (veya makineye) karşı çalışacağını ayarlamak için kullanılır.