Selenium Tutorial Grid: Menyiapkan Hub dan Node (Contoh)

Apa itu Selenium jaringan?

Selenium kisi adalah bagian dari Selenium Suite yang berspesialisasi dalam menjalankan beberapa pengujian di berbagai browser, sistem operasi, dan mesin secara paralel. Hal ini dicapai dengan merutekan perintah dari instance browser jarak jauh di mana server bertindak sebagai hub. Seorang pengguna perlu mengkonfigurasi server jarak jauh untuk menjalankan tes.

Selenium Grid memiliki 2 versi – Grid 1 yang lebih lama dan Grid 2 yang lebih baru. Kami hanya akan fokus pada Grid 2 karena Grid 1 secara bertahap tidak lagi digunakan oleh Selenium Team.

Selenium kisi Architekstur

Selenium Grid memiliki Hub dan Node Architekstur.

Selenium kisi Architekstur
Selenium kisi Architekstur

Pusat

  • Hub adalah titik pusat tempat Anda memuat pengujian.
  • Seharusnya hanya ada satu hub dalam sebuah grid.
  • Hub diluncurkan hanya pada satu mesin, katakanlah, komputer yang OS-nya Windows 7 dan browsernya IE.
  • Mesin yang berisi hub adalah tempat pengujian akan dijalankan, tetapi Anda akan melihat browser diotomatisasi pada node.

Nodes

  • Node adalah Selenium contoh yang akan menjalankan pengujian yang Anda muat di hub.
  • Mungkin ada satu atau lebih node dalam sebuah grid.
  • Node dapat diluncurkan di banyak mesin dengan platform dan browser berbeda.
  • Mesin yang menjalankan node tidak harus memiliki platform yang sama dengan hub.

Selenium Grid menggunakan konsep hub-node di mana Anda hanya menjalankan pengujian pada satu mesin yang disebut a pusat, tetapi eksekusinya akan dilakukan oleh mesin berbeda yang disebut node

Cara Mengatur Selenium jaringan?

Pada bagian ini, Anda akan menggunakan 2 mesin. Mesin pertama akan menjadi sistem yang akan menjalankan hub sedangkan mesin lainnya akan menjalankan node. Untuk mempermudah, mari kita sebut mesin tempat hub berjalan sebagai “Mesin A” sedangkan mesin tempat node berjalan akan menjadi “Mesin B.” Penting juga untuk mencatat alamat IP mereka. Katakanlah Mesin A memiliki alamat IP 192.168.1.3 sedangkan Mesin B memiliki IP 192.168.1.4.

Langkah 1) Download Selenium Server dari di sini.

Mendirikan Selenium kisi

Langkah 2) Anda dapat menempatkan Selenium File server .jar di mana saja di hard drive Anda. Namun untuk keperluan tutorial ini, letakkan di drive C Mesin A dan Mesin B. Setelah melakukan ini, Anda sekarang selesai menginstal Selenium Jaringan. Langkah-langkah berikut akan meluncurkan hub dan node.

Langkah 3)

  • Kami sekarang akan meluncurkan hub. Pergi ke Mesin A. Menggunakan command prompt, navigasikan ke root drive Mesin A – C, karena itu adalah direktori tempat kita meletakkan Selenium Server.
  • Pada prompt perintah, ketik java -jar Selenium-server-standalone-2.30.0.jar -hub peran
  • Hub harus berhasil diluncurkan. Prompt perintah Anda akan terlihat seperti gambar di bawah.

Mendirikan Selenium kisi

Langkah 4) Cara lain untuk memverifikasi apakah hub sedang berjalan adalah dengan menggunakan browser. Selenium Grid, secara default, menggunakan port 4444 Mesin A untuk antarmuka webnya. Cukup buka browser dan buka http://localhost:4444/grid/console

Mendirikan Selenium kisi

Selain itu, Anda dapat memeriksa apakah Mesin B dapat mengakses antarmuka web hub dengan meluncurkan browser di sana dan membuka "iporhostnameofmachineA" yang seharusnya merupakan alamat IP atau nama host mesin tempat hub berjalan. Karena alamat IP Mesin A adalah 192.168.1.3, maka pada browser di Mesin B Anda harus mengetik http://192.168.1.3:4444/grid/console

Langkah 5)

  • Sekarang hub sudah diatur, kita akan meluncurkan sebuah node. Buka Mesin B dan luncurkan prompt perintah di sana.
  • Arahkan ke root Drive C dan ketik kode di bawah ini. Kami menggunakan alamat IP 192.168.1.3 karena di situlah hub berjalan. Kami juga menggunakan port 5566 meskipun Anda dapat memilih nomor port gratis apa pun yang Anda inginkan.
  • CATATAN: Anda sekarang harus memberikan jalur ke driver Gecko jika menggunakan Firefox. Berikut adalah kode terbaru yang perlu digunakan
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

Mendirikan Selenium kisi

  • Saat Anda menekan Enter, prompt perintah Anda akan terlihat seperti gambar di bawah.

Mendirikan Selenium kisi

Langkah 6) Pergi ke Selenium Antarmuka web kisi dan segarkan halaman. Anda akan melihat sesuatu seperti ini.

Mendirikan Selenium kisi

Pada titik ini, Anda telah mengkonfigurasi grid sederhana. Anda sekarang siap menjalankan pengujian dari jarak jauh pada Mesin B.

Kapan Harus Digunakan Selenium jaringan?

Kamu harus menggunakan Selenium Kisi saat Anda ingin melakukan salah satu atau kedua hal berikut:

  • Jalankan pengujian Anda terhadap berbagai browser, sistem operasi, dan mesin secara bersamaan. Ini akan memastikan bahwa aplikasi Anda benar pengujian sepenuhnya kompatibel dengan berbagai kombinasi browser-OS.
  • Hemat waktu dalam pelaksanaan rangkaian pengujian Anda. Jika Anda mengatur Selenium Grid untuk menjalankan, katakanlah, 4 tes sekaligus, maka Anda akan dapat menyelesaikan seluruh rangkaian sekitar 4 kali lebih cepat.

Jaringan 1.0 Vs Jaringan 2.0

Berikut ini adalah perbedaan utama antara Selenium Kotak 1 dan 2.

Kotak 1 Kotak 2
Selenium Grid 1 mempunyai remote control tersendiri yang berbeda dengan Selenium server RC. Itu adalah dua program yang berbeda. Selenium Grid 2 sekarang dibundel dengan Selenium File jar server
Anda perlu menginstal dan mengkonfigurasi Apache Semut terlebih dahulu sebelum Anda dapat menggunakan Grid 1. Anda tidak perlu menginstal Apache Ant di Grid 2.
Hanya dapat mendukung Selenium Perintah/skrip RC. Dapat mendukung keduanya Selenium Skrip RC dan WebDriver.
Anda hanya dapat mengotomatisasi satu browser per remote control. Satu remote control dapat mengotomatiskan hingga 5 browser.

Selenium grid dapat diatur dengan dua cara berbeda; satu melalui baris perintah dan yang lainnya melalui file konfigurasi JSON.

Merancang Skrip Uji yang Dapat Berjalan di Grid

Untuk merancang skrip pengujian yang akan berjalan di grid, kita perlu menggunakan Kemampuan yang Diinginkan dan Driver Web Jarak Jauh benda.

  • Kemampuan yang Diinginkan digunakan untuk mengatur jenis Browser dan OS yang akan kami otomatisasi.
  • Driver Web Jarak Jauh digunakan untuk mengatur node (atau mesin) mana yang akan dijalankan pengujian kita.

Untuk menggunakan Kemampuan yang Diinginkan keberatan, Anda harus mengimpor paket ini terlebih dahulu

Merancang Skrip Uji Yang Dapat Berjalan Di Grid

Untuk menggunakan Driver Web Jarak Jauh keberatan, Anda harus mengimpor paket-paket ini.

Merancang Skrip Uji yang Dapat Berjalan di Grid

Menggunakan Objek DesiredCapabilites

Buka antarmuka web Grid dan arahkan kursor ke gambar browser yang ingin Anda otomatisasi. Perhatikan Platform, dan Nama browser ditunjukkan oleh tooltip.

Menggunakan Objek DesiredCapabilites

Dalam hal ini, platformnya adalah “XP” dan nama browsernya adalah “Firefox. "

Kami akan menggunakan platform dan nama browser di WebDriver kami seperti yang ditunjukkan di bawah ini (tentu saja Anda perlu mengimpor paket yang diperlukan terlebih dahulu).

Menggunakan Objek DesiredCapabilites

Menggunakan Objek RemoteWebDriver

Impor paket yang diperlukan untuk RemoteWebDriver lalu teruskan objek DesiredCapabilities yang kita buat di atas sebagai parameter untuk objek RemoteWebDriver.

Menggunakan Objek RemoteWebDriver

Menjalankan Contoh Kasus Uji di Grid

Di bawah ini adalah WebDriver sederhana Pengujian kode yang dapat Anda buat Eclipse pada Mesin A. Setelah Anda menjalankannya, otomatisasi akan dilakukan pada Mesin B.

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

Ujiannya harus lulus.

Menjalankan Contoh Kasus Uji Di Gride Menjalankan Contoh Kasus Uji Di Gride

Selenium konfigurasi grid menggunakan File JSON

JSON adalah singkatan dari Javascript Notasi Objek. Ini adalah format standar yang digunakan untuk pertukaran data antara browser dan server web. Selenium memiliki berkas konfigurasi JSON bawaan yang dapat digunakan untuk menyiapkan selenium grid.

Berikut adalah langkah-langkah untuk mengkonfigurasi grid Selenium menggunakan file konfigurasi JSON.

Langkah 1) Unduh kode untuk file konfigurasi JSON menggunakan jalur di bawah ini

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

Ini kodenya

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

Langkah 2) Copy dan paste kode tersebut pada editor teks seperti Notepad dengan ekstensi '.json'

Langkah 3)Luncurkan hub menggunakan perintah di bawah ini menggunakan command prompt

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

CATATAN: Selenium file jar yang berdiri sendiri dan file json harus ada di direktori yang sama

Langkah 4) Layar di bawah ini akan muncul yang menunjukkan hub berhasil dikonfigurasi

Selenium Konfigurasi Grid Menggunakan File JSON

Langkah 5) Buka browser web dan coba sambungkan ke URL di bawah ini

http://192.168.43.223:4444/grid/console

CATATAN: URL mungkin berbeda dari mesin ke mesin. URL yang diikuti dengan 'Node harus mendaftar ke' pada layar di atas harus digunakan.

Langkah 6) Layar Grid Console akan muncul yang menunjukkan hub aktif dan berjalan

Selenium Konfigurasi Grid Menggunakan File JSON

Konfigurasikan NODES menggunakan JSON

Langkah 1) Unduh contoh file konfigurasi node yang disediakan oleh Selenium menggunakan URL di bawah ini

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

CATATAN: JIKA ANDA MENGGUNAKAN SELENIUM 3.0 ATAU DI ATAS, FILE JSON DI BAWAH INI HARUS DIGUNAKAN

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

Langkah 2) Copy dan paste kode tersebut ke dalam editor teks seperti Notepad dan simpan file dengan ekstensi '.json'

Langkah 3)

Jalankan perintah di bawah ini pada command prompt

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

CATATAN: Sebelum menjalankan perintah, pastikan driver untuk setiap browser telah diunduh ke direktori mesin lokal

Langkah 4) Layar di bawah ini akan muncul ketika tombol enter ditekan

Konfigurasikan Node Menggunakan JSON

Langkah 5) Navigasikan ke konsol grid untuk memverifikasi apakah node telah berhasil dikonfigurasi

Konfigurasikan Node Menggunakan JSON

Browser ditampilkan di konsol grid. Oleh karena itu kami dapat yakin bahwa node berhasil dikonfigurasi.

Contoh Kasus Uji Aktif Selenium Kisi:

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

     }

 }

Kode di atas meluncurkan browser chrome dan menavigasi ke URL yang ditentukan dalam variabel 'baseURL'. Ini memverifikasi nama tautan 'Pengujian Seluler' ditampilkan di halaman

URL pada variabel 'nodeURL' dapat dimodifikasi untuk mencerminkan Alamat IP mesin jarak jauh. Hasil tes dapat diverifikasi secara default TestNG laporan yang dihasilkan

Kesimpulan

  • Selenium Grid digunakan untuk menjalankan beberapa pengujian secara bersamaan pada berbagai browser dan platform.
  • Grid menggunakan konsep hub-node.
  • Hub adalah titik pusat tempat Anda memuat pengujian.
  • Node adalah Selenium contoh yang akan menjalankan pengujian yang Anda muat di hub.
  • Untuk menginstal Selenium Grid, Anda hanya perlu mengunduhnya Selenium File jar server – file yang sama yang digunakan saat menjalankan Selenium Tes RC.
  • Ada 2 cara untuk memverifikasi apakah hub sedang berjalan: satu melalui command prompt, dan yang lainnya melalui browser.
  • Untuk menjalankan skrip pengujian di Grid, Anda harus menggunakan objek DesiredCapabilities dan RemoteWebDriver.
  • DesiredCapabilites digunakan untuk mengatur jenis browser dan OS yang akan kita otomatisasi.
  • RemoteWebDriver digunakan untuk menyetel node (atau mesin) mana yang akan dijalankan pengujian kami.