Selenium Οδηγός Grid: Ρύθμιση Hub και Node (Παράδειγμα)
Τι είναι Selenium Πλέγμα?
Selenium Πλέγμα είναι μέρος του Selenium Σουίτα που ειδικεύεται στην παράλληλη εκτέλεση πολλαπλών δοκιμών σε διαφορετικά προγράμματα περιήγησης, λειτουργικά συστήματα και μηχανήματα. Αυτό επιτυγχάνεται με τη δρομολόγηση των εντολών απομακρυσμένων περιπτώσεων προγράμματος περιήγησης όπου ένας διακομιστής λειτουργεί ως διανομέας. Ένας χρήστης πρέπει να διαμορφώσει τον απομακρυσμένο διακομιστή για να εκτελέσει τις δοκιμές.
Selenium Το Πλέγμα έχει 2 εκδόσεις – το παλαιότερο Πλέγμα 1 και το νεότερο Πλέγμα 2. Θα εστιάσουμε μόνο στο Πλέγμα 2 επειδή το Πλέγμα 1 σταδιακά καταργείται από το Selenium Ομάδα.
Selenium Πλέγμα Archiδομή
Selenium Το πλέγμα έχει Hub και Node 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 Διακομιστής από εδώ.
Βήμα 2) Μπορείτε να τοποθετήσετε το Selenium Αρχείο διακομιστή .jar οπουδήποτε στον σκληρό σας δίσκο. Αλλά για τους σκοπούς αυτού του σεμιναρίου, τοποθετήστε το στη μονάδα δίσκου C τόσο της Μηχανής Α όσο και της Μηχανής Β. Αφού το κάνετε αυτό, έχετε πλέον ολοκληρώσει την εγκατάσταση Selenium Πλέγμα. Τα ακόλουθα βήματα θα εκκινήσουν το hub και τον κόμβο.
Βήμα 3)
- Τώρα πρόκειται να ξεκινήσουμε έναν κόμβο. Μεταβείτε στη Μηχανή Α. Χρησιμοποιώντας τη γραμμή εντολών, μεταβείτε στη ρίζα της μονάδας δίσκου Machine A – C, επειδή αυτός είναι ο κατάλογος όπου τοποθετήσαμε το Selenium Server.
- Στη γραμμή εντολών, πληκτρολογήστε java -jar selenium-server-standalone-2.30.0.jar -role hub
- Ο κόμβος θα πρέπει να ξεκινήσει με επιτυχία. Η γραμμή εντολών σας θα πρέπει να μοιάζει με την παρακάτω εικόνα.
Βήμα 4) Ένας άλλος τρόπος για να επαληθεύσετε εάν το hub εκτελείται είναι χρησιμοποιώντας ένα πρόγραμμα περιήγησης. Selenium Το Grid, από προεπιλογή, χρησιμοποιεί τη θύρα 4444 του Machine A για τη διεπαφή ιστού του. Απλώς ανοίξτε ένα πρόγραμμα περιήγησης και μεταβείτε στο http://localhost:4444/grid/console
Επίσης, μπορείτε να ελέγξετε εάν το Μηχάνημα Β μπορεί να έχει πρόσβαση στη διεπαφή ιστού του διανομέα εκκινώντας ένα πρόγραμμα περιήγησης εκεί και πηγαίνοντας στο σημείο όπου το "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
- Όταν πατάτε Enter, η γραμμή εντολών σας θα πρέπει να είναι παρόμοια με την παρακάτω εικόνα.
Βήμα 6) Πηγαίνετε στο Selenium Πλέγμα διεπαφή ιστού και ανανέωση της σελίδας. Θα πρέπει να δείτε κάτι τέτοιο.
Σε αυτό το σημείο, έχετε ήδη διαμορφώσει ένα απλό πλέγμα. Είστε πλέον έτοιμοι να εκτελέσετε μια δοκιμή εξ αποστάσεως στο Μηχάνημα Β.
Πότε να χρησιμοποιήσετε Selenium Πλέγμα?
Θα πρέπει να χρησιμοποιήσετε Selenium Πλέγμα όταν θέλετε να κάνετε ένα ή και τα δύο παρακάτω:
- Εκτελέστε τις δοκιμές σας σε διαφορετικά προγράμματα περιήγησης, λειτουργικά συστήματα και μηχανήματα ταυτόχρονα. Αυτό θα εξασφαλίσει ότι η εφαρμογή είστε Δοκιμές είναι πλήρως συμβατό με ένα ευρύ φάσμα συνδυασμών προγράμματος περιήγησης-OS.
- Εξοικονομήστε χρόνο στην εκτέλεση των δοκιμών σας. Αν ρυθμίσετε Selenium Πλέγμα για να εκτελέσετε, ας πούμε, 4 δοκιμές κάθε φορά, τότε θα μπορούσατε να ολοκληρώσετε ολόκληρη τη σουίτα περίπου 4 φορές πιο γρήγορα.
Πλέγμα 1.0 εναντίον Πλέγματος 2.0
Ακολουθούν οι κύριες διαφορές μεταξύ 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 και τοποθετήστε τον δείκτη του ποντικιού σε μια εικόνα του προγράμματος περιήγησης που θέλετε να αυτοματοποιήσετε. Σημειώστε το πλατφόρμα, και την Όνομα προγράμματος περιήγησης φαίνεται από την επεξήγηση εργαλείου.
Σε αυτήν την περίπτωση, η πλατφόρμα είναι "XP" και το Όνομα προγράμματος περιήγησης είναι "Firefox. "
Θα χρησιμοποιήσουμε την πλατφόρμα και το Όνομα προγράμματος περιήγησης στο WebDriver μας όπως φαίνεται παρακάτω (φυσικά πρέπει πρώτα να εισαγάγετε τα απαραίτητα πακέτα).
Χρήση του αντικειμένου RemoteWebDriver
Εισαγάγετε τα απαραίτητα πακέτα για το RemoteWebDriver και μετά περάστε το αντικείμενο DesiredCapabilities που δημιουργήσαμε παραπάνω ως παράμετρο για το αντικείμενο 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 που μπορεί να χρησιμοποιηθεί για τη ρύθμιση του πλέγματος σεληνίου.
Ακολουθούν τα βήματα για τη διαμόρφωση του πλέγματος σεληνίου χρησιμοποιώντας το αρχείο διαμόρφωσης JSON.
Βήμα 1) Κατεβάστε τον κώδικα για το αρχείο διαμόρφωσης 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) Θα εμφανιστεί η παρακάτω οθόνη που υποδεικνύει ότι ο διανομέας έχει ρυθμιστεί με επιτυχία
Βήμα 5) Ανοίξτε το πρόγραμμα περιήγησης ιστού και δοκιμάστε να συνδεθείτε στην παρακάτω διεύθυνση URL
http://192.168.43.223:4444/grid/console
ΣΗΜΕΊΩΣΗ: Η διεύθυνση URL μπορεί να διαφέρει από μηχανή σε μηχανή. Πρέπει να χρησιμοποιηθεί διεύθυνση URL ακολουθούμενη από «Οι κόμβοι πρέπει να εγγραφούν σε» στην παραπάνω οθόνη.
Βήμα 6) Θα εμφανιστεί η οθόνη Grid Console, η οποία υποδεικνύει ότι ο διανομέας είναι σε λειτουργία και λειτουργεί
Διαμορφώστε τους Κόμβους χρησιμοποιώντας JSON
Βήμα 1) Κάντε λήψη του δείγματος αρχείου διαμόρφωσης κόμβου που παρέχεται από Selenium χρησιμοποιώντας την παρακάτω διεύθυνση URL
ΣΗΜΕΊΩΣΗ: ΕΑΝ ΧΡΗΣΙΜΟΠΟΙΕΙΤΕ SELENIUM 3.0 Ή ΑΝΩΤΕΡΗ, ΠΡΕΠΕΙ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΣΕΤΕ ΤΟ ΠΑΡΑΚΑΤΩ ΑΡΧΕΙΟ 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
Βήμα 5) Πλοηγηθείτε στην κονσόλα πλέγματος για να επαληθεύσετε εάν οι κόμβοι έχουν διαμορφωθεί με επιτυχία
Τα προγράμματα περιήγησης εμφανίζονται στην κονσόλα πλέγματος. Ως εκ τούτου, μπορούμε να είμαστε σίγουροι ότι οι κόμβοι έχουν ρυθμιστεί με επιτυχία.
Δείγματα δοκιμαστικών περιπτώσεων 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". Επιβεβαίωσε ότι εμφανίζεται στη σελίδα το όνομα συνδέσμου «Δοκιμή κινητού τηλεφώνου».
Η διεύθυνση URL στη μεταβλητή 'nodeURL' μπορεί να τροποποιηθεί ώστε να αντικατοπτρίζει τη διεύθυνση IP του απομακρυσμένου μηχανήματος. Το αποτέλεσμα της δοκιμής μπορεί να επαληθευτεί στην προεπιλογή TestNG έκθεση που δημιουργήθηκε
Σύνοψη
- Selenium Το Grid χρησιμοποιείται για την εκτέλεση πολλαπλών δοκιμών ταυτόχρονα σε διαφορετικά προγράμματα περιήγησης και πλατφόρμες.
- Το Grid χρησιμοποιεί την έννοια hub-node.
- Το κέντρο είναι το κεντρικό σημείο στο οποίο φορτώνετε τις δοκιμές σας.
- Οι κόμβοι είναι οι Selenium στιγμιότυπα που θα εκτελέσουν τις δοκιμές που φορτώσατε στο hub.
- Για να εγκαταστήσετε Selenium Grid, χρειάζεται μόνο να κατεβάσετε το Selenium Αρχείο διακομιστή jar – το ίδιο αρχείο που χρησιμοποιείται στην εκτέλεση Selenium Δοκιμές RC.
- Υπάρχουν 2 τρόποι για να επαληθεύσετε εάν το hub εκτελείται: ο ένας ήταν μέσω της γραμμής εντολών και ο άλλος μέσω ενός προγράμματος περιήγησης.
- Για να εκτελέσετε δοκιμαστικά σενάρια στο Grid, θα πρέπει να χρησιμοποιήσετε τα αντικείμενα DesiredCapabilities και RemoteWebDriver.
- Το DesiredCapabilites χρησιμοποιείται για τον ορισμό του τύπου του προγράμματος περιήγησης και του λειτουργικού συστήματος που θα αυτοματοποιήσουμε.
- Το RemoteWebDriver χρησιμοποιείται για να ορίσει σε ποιον κόμβο (ή μηχανή) θα εκτελεστεί η δοκιμή μας.