Selenium Οδηγός Grid: Ρύθμιση Hub και Node (Παράδειγμα)

Τι είναι Selenium Πλέγμα?

Selenium Πλέγμα είναι μέρος του Selenium Σουίτα που ειδικεύεται στην εκτέλεση πολλαπλών δοκιμών σε διαφορετικά προγράμματα περιήγησης, operaσυστήματα και μηχανές παράλληλα. Αυτό επιτυγχάνεται με τη δρομολόγηση των εντολών απομακρυσμένων περιπτώσεων προγράμματος περιήγησης όπου ένας διακομιστής λειτουργεί ως διανομέας. Ένας χρήστης πρέπει να διαμορφώσει τον απομακρυσμένο διακομιστή για να εκτελέσει τις δοκιμές.

Selenium Το Πλέγμα έχει 2 εκδόσεις – το παλαιότερο Πλέγμα 1 και το νεότερο Πλέγμα 2. Θα εστιάσουμε μόνο στο Πλέγμα 2 επειδή το Πλέγμα 1 σταδιακά καταργείται από το Selenium Ομάδα.

Selenium Πλέγμα Archiδομή

Selenium Το πλέγμα έχει Hub και Node Archiδομή.

Selenium Πλέγμα Archiδομή
Selenium Πλέγμα Archiδομή

Hub

  • Το κέντρο είναι το κεντρικό σημείο στο οποίο φορτώνετε τις δοκιμές σας.
  • Θα πρέπει να υπάρχει μόνο ένας κόμβος σε ένα πλέγμα.
  • Ο διανομέας εκκινείται μόνο σε ένα μόνο μηχάνημα, για παράδειγμα, έναν υπολογιστή του οποίου το λειτουργικό σύστημα είναι Windows 7 και του οποίου το πρόγραμμα περιήγησης είναι IE.
  • Το μηχάνημα που περιέχει το hub είναι το σημείο όπου θα εκτελεστούν οι δοκιμές, αλλά θα δείτε το πρόγραμμα περιήγησης να αυτοματοποιείται στον κόμβο.

Nodes

  • Οι κόμβοι είναι οι Selenium στιγμιότυπα που θα εκτελέσουν τις δοκιμές που φορτώσατε στο hub.
  • Μπορεί να υπάρχουν ένας ή περισσότεροι κόμβοι σε ένα πλέγμα.
  • Οι κόμβοι μπορούν να εκκινηθούν σε πολλαπλές μηχανές με διαφορετικές πλατφόρμες και προγράμματα περιήγησης.
  • Οι μηχανές που εκτελούν τους κόμβους δεν χρειάζεται να είναι η ίδια πλατφόρμα με αυτή του διανομέα.

Selenium Το πλέγμα χρησιμοποιεί μια ιδέα hub-node όπου εκτελείτε τη δοκιμή μόνο σε ένα μόνο μηχάνημα που ονομάζεται a κόμβο, αλλά η εκτέλεση θα γίνει από διαφορετικά μηχανήματα που ονομάζονται κόμβων

Πώς να ρυθμίσετε Selenium Πλέγμα?

Σε αυτή την ενότητα, θα χρησιμοποιήσετε 2 μηχανές. Το πρώτο μηχάνημα θα είναι το σύστημα που θα τρέξει το hub ενώ το άλλο μηχάνημα θα εκτελέσει έναν κόμβο. Για απλότητα, ας ονομάσουμε το μηχάνημα όπου λειτουργεί ο διανομέας ως "Μηχανή Α" ενώ το μηχάνημα όπου εκτελείται ο κόμβος θα είναι "Μηχανή Β". Είναι επίσης σημαντικό να σημειώσετε τις διευθύνσεις IP τους. Ας πούμε ότι η μηχανή Α έχει διεύθυνση IP 192.168.1.3 ενώ η μηχανή Β έχει IP 192.168.1.4.

Βήμα 1) Κατεβάστε το Selenium Διακομιστής από εδώ.

που Up Selenium Πλέγμα

Βήμα 2) Μπορείτε να τοποθετήσετε το Selenium Αρχείο διακομιστή .jar οπουδήποτε στον σκληρό σας δίσκο. Αλλά για τους σκοπούς αυτού του σεμιναρίου, τοποθετήστε το στη μονάδα δίσκου C τόσο της Μηχανής Α όσο και της Μηχανής Β. Αφού το κάνετε αυτό, έχετε πλέον ολοκληρώσει την εγκατάσταση Selenium Πλέγμα. Το Following Τα βήματα θα εκκινήσουν τον κόμβο και τον κόμβο.

Βήμα 3)

  • Τώρα πρόκειται να ξεκινήσουμε έναν κόμβο. Μεταβείτε στη Μηχανή Α. Χρησιμοποιώντας τη γραμμή εντολών, μεταβείτε στη ρίζα της μονάδας δίσκου Machine A – C, επειδή αυτός είναι ο κατάλογος όπου τοποθετήσαμε το Selenium Server.
  • Στη γραμμή εντολών, πληκτρολογήστε java -βάζο selenium-server-standalone-2.30.0.jar -role hub
  • Ο κόμβος θα πρέπει να ξεκινήσει με επιτυχία. Η γραμμή εντολών σας θα πρέπει να μοιάζει με την παρακάτω εικόνα.

που Up Selenium Πλέγμα

Βήμα 4) Ένας άλλος τρόπος για να επαληθεύσετε εάν το hub εκτελείται είναι χρησιμοποιώντας ένα πρόγραμμα περιήγησης. Selenium Το Grid, από προεπιλογή, χρησιμοποιεί τη θύρα 4444 του Machine A για τη διεπαφή ιστού του. Απλώς ανοίξτε ένα πρόγραμμα περιήγησης και μεταβείτε στο http://localhost:4444/grid/console

που Up Selenium Πλέγμα

Επίσης, μπορείτε να ελέγξετε εάν το Μηχάνημα Β μπορεί να έχει πρόσβαση στη διεπαφή ιστού του διανομέα εκκινώντας ένα πρόγραμμα περιήγησης εκεί και πηγαίνοντας στο σημείο όπου το "iporhostnameofmachineA" θα πρέπει να είναι η διεύθυνση IP ή το όνομα κεντρικού υπολογιστή του μηχανήματος όπου εκτελείται ο διανομέας. Εφόσον η διεύθυνση IP του μηχανήματος Α είναι 192.168.1.3, τότε στο πρόγραμμα περιήγησης στο Μηχάνημα Β θα πρέπει να πληκτρολογήσετε http://192.168.1.3:4444/grid/console

Βήμα 5)

  • Τώρα που το hub έχει ήδη ρυθμιστεί, πρόκειται να εκκινήσουμε έναν κόμβο. Μεταβείτε στο Machine B και ξεκινήστε μια γραμμή εντολών εκεί.
  • Μεταβείτε στη ρίζα του Drive C και πληκτρολογήστε τον παρακάτω κώδικα. Χρησιμοποιήσαμε τη διεύθυνση IP 192.168.1.3 επειδή εκεί εκτελείται ο διανομέας. Χρησιμοποιήσαμε επίσης τη θύρα 5566, αν και μπορείτε να επιλέξετε όποιον αριθμό δωρεάν θύρας θέλετε.
  • ΣΗΜΕΙΩΣΗ: Τώρα πρέπει να δώσετε διαδρομή στο πρόγραμμα οδήγησης Gecko εάν χρησιμοποιείτε Firefox. Εδώ είναι ενημερωμένος κώδικας που πρέπει να χρησιμοποιηθεί
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

που Up Selenium Πλέγμα

  • Όταν πατάτε Enter, η γραμμή εντολών σας θα πρέπει να είναι παρόμοια με την παρακάτω εικόνα.

που Up Selenium Πλέγμα

Βήμα 6) Πηγαίνετε στο Selenium Πλέγμα διεπαφή ιστού και ανανέωση της σελίδας. Θα πρέπει να δείτε κάτι τέτοιο.

που Up Selenium Πλέγμα

Σε αυτό το σημείο, έχετε ήδη διαμορφώσει ένα απλό πλέγμα. Είστε πλέον έτοιμοι να εκτελέσετε μια δοκιμή εξ αποστάσεως στο Μηχάνημα Β.

Πότε να χρησιμοποιήσετε Selenium Πλέγμα?

Θα πρέπει να χρησιμοποιήσετε Selenium Πλέγμα όταν θέλετε να κάνετε είτε το ένα είτε και τα δύο following:

  • Εκτελέστε τις δοκιμές σας σε διαφορετικά προγράμματα περιήγησης, operaσυστήματα και μηχανές ταυτόχρονα. Αυτό θα εξασφαλίσει ότι η εφαρμογή είστε Δοκιμές είναι πλήρως συμβατό με ένα ευρύ φάσμα συνδυασμών προγράμματος περιήγησης-OS.
  • Εξοικονομήστε χρόνο στην εκτέλεση των δοκιμών σας. Αν ρυθμίσετε Selenium Πλέγμα για να εκτελέσετε, ας πούμε, 4 δοκιμές κάθε φορά, τότε θα μπορούσατε να ολοκληρώσετε ολόκληρη τη σουίτα περίπου 4 φορές πιο γρήγορα.

Πλέγμα 1.0 εναντίον Πλέγματος 2.0

Following είναι οι κύριες διαφορές μεταξύ Selenium Πλέγμα 1 και 2.

Πλέγμα 1 Πλέγμα 2
Selenium Το Grid 1 έχει το δικό του τηλεχειριστήριο που είναι διαφορετικό από το Selenium Διακομιστής RC. Είναι δύο διαφορετικά προγράμματα. Selenium Το Πλέγμα 2 είναι πλέον πακέτο με το Selenium Αρχείο jar διακομιστή
Πρέπει να εγκαταστήσετε και να ρυθμίσετε τις παραμέτρους Apache Το μυρμήγκι πρώτα προτού μπορέσετε να χρησιμοποιήσετε το Πλέγμα 1. Δεν χρειάζεται να εγκαταστήσετε το Apache Ant στο Grid 2.
Μπορεί μόνο να υποστηρίξει Selenium Εντολές/σενάρια RC. Μπορεί να υποστηρίξει και τα δύο Selenium Σενάρια RC και WebDriver.
Μπορείτε να αυτοματοποιήσετε μόνο ένα πρόγραμμα περιήγησης ανά τηλεχειριστήριο. Ένα τηλεχειριστήριο μπορεί να αυτοματοποιήσει έως και 5 προγράμματα περιήγησης.

Selenium Το πλέγμα μπορεί να ρυθμιστεί με δύο διαφορετικούς τρόπους. το ένα μέσω της γραμμής εντολών και το άλλο μέσω του αρχείου διαμόρφωσης JSON.

Σχεδιασμός δοκιμαστικών σεναρίων που μπορούν να εκτελεστούν στο πλέγμα

Για να σχεδιάσουμε δοκιμαστικά σενάρια που θα εκτελούνται στο πλέγμα, πρέπει να χρησιμοποιήσουμε Επιθυμητές Ικανότητες και την RemoteWebDriver αντικείμενα.

  • Επιθυμητές Ικανότητες χρησιμοποιείται για να ορίσετε τον τύπο του πρόγραμμα περιήγησης και OS που θα αυτοματοποιήσουμε.
  • RemoteWebDriver χρησιμοποιείται για να ορίσετε σε ποιον κόμβο (ή μηχανή) θα εκτελεστεί η δοκιμή μας.

Για να χρησιμοποιήσετε το Επιθυμητές Ικανότητες αντικείμενο, πρέπει πρώτα να εισαγάγετε αυτό το πακέτο

Σχεδιασμός σεναρίων δοκιμών που μπορούν να εκτελεστούν στο πλέγμα

Για να χρησιμοποιήσετε το RemoteWebDriver αντικείμενο, πρέπει να εισαγάγετε αυτά τα πακέτα.

Σχεδιασμός δοκιμαστικών σεναρίων που μπορούν να εκτελεστούν στο πλέγμα

Χρήση του αντικειμένου DesiredCapabilites

Μεταβείτε στη διεπαφή ιστού του Grid και τοποθετήστε τον δείκτη του ποντικιού σε μια εικόνα του προγράμματος περιήγησης που θέλετε να αυτοματοποιήσετε. Σημειώστε το πλατφόρμα, και την Όνομα προγράμματος περιήγησης φαίνεται από την επεξήγηση εργαλείου.

Χρήση του αντικειμένου DesiredCapabilites

Σε αυτήν την περίπτωση, η πλατφόρμα είναι "XP" και το Όνομα προγράμματος περιήγησης είναι "Firefox. "

Θα χρησιμοποιήσουμε την πλατφόρμα και το Όνομα προγράμματος περιήγησης στο WebDriver μας όπως φαίνεται παρακάτω (φυσικά πρέπει πρώτα να εισαγάγετε τα απαραίτητα πακέτα).

Χρήση του αντικειμένου DesiredCapabilites

Χρήση του αντικειμένου RemoteWebDriver

Εισαγάγετε τα απαραίτητα πακέτα για το RemoteWebDriver και μετά περάστε το αντικείμενο DesiredCapabilities που δημιουργήσαμε παραπάνω ως παράμετρο για το αντικείμενο RemoteWebDriver.

Χρήση του αντικειμένου RemoteWebDriver

Εκτέλεση ενός δείγματος δοκιμής στο πλέγμα

Παρακάτω είναι ένα απλό WebDriver Testng κώδικα στον οποίο μπορείτε να δημιουργήσετε Eclipse στο Μηχάνημα Α. Μόλις το εκτελέσετε, ο αυτοματισμός θα εκτελεστεί στο Μηχάνημα Β.

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

Το τεστ πρέπει να περάσει.

Εκτέλεση Δείγματος Δοκιμαστικής Περίπτωσης στο Πλέγμα Εκτέλεση Δείγματος Δοκιμαστικής Περίπτωσης στο Πλέγμα

Selenium διαμόρφωση πλέγματος χρησιμοποιώντας το αρχείο JSON

Το JSON σημαίνει Σημειογραφία αντικειμένου Javascript. Είναι μια τυπική μορφή που χρησιμοποιείται για την ανταλλαγή δεδομένων μεταξύ του προγράμματος περιήγησης και του διακομιστή ιστού. Selenium έχει ένα ενσωματωμένο αρχείο διαμόρφωσης JSON που μπορεί να χρησιμοποιηθεί για ρύθμιση selenium πλέγμα.

Παρακάτω είναι τα βήματα για τη διαμόρφωση selenium πλέγμα χρησιμοποιώντας το αρχείο διαμόρφωσης JSON.

Βήμα 1) Κατεβάστε τον κώδικα για το αρχείο διαμόρφωσης JSON χρησιμοποιώντας την παρακάτω διαδρομή

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

Εδώ είναι ο κωδικός

{
	  "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) Αντιγράψτε και επικολλήστε τον κώδικα σε ένα πρόγραμμα επεξεργασίας κειμένου όπως το Σημειωματάριο με την επέκταση ".json"

Βήμα 3)Εκκινήστε το hub χρησιμοποιώντας την παρακάτω εντολή χρησιμοποιώντας τη γραμμή εντολών

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

ΣΗΜΕΊΩΣΗ: Selenium αυτόνομο αρχείο jar και το αρχείο json πρέπει να υπάρχει στον ίδιο κατάλογο

Βήμα 4) Θα εμφανιστεί η παρακάτω οθόνη που υποδεικνύει ότι ο διανομέας έχει ρυθμιστεί με επιτυχία

Selenium Διαμόρφωση πλέγματος με χρήση αρχείου JSON

Βήμα 5) Ανοίξτε το πρόγραμμα περιήγησης ιστού και δοκιμάστε να συνδεθείτε στην παρακάτω διεύθυνση URL

http://192.168.43.223:4444/grid/console

ΣΗΜΕΊΩΣΗ: Η διεύθυνση URL μπορεί να διαφέρει από μηχανή σε μηχανή. Πρέπει να χρησιμοποιηθεί διεύθυνση URL ακολουθούμενη από «Οι κόμβοι πρέπει να εγγραφούν σε» στην παραπάνω οθόνη.

Βήμα 6) Θα εμφανιστεί η οθόνη Grid Console, η οποία υποδεικνύει ότι ο διανομέας είναι σε λειτουργία και λειτουργεί

Selenium Διαμόρφωση πλέγματος με χρήση αρχείου JSON

Διαμορφώστε τους Κόμβους χρησιμοποιώντας JSON

Βήμα 1) Κάντε λήψη του δείγματος αρχείου διαμόρφωσης κόμβου που παρέχεται από Selenium χρησιμοποιώντας την παρακάτω διεύθυνση URL

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

ΣΗΜΕΊΩΣΗ: ΑΝ ΧΡΗΣΙΜΟΠΟΙΕΙΤΕ SELENIUM 3.0 Ή ΠΑΡΑΚΑΤΩ, ΠΡΕΠΕΙ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΘΕΙ ΤΟ ΠΑΡΑΚΑΤΩ ΑΡΧΕΙΟ JSON

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

Βήμα 2) Αντιγράψτε και επικολλήστε τον κώδικα σε ένα πρόγραμμα επεξεργασίας κειμένου όπως το Σημειωματάριο και αποθηκεύστε το αρχείο με την επέκταση '.json'

Βήμα 3)

Εκτελέστε την παρακάτω εντολή στη γραμμή εντολών

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

ΣΗΜΕΊΩΣΗ: Πριν εκτελέσετε την εντολή, βεβαιωθείτε ότι τα προγράμματα οδήγησης για καθένα από τα προγράμματα περιήγησης έχουν γίνει λήψη στον τοπικό κατάλογο μηχανών

Βήμα 4) Η παρακάτω οθόνη θα εμφανιστεί όταν πατηθεί το πλήκτρο enter

Διαμόρφωση κόμβων με χρήση JSON

Βήμα 5) Πλοηγηθείτε στην κονσόλα πλέγματος για να επαληθεύσετε εάν οι κόμβοι έχουν διαμορφωθεί με επιτυχία

Διαμόρφωση κόμβων με χρήση JSON

Τα προγράμματα περιήγησης είναι dislayed στην κονσόλα πλέγματος. Ως εκ τούτου, μπορούμε να είμαστε σίγουροι ότι οι κόμβοι έχουν ρυθμιστεί με επιτυχία.

Δείγματα δοκιμαστικών περιπτώσεων On Selenium Πλέγμα:

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

     }

 }

Ο παραπάνω κώδικας εκκινεί το πρόγραμμα περιήγησης chrome και πλοηγείται στη διεύθυνση URL που καθορίζεται στη μεταβλητή "baseURL". Επιβεβαίωσε ότι ένα όνομα συνδέσμου «Δοκιμή κινητού» είναι dislayed στη σελίδα

Η διεύθυνση URL στη μεταβλητή 'nodeURL' μπορεί να τροποποιηθεί ώστε να αντικατοπτρίζει τη διεύθυνση IP του απομακρυσμένου μηχανήματος. Το αποτέλεσμα της δοκιμής μπορεί να επαληθευτεί στην προεπιλογή TestNG έκθεση που δημιουργήθηκε

Χαρακτηριστικά

  • Selenium Το πλέγμα χρησιμοποιείται για την ταυτόχρονη εκτέλεση πολλαπλών δοκιμώνneoσυνήθως σε διαφορετικά προγράμματα περιήγησης και πλατφόρμες.
  • Το Grid χρησιμοποιεί την έννοια hub-node.
  • Το κέντρο είναι το κεντρικό σημείο στο οποίο φορτώνετε τις δοκιμές σας.
  • Οι κόμβοι είναι οι Selenium στιγμιότυπα που θα εκτελέσουν τις δοκιμές που φορτώσατε στο hub.
  • Για να εγκαταστήσετε Selenium Grid, χρειάζεται μόνο να κατεβάσετε το Selenium Αρχείο διακομιστή jar – το ίδιο αρχείο που χρησιμοποιείται στην εκτέλεση Selenium Δοκιμές RC.
  • Υπάρχουν 2 τρόποι για να επαληθεύσετε εάν το hub εκτελείται: ο ένας ήταν μέσω της γραμμής εντολών και ο άλλος μέσω ενός προγράμματος περιήγησης.
  • Για να εκτελέσετε δοκιμαστικά σενάρια στο Grid, θα πρέπει να χρησιμοποιήσετε τα αντικείμενα DesiredCapabilities και RemoteWebDriver.
  • Το DesiredCapabilites χρησιμοποιείται για τον ορισμό του τύπου του προγράμματος περιήγησης και του λειτουργικού συστήματος που θα αυτοματοποιήσουμε.
  • Το RemoteWebDriver χρησιμοποιείται για να ορίσει σε ποιον κόμβο (ή μηχανή) θα εκτελεστεί η δοκιμή μας.