Δημιουργία πλέγματος σεληνίου για δοκιμή κατανεμημένου σεληνίου

Αυτό το ιστολόγιο θα σας βοηθήσει να κατανοήσετε την ανάγκη για το Selenium Grid και τα οφέλη του. Διαβάστε το για να ρυθμίσετε το πρώτο σας πλέγμα Selenium διαμορφώνοντας κόμβο και κόμβους.

Τα άλλα ιστολόγια σε αυτήν τη σειρά εκμάθησης Selenium μιλούν για τη δημιουργία δοκιμαστικών περιπτώσεων και την εκτέλεση αυτών των δοκιμαστικών περιπτώσεων διαδοχικά και παράλληλα. Έτσι, η τελική τεχνική που απομένει για συζήτηση είναι η εκτέλεση δοκιμαστικών περιπτώσεων σε απομακρυσμένα μηχανήματα. Το Selenium Grid μπορεί να χρησιμοποιηθεί για την εκτέλεση αυτών των δοκιμών σε απομακρυσμένα μηχανήματα / κεντρικούς υπολογιστές. Ως εκ τούτου, αυτό είναι το θέμα της συζήτησης του σημερινού ιστολογίου.



  1. Γιατί και πότε να χρησιμοποιήσετε το Selenium Grid;
  2. Τι είναι το πλέγμα σεληνίου;
  3. Selenium Grid 1 εναντίον Selenium Grid 2
  4. Αρχιτεκτονική του πλέγματος σεληνίου
  5. Δημιουργία πλέγματος σεληνίου

Γιατί & πότε να χρησιμοποιήσετε το πλέγμα σεληνίου;

Υπάρχουν τόσα πολλά προγράμματα περιήγησης ιστού που χρησιμοποιούνται σήμερα. Οι χρήστες ενδέχεται να χρησιμοποιούν Chrome ή Firefox ή Safari ή Opera ή ακόμα και τον Internet Explorer για την ανάγνωση αυτού του ιστολογίου. Μπορεί να χρησιμοποιούν διαφορετικές εκδόσεις των προγραμμάτων περιήγησης. Μπορεί επίσης να εκτελούν αυτά τα προγράμματα περιήγησης σε οποιοδήποτε λειτουργικό σύστημα, είτε πρόκειται για Windows είτε για Mac ή Ubuntu ή οποιαδήποτε άλλη διανομή του Linux.



Τι γίνεται αν οι χρήστες βλέπουν κάτι σημαντικό στο Διαδίκτυο; Κάτι σημαντικό για την επιχείρησή σας. Δεν θα θέλατε να κάνετε αυτό το επιπλέον βήμα (δοκιμή της εφαρμογής ιστού) μόνο για να διασφαλίσετε ότι οι χρήστες ή / και οι πελάτες σας θα έχουν την καλύτερη εμπειρία χρήστη; Θα, σωστά;

Λοιπόν, πρέπει!



Αλλά το ερώτημα είναι, πόσο εφικτό είναι; Θα μπορείτε να αφιερώσετε χρόνο δοκιμάζοντας την εφαρμογή ιστού σας σε κάθε πιθανό λειτουργικό σύστημα και σε κάθε διαθέσιμο πρόγραμμα περιήγησης ιστού; Χμμ, ακούγεται σαν μια πρόκληση. Αυτό είναι όπου το Selenium Grid ταιριάζει με το λογαριασμό και βοηθάεξοικονομήστε χρόνο και ενέργεια.

Εκτός από αυτό, προκύπτει ένα ακόμη ερώτημα: Είναι βιώσιμο να δημιουργηθεί η υποδομή δικτύου Selenium χρησιμοποιώντας τοπικά συστήματα; Η διατήρηση ενός δικτύου με όλα τα απαιτούμενα προγράμματα περιήγησης και τα λειτουργικά συστήματα είναι μια πρόκληση. Για αυτό, υπάρχουν πολλές διαδικτυακές πλατφόρμες που παρέχουν ένα διαδικτυακό Selenium Grid στο οποίο μπορείτε να έχετε πρόσβαση για να εκτελέσετε τα σενάρια αυτοματισμού σεληνίου. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε Δοκιμή Lambda . Διαθέτει περισσότερα από 2000 περιβάλλοντα προγράμματος περιήγησης στα οποία μπορείτε να εκτελέσετε τις δοκιμές σας και πραγματικά αυτοματοποιημένη δοκιμή προγράμματος περιήγησης.

Τι είναι το πλέγμα σεληνίου;

Το Selenium Grid είναι ένα άλλο σημαντικό εργαλείο στη σουίτα εργαλείων Selenium. Το Grid είναι ικανό να συντονίζει τις δοκιμές WebDriver / RC που μπορούν να εκτελούνται ταυτόχρονα σε πολλά προγράμματα περιήγησης στο Web ή μπορούν να ξεκινήσουν σε διαφορετικά λειτουργικά συστήματα ή ακόμη και να φιλοξενηθούν σε διαφορετικά μηχανήματα.



πλέγμα εργασίας - πλέγμα σεληνίουΛοιπόν, πώς λειτουργεί; Το Grid χρησιμοποιεί μια αρχιτεκτονική Hub-Node όπου, υπάρχει ένα Hub, το οποίο λειτουργεί ως κύριο και ένας ή περισσότεροι κόμβοι που λειτουργούν ως σκλάβοι.

Αυτό σημαίνει ότι, εάν έχετε συνολικά 100 εργασίες / δοκιμές που πρέπει να εκτελεστούν, τότε οι δοκιμές μπορούν να εκτελεστούν ταυτόχρονα σε 5 μηχανήματα, όπου κάθε μηχανή θα εκτελεί 20 δοκιμές. Στην πραγματικότητα, μπορείτε να εκτελέσετε αυτές τις δοκιμές σε διαφορετικούς συνδυασμούς λειτουργικών συστημάτων και προγραμμάτων περιήγησης. Κάθε μηχανή εδώ μπορεί να είναι διαφορετικού λειτουργικού συστήματος και μέσα σε κάθε λειτουργικό σύστημα, οι δοκιμές μπορούν να πραγματοποιηθούν σε διαφορετικά προγράμματα περιήγησης.

Αυτή η πράξη θα εξοικονομούσε εύκολα πολύ χρόνο στον έλεγχο της εκτέλεσης. Εάν λάβετε υπόψη το παραπάνω παράδειγμα, τότε μπορούμε να μειώσουμε το χρόνο εκτέλεσης στο 1/5 του συνολικού χρόνου που απαιτείται για την εκτέλεση δοκιμών σε ένα μόνο μηχάνημα.

Αν μπορείτε να θυμηθείτε από τα προηγούμενα ιστολόγιά μου, έχω αναφέρει αμέτρητες φορές ότι το Grid ήταν μέρος του έργου Selenium από την έναρξή του, δηλαδή από το Selenium v1. Το Selenium Grid ήταν επίσης μέρος του Selenium v2 και επί του παρόντος είναι μέρος του Selenium v3. Δεν υπάρχει μεγάλη διαφορά στα v2 και v3 του Selenium Grid. Ωστόσο, το v1 έχει πολλές διαφορές συγκριτικά. Λοιπόν αςκατανοήστε τις διαφορές μεταξύ v1 και v2.

Selenium Grid 1 εναντίον Selenium Grid 2

Η θεμελιώδης διαφορά μεταξύ του Grid v1.0 και v2.0 είναι ότι, το RC χρησιμοποιήθηκε στο Grid 1 και το WebDriver χρησιμοποιήθηκε στο Grid 2. Ο παρακάτω πίνακας εξηγεί λεπτομερώς τις διαφορές.

Πλέγμα 1 Πλέγμα 2
Απαιτείται εγκατάσταση του Apache AntΔεν απαιτείται εγκατάσταση του Apache Ant
Έχει το δικό του τηλεχειριστήριο (Αυτό διαφέρει από τον διακομιστή RC)Ομαδοποίηση με αρχείο βάζου διακομιστή Selenium
Υποστηρίζει μόνο εντολές Selenium RCΥποστηρίζει σενάρια Selenium RC και WebDriver
Μπορείτε να αυτοματοποιήσετε μόνο ένα πρόγραμμα περιήγησης ανά τηλεχειριστήριοΜπορείτε να αυτοματοποιήσετε έως 5 προγράμματα περιήγησης ανά τηλεχειριστήριο


Τώρα που έχουμε μάθει τις θεμελιώδεις διαφορές μεταξύ των δύο εκδόσεων, ας βυθίσουμε βαθιά το Selenium Grid.

Αρχιτεκτονική πλέγματος σεληνίου

Όπως ανέφερα νωρίτερα, το πλέγμα λειτουργεί βάσει ενός Hub και πολλαπλών κόμβων. Αλλά, τι είναι το Hub και οι κόμβοι και τι κάνουν;

Ο κόμβος

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

Για να συμβεί αυτό, πρέπει πρώτα να διαμορφώσουμε το Hub και, στη συνέχεια, να κάνουμε άλλους κόμβους για εγγραφή στο Hub. Προτού αναφερθώ σε πάρα πολλές λεπτομέρειες, επιτρέψτε μου να σας δείξω την εντολή για να διαμορφώσετε το Hub.

Διαμόρφωση του Hub

Πρέπει πρώτα να κατεβάσετε το αρχείο JAR διακομιστή Selenium από τον ιστότοπο του Seleniumhq. Ο σύνδεσμος είναι εδώ . Πρέπει επίσης να βεβαιωθείτε ότι η Java είναι εγκατεστημένη στο σύστημά σας και ότι έχουν ρυθμιστεί οι μεταβλητές περιβάλλοντος.

Μόλις κατεβάσετε το αρχείο βάζου, πρέπει να το τοποθετήσετε σε κατάλληλο κατάλογο. Για τη διευκόλυνσή μου, το έχω κατεβάσει και το έχω τοποθετήσει στο φάκελο Selenium στο C Drive. Συνιστάται να κατεβάσετε επίσης το αρχείο jar και να το τοποθετήσετε σε παρόμοιο κατάλογο σε όλους τους άλλους κόμβους.

Για να ρυθμίσετε το Hub, πρέπει να εκτελέσετε την εντολή στη γραμμή εντολών των Windows. Η εντολή υπάρχει στο παρακάτω απόσπασμα.

C: UsersVardhan> cd .. C: Users> cd .. C:> cd Selenium C: Selenium> java -jar selenium-server-standalone-3.4.0.jar -role hub

ο selenium-server-standalone-3.4.0.jar είναι το όνομα του αρχείου βάζου που κατέβασα.
ο -ρόλος Η σημαία χρησιμοποιείται για να ορίσει το συγκεκριμένο μηχάνημα κεντρικού υπολογιστή ως Hub. Όταν πατήσετε enter, θα εμφανιστεί η παρακάτω έξοδος στην οθόνη σας.

Σε περίπτωση που δεν παρατηρήσατε το παραπάνω στιγμιότυπο οθόνης, τότε δείτε ξανά. Λέει ' -Οι κόμβοι πρέπει να εγγραφούν στο http://192.168.0.11:4444/grid/register «. Τώρα που έχει διαμορφωθεί το Hub, πρέπει να ρυθμίσουμε τους κόμβους και να τους συνδέσουμε σε αυτό το Hub.

Το 192.168.0.11 είναι η διεύθυνση IP του Hub και κάθε κόμβος πρέπει να συνδεθεί σε αυτήν τη διεύθυνση IP. 4444 είναι ο προεπιλεγμένος αριθμός θύρας στον οποίο το Selenium Grid φιλοξενείται και ακούει αιτήματα. Εάν κάποια άλλη υπηρεσία εκτελείται στη θύρα 4444 και θέλετε το Selenium Grid να φιλοξενείται σε άλλη θύρα, τότε μπορείτε να το κάνετε καθορίζοντας το -Λιμάνι σημαία ακολουθούμενη από τον αριθμό θύρας.

Οι κόμβοι

Οι κόμβοι είναι οι κεντρικές μηχανές στις οποίες εκτελούνται οι δοκιμές. Αυτές οι δοκιμές θα ξεκινήσουν από το Hub. Το Hub μπορεί να εκκινήσει έναν ή περισσότερους κόμβους είτε σε απομακρυσμένα μηχανήματα είτε στο ίδιο μηχάνημα όπου βρίσκεται το ίδιο το Hub. Σε κάθε έναν από τους κόμβους, μπορούν να εκκινηθούν διαφορετικά λειτουργικά συστήματα και σε διαφορετικά λειτουργικά συστήματα μπορούν να ξεκινήσουν διαφορετικές εκδόσεις του ίδιου προγράμματος περιήγησης ή διαφορετικών προγραμμάτων περιήγησης.

Διαμόρφωση των κόμβων

Παρόμοια με το Hub, πρέπει πρώτα να κατεβάσετε το αρχείο Jar στα μηχανήματα Node και να το τοποθετήσετε στη μονάδα δίσκου C ή σε οποιονδήποτε άλλο κοινό κατάλογο για την εξυπηρέτησή σας. Στη συνέχεια, μπορείτε να εκτελέσετε την παρακάτω εντολή στη γραμμή εντολών των Windows. Εάν εκκινείτε ακόμη και τον κόμβο στον ίδιο υπολογιστή με το Hub σας, τότε πρέπει να εκτελέσετε την εντολή ξεκινώντας μια άλλη γραμμή εντολών.

java -Dwebdriver.chrome.driver = E: chromedriver.exe -jar selenium-server-standalone-3.4.0.jar -role node -hub http://192.168.0.11:4444/grid/register

Υπάρχουν μόνο μερικές διαφορές σε αυτήν την εντολή σε σύγκριση με την εντολή που απαιτείται για την εκκίνηση του Hub.
-Dwebdriver.chrome.driver = E: chromedriver.exe χρησιμοποιείται για τον καθορισμό της διαδρομής του προγράμματος οδήγησης προγράμματος περιήγησης. Παρόμοια με τη ρύθμιση της διαδρομής του προγράμματος οδήγησης του προγράμματος περιήγησης στον κώδικα WebDriver, το ορίζετε εδώ για να επιτρέψετε στον κόμβο να πραγματοποιεί δοκιμές. Από το Selenium v3 και μετά, πρέπει να κάνετε λήψη του προγράμματος περιήγησης προγράμματος οδήγησης για τον Firefox. Το πρόγραμμα οδήγησης προγράμματος περιήγησης για τον Firefox είναι πρόγραμμα οδήγησης Gecko. Ωστόσο, στις εκδόσεις 1 και 2, πρέπει να ορίσετε το πρόγραμμα οδήγησης του προγράμματος περιήγησης για όλα τα προγράμματα περιήγησης εκτός του Firefox.
- κόμβος ρόλου Η σημαία χρησιμοποιείται για να ορίσει το συγκεκριμένο μηχάνημα κεντρικού υπολογιστή ως τον Κόμβο.
-hub http://192.168.0.11:4444/grid/register ενημερώνει τον κόμβο για σύνδεση στο Hub χρησιμοποιώντας τη διεύθυνση IP του Hub. Ένα σημαντικό σημείο που πρέπει να σημειωθεί είναι ότι εάν ξεκινάτε οποιονδήποτε κόμβο στον ίδιο υπολογιστή με το Hub σας, τότε μπορείτε να καθορίσετε ' -hub http: // localhost: 4444 / πλέγμα / μητρώο «Στην εντολή αντί της διεύθυνσης IP του Hub.

Όταν πατήσετε enter, θα λάβετε την παρακάτω έξοδο στη γραμμή εντολών.

τι σημαίνει το namespace στο c ++

Μέχρι τώρα, ο κόμβος θα είχε συνδεθεί στο Hub. Μπορείτε να το επιβεβαιώσετε επιστρέφοντας στη γραμμή εντολών που χρησιμοποιείται για την εκκίνηση του Hub και θα παρατηρήσετε το ακόλουθο μήνυμα: Καταχώρησε έναν κόμβο http://192.168.0.11:5555 «.

Η διεύθυνση IP και ο αριθμός θύρας είναι αυτός του κόμβου σας. Εφόσον έχω τον κόμβο μου στον ίδιο υπολογιστή με τον κόμβο μου, η θύρα που χρησιμοποιείται για τον κόμβο είναι 5555. Όταν το εκκινείτε σε κάποιο άλλο μηχάνημα, θα χρησιμοποιηθεί η προεπιλεγμένη θύρα.

Όταν ξεκινάτε την ακόλουθη διεύθυνση URL στο μηχάνημα του Hub σας, θα λάβετε την κατάσταση των κόμβων που είναι συνδεδεμένοι στο Hub σας. Δείτε το επισημασμένο τμήμα στο παρακάτω στιγμιότυπο οθόνης.

Τώρα που έχει ρυθμιστεί το πλέγμα Selenium, μπορείτε να προχωρήσετε στην εκτέλεση δοκιμαστικών σεναρίων στους κόμβους. Επιτρέψτε μου να τονίσω ξανά ότι πρέπει να εκτελέσουμε σενάρια στο Hub μας και θα εκτελεστούν στους κόμβους μας. Το σενάριο που χρησιμοποιείται για την εκτέλεση των δοκιμών είναι παρόμοιο με το WebDriverδοκιμές.

Δημιουργία πλέγματος σεληνίου

Έχω εκτελέσει το σενάριό μου στο Eclipse IDE. Η εκτέλεση αυτού του σεναρίου βασίζεται σε δύο σημαντικά πακέτα βιβλιοθηκών. Αυτοί είναι Επιθυμητές δυνατότητες αντικείμενο και RemoteWebDriver αντικείμενο.

Το DesiredCapabilities χρησιμοποιείται για τον καθορισμό του τύπου του προγράμματος περιήγησης και του λειτουργικού συστήματος του κόμβου μας. Για να εισαγάγετε το αντικείμενο DesiredCapabilities, χρησιμοποιήστε τον παρακάτω κώδικα.

εισαγωγή org.openqa.selenium.remote.DesiredCapabilities

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

εισαγωγή java.net.MalformedURLException εισαγωγή java.net.URL εισαγωγή org.openqa.selenium.remote.RemoteWebDriver

Έχω εισαγάγει αυτά τα δύο πακέτα μαζί με το πακέτο σχολιασμών TestNG για το σενάριό μου, όπως φαίνεται στο παρακάτω απόσπασμα κώδικα. Έχω εισαγάγει σχολιασμούς TestNG επειδή το έχω εκτελέσει ως δοκιμή TestNG για το οποίο θα δημιουργηθεί μια λεπτομερής αναφορά. Θα σας συνιστούσα να εισαγάγετε το ίδιο σύνολο πακέτων για τον κωδικό σας.

Όταν κάνετε ελιγμούς πάνω από τα λογότυπα οποιουδήποτε προγράμματος περιήγησης υπάρχει στην Selenium Hub κονσόλα, θα λάβετε τις λεπτομέρειες όπως Όνομα προγράμματος περιήγησης και το πλατφόρμα του κόμβου που θέλετε να αυτοματοποιήσετε. Η εικόνα δείχνει επίσης πόσες εμφανίσεις των προγραμμάτων περιήγησης μπορώ να ανοίξω στον κόμβο μου. Μπορώ να διαμορφώσω έως 5 chrome, 5 Firefox και 1 παρουσίες του Internet Explorer. Αυτές οι λεπτομέρειες υπάρχουν στο παρακάτω στιγμιότυπο οθόνης.

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

πακέτο GridTest import org.testng.annotations.AfterTest import org.testng.annotations.BeforeTest import org.testng.annotations.Test import java.net.MalformedURLException import java.net.URL import org.junit.Assert import org.openqa.selenium .Platform import org.openqa.selenium.WebDriver import org.openqa.selenium.remote.DesiredCapabilities import org.openqa.selenium.remote.RemoteWebDriver δημόσια τάξη TestGrid {στατικό πρόγραμμα οδήγησης WebDriver στατικό String nodeUrl @BeforeTest δημόσια άκυρη ρύθμιση () nodeUrl = 'http://192.168.0.11:5555/wd/hub' ικανότητα DesiredCapabilities = δυνατότητα DesiredCapabilities.chrome () .setBrowserName ('chrome'). setPlatform (Platform.WINDOWS) driver = νέο RemoteWebDriver (νέο URL (nodeUrl) ), δυνατότητες)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest public void afterTest () {driver.quit ()}}

Έχω χωρίσει ολόκληρο το σενάριο δοκιμής σε τρεις δοκιμαστικούς σχολιασμούς. @BeforeTest, @Test και @AfterTest. Στο @BeforeTest, έχω χρησιμοποιήσει τα αντικείμενα DesiredCapablities και RemoteWebDriver για να διαμορφώσω τον κόμβο μου. Στο @Test, ζήτησα από τον κόμβο να μεταβεί στην αρχική σελίδα του Edureka και να επιβεβαιώσει τον τίτλο της σελίδας. Στο @AfterTest, ζήτησα από τον κόμβο να τερματίσει την παρουσία του προγράμματος περιήγησης.

Όταν η δοκιμή σας περάσει την εκτέλεση, θα λάβετε την παρακάτω έξοδο.

18 Μαΐου 2017 3:09:07 μμ ========================== Προεπιλεγμένη δοκιμή Οι δοκιμές εκτελούνται: 1, Αποτυχίες: 0, Παράλειψη: 0 ========== ===================================== ============= ================================== Προεπιλεγμένη σουίτα Συνολικές δοκιμές εκτελέστηκαν: 1, Αποτυχίες: 0, Παράλειψη: 0 = ==============================================

Δεδομένου ότι αυτό εκτελείται ως δοκιμή TestNG, θα λάβετε μια λεπτομερή αναφορά δοκιμής παρόμοια με την παρακάτω οθόνη.

Αν δεν γνωρίζετε τι είναι το TestNG και πώς να χρησιμοποιήσετε τους δοκιμαστικούς σχολιασμούς, διαβάστε το ιστολόγιό μου σχετικά με τον τρόπο χρήσης Selenium WebDriver με TestNG από αυτήν τη σειρά εκμάθησης Selenium.

Μπορείτε να δείτε το παρακάτω βίντεο για να δείτε μια επίδειξη για το πώς να δημιουργήσετε ένα πλέγμα Selenium. Ο εκπαιδευτής που παραδίδει το βίντεο εξηγεί τις ίδιες έννοιες που εξηγούνται σε αυτό το ιστολόγιο.

Εκμάθηση πλέγματος Selenium για αρχάριους | Σελήνιο Σεμινάριο | Έντρεκα

Έτσι, αυτό μας φέρνει στο τέλος αυτού του ιστολογίου Selenium Grid. Εάν έχετε οποιαδήποτε αμφιβολία ή πρόβλημα με οποιονδήποτε κωδικό / περιεχόμενο αυτής της σειράς ιστολογίων, αφήστε τα στην παρακάτω ενότητα σχολίων και θα λύσω το πρόβλημά σας το νωρίτερο.

Εάν θέλετε να μάθετε το Σελήνιο και να δημιουργήσετε μια καριέρα στον τομέα των δοκιμών, τότε ρίξτε μια ματιά στο διαδραστικό μας, ζωντανό διαδικτυακό εδώ, συνοδεύεται από υποστήριξη 24 * 7 για να σας καθοδηγήσει καθ 'όλη τη διάρκεια της μαθησιακής σας περιόδου.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων και θα επικοινωνήσουμε μαζί σας.