selenium grid tutorial
Εισαγωγή στο πλέγμα Selenium και πώς να εκτελέσετε δοκιμές Cross Browser χρησιμοποιώντας το πλέγμα Selenium:
Τώρα πλησιάζουμε στο τέλος αυτού ολοκληρωμένη σειρά μαθημάτων σεληνίου . Την επόμενη εβδομάδα, θα ολοκληρώσουμε αυτήν τη διαδικτυακή σειρά Selenium Training με εκμάθηση «προσπάθειας εκτίμησης των έργων Selenium» και «ερωτήσεις και απαντήσεις σε συνέντευξη Selenium».
Σήμερα, σε αυτό το σεμινάριο θα σας παρουσιάσουμε Πλέγμα σεληνίου - α κατανεμημένη εκτέλεση δοκιμής περιβάλλον για να επιταχύνει την εκτέλεση μιας δοκιμαστικής κάρτας. Μάθετε πώς να εκτελείτε δοκιμές Cross browser χρησιμοποιώντας το Selenium Grid.
Τι θα μάθετε:
- Ποια είναι η ανάγκη του πλέγματος σεληνίου;
- Οφέλη του πλέγματος σεληνίου
- Εγκαταστήστε το Selenium GRID
- Πρόγραμμα περιήγησης και κόμβοι
- maxInstances
- maxSession
- Δείγμα κώδικα πλέγματος
- Διαμόρφωση με χρήση του αρχείου JSON
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Ποια είναι η ανάγκη του πλέγματος σεληνίου;
Καθώς περνάτε ολόκληρα Σεμινάρια WebDriver Tutorials θα ανακαλύψετε ότι το WebDriver θα εκτελέσει τις δοκιμαστικές σας περιπτώσεις σε ένα μόνο μηχάνημα.
Ακολουθούν μερικά προβλήματα με μια τέτοια ρύθμιση:
- Τι γίνεται αν θέλετε να εκτελέσετε τις δοκιμαστικές σας περιπτώσεις για διαφορετικά λειτουργικά συστήματα;
- Πώς να εκτελέσετε τις δοκιμαστικές σας περιπτώσεις στη διαφορετική έκδοση του ίδιου προγράμματος περιήγησης;
- Πώς να εκτελέσετε τις δοκιμαστικές σας περιπτώσεις σε πολλά προγράμματα περιήγησης;
- Γιατί πρέπει ένα σενάριο να περιμένει την εκτέλεση άλλων δοκιμαστικών περιπτώσεων, ακόμη και αν δεν εξαρτάται από καμία δοκιμαστική περίπτωση;
Όλα αυτά τα προβλήματα αντιμετωπίζονται στο Selenium GRID.
Καθώς προχωράμε στο μάθημα Selenium, θα πάρουμε την ιδέα για το πώς μπορούμε να ξεπεράσουμε αυτά τα προβλήματα. Βασικά, η αρχιτεκτονική πλέγματος βασίζεται στην αρχιτεκτονική master-slave. Η κύρια μηχανή διανέμει τις δοκιμαστικές θήκες σε διαφορετικά εξαρτήματα.
Υπάρχουν 2 εκδόσεις του Grid διαθέσιμες. Το Selenium Grid 2.0 είναι το τελευταίο από το Selenium. Το Selenium 1.0 ήταν η προηγούμενη έκδοση. Οι περισσότεροι από τους ειδικούς του Selenium προτιμούν τη χρήση του Selenium Grid 2.0 καθώς είναι γεμάτο με νέες δυνατότητες. Το Selenium Grid 2.0 υποστηρίζει σενάρια Selenium RC και Selenium WebDriver.
Προτεινόμενο εργαλείο:
# 1) Δοκιμή Lambda
Εκτελέστε δοκιμές αυτοματοποίησης Selenium σε ένα κλιμακούμενο, ασφαλές και αξιόπιστο διαδικτυακό Selenium Grid που βασίζεται σε σύννεφο. Επιταχύνετε τον αυτοματισμό δοκιμής Selenium ταυτόχρονα, αυξήστε την κάλυψη των δοκιμών δοκιμών σε μια διαδικτυακή υποδομή 2000+ περιβάλλοντων επιτραπέζιου και κινητού προγράμματος περιήγησης.
Προτεινόμενη ανάγνωση = >> Αυτοματοποιήστε τη δοκιμή προγράμματος περιήγησης με το LambdaTest
Οφέλη του πλέγματος σεληνίου
- Το Selenium Grid παρέχει την ευελιξία να διανέμει τις δοκιμαστικές σας θήκες για εκτέλεση.
- Μειώνει το χρόνο επεξεργασίας παρτίδας.
- Μπορεί να εκτελέσει δοκιμές πολλαπλών προγραμμάτων περιήγησης.
- Μπορεί να εκτελέσει δοκιμές πολλαπλών λειτουργιών.
Βασική ορολογία του πλέγματος σεληνίου:
Κεντρικό σημείο : Το Hub είναι το κεντρικό σημείο ολόκληρης της αρχιτεκτονικής GRID που λαμβάνει όλα τα αιτήματα. Υπάρχει μόνο ένας κόμβος στο πλέγμα σεληνίου. Το Hub διανέμει τις δοκιμαστικές περιπτώσεις σε κάθε κόμβο.
Κόμβος : Μπορεί να υπάρχουν πολλαπλοί κόμβοι στο Grid. Οι δοκιμές θα εκτελεστούν σε κόμβους. Κάθε κόμβος επικοινωνεί με το Hub και εκτελεί δοκιμή που του έχει ανατεθεί.
Εγκαταστήστε το Selenium GRID
Βήμα 1 : Πραγματοποιήστε λήψη του αρχείου βάζου του Selenium Server από τον επίσημο ιστότοπο του Selenium που ήταν παλαιότερα γνωστό ως Selenium RC Server και αποθηκεύστε το σε οποιαδήποτε τοποθεσία στον τοπικό δίσκο.
Διεύθυνση URL του σεληνίου HQ: http://www.seleniumhq.org/download/
Βήμα 2 : Ανοίξτε τη γραμμή εντολών και μεταβείτε σε ένα φάκελο στον οποίο βρίσκεται ο διακομιστής. Εκτελέστε τον διακομιστή χρησιμοποιώντας την παρακάτω εντολή
java -jar selenium-server-standalone-2.41.0.jar -role hub
Ο διανομέας θα χρησιμοποιεί τη θύρα 4444 από προεπιλογή. Αυτή η θύρα μπορεί να αλλάξει μεταβιβάζοντας τον διαφορετικό αριθμό θύρας στη γραμμή εντολών με την προϋπόθεση ότι η θύρα είναι ανοιχτή και δεν έχει εκχωρηθεί εργασία.
Η κατάσταση μπορεί να ελεγχθεί χρησιμοποιώντας τη διεπαφή ιστού: http: // localhost: 4444 / πλέγμα / κονσόλα
Βήμα 3 : Μεταβείτε στο άλλο μηχάνημα όπου σκοπεύετε να ρυθμίσετε τους κόμβους. Ανοίξτε τη γραμμή εντολών και εκτελέστε την παρακάτω γραμμή.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Εκτελέστε το διακομιστή σεληνίου σε άλλα μηχανήματα για να ξεκινήσετε κόμβους.
Πρόγραμμα περιήγησης και κόμβοι
Μετά την εκκίνηση του κόμβου και των κόμβων σε κάθε μηχάνημα, όταν θα μεταβείτε στην κονσόλα GRID
Θα βρείτε 5 Chrome, 5 Firefox και 1 IE browser στην ενότητα Browser όπως παρακάτω.
Αυτό δείχνει ότι από προεπιλογή μπορείτε να χρησιμοποιήσετε 5 Chrome, 5 Firefox και 1 IE browser.
Για παράδειγμα, εάν θέλετε να χρησιμοποιήσετε μόνο IE, μπορείτε να ξεκινήσετε τον κόμβο χρησιμοποιώντας την παρακάτω εντολή:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
Επαληθεύστε τον τύπο του προγράμματος περιήγησης μαζί με άλλες λεπτομέρειες στην κονσόλα GRID κάνοντας κλικ στο προβολή διαμόρφωσης .
Ομοίως για τον Firefox:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
Για Chrome:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Υπάρχουν λίγα σενάρια όπου μπορεί να χρειαστείτε το πρόγραμμα περιήγησης από κάθε τύπο, δηλαδή: IE, Chrome και Firefox.
Για παράδειγμα, ίσως χρειαστεί να χρησιμοποιήσετε 1 πρόγραμμα περιήγησης IE και 1 Firefox και 1 Chrome
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore -browser browserName=firefox -browser browserName=chrome
maxInstances
Το maxInstance χρησιμοποιείται για τον περιορισμό του αριθμού της αρχικοποίησης του προγράμματος περιήγησης σε έναν κόμβο.
Για παράδειγμα, εάν θέλετε να εργαστείτε με 2 Firefox και 2 IE τότε μπορείτε να ξεκινήσετε τον κόμβο χρησιμοποιώντας maxInstance.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox,maxInstance=3
Η μέγιστη εμφάνιση μπορεί να επαληθευτεί στην καρτέλα διαμόρφωσης.
Ομοίως, άλλες παρουσίες προγράμματος περιήγησης μπορούν να ρυθμιστούν χρησιμοποιώντας maxInstances.
maxSession
Το maxSession χρησιμοποιείται για τη διαμόρφωση του αριθμού των προγραμμάτων περιήγησης που μπορούν να χρησιμοποιηθούν παράλληλα στο απομακρυσμένο σύστημα.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome,maxInstance=3 -browser browserName=firefox,maxInstance=3 –maxSession 3
Ομοίως, μπορείτε να ξεκινήσετε πολλούς κόμβους και η διαμόρφωση μπορεί να επαληθευτεί στην κονσόλα.
NODE1:
NODE2:
Δείγμα κώδικα πλέγματος
Εδώ έχω χρησιμοποιήσει το TestNG για να εκτελέσω ένα δείγμα GRID test case.
Προαπαιτούμενο : Δημιουργήστε Hub και κόμβους όπως εξηγήθηκε νωρίτερα και το TestNG θα πρέπει να διαμορφωθεί σε έκλειψη.
Εδώ έχω κάνει ένα δείγμα δοκιμής για να συνδεθώ στο Gmail και να εισαγάγω το όνομα χρήστη και τον κωδικό πρόσβασης
public class GridExample { @Test public void mailTest() throws MalformedURLException{ DesiredCapabilities dr=null; if(browserType.equals('firefox')){ dr=DesiredCapabilities.firefox(); dr.setBrowserName('firefox'); dr.setPlatform(Platform.WINDOWS); }else{ dr=DesiredCapabilities.internetExplorer(); dr.setBrowserName('iexplore'); dr.setPlatform(Platform.WINDOWS); } RemoteWebDriver driver=new RemoteWebDriver(new URL('http://localhost:4444/wd/hub'), dr); driver.navigate().to('http://gmail.com'); driver.findElement(By.xpath('//input(@id='Email')')) .sendKeys('username'); driver.findElement(By.xpath('//input(@id='Passwd')')) .sendKeys('password'); driver.close(); }
Όπως στο παράδειγμα, πρέπει να χρησιμοποιήσετε το RemoteWebDriver εάν χρησιμοποιείτε το GRID και πρέπει να παρέχετε δυνατότητες στο πρόγραμμα περιήγησης. Πρέπει να ορίσετε το πρόγραμμα περιήγησης και την πλατφόρμα όπως παραπάνω.
καλύτερο σύστημα καθαρισμού για τα παράθυρα 10
Σε αυτό το παράδειγμα, έχω χρησιμοποιήσει την πλατφόρμα ως WINDOWS. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε πλατφόρμα σύμφωνα με τις απαιτήσεις σας.
Μπορείτε επίσης να ορίσετε μια έκδοση του προγράμματος περιήγησης χρησιμοποιώντας το dr.setVersion ('έκδοση')
Για το Instance, πρέπει να εκτελέσετε αυτήν τη δοκιμή σειριακά σε πολλά προγράμματα περιήγησης, πρέπει να διαμορφώσετε το testng.xml. Παρακάτω είναι η σουίτα testng.XML για την παραπάνω δοκιμή για να εκτελέσετε τη δοκιμή σας σειριακά.
Για να εκτελέσετε την παράλληλη δοκιμή, πρέπει να αλλάξετε το testng.xml όπως παρακάτω.
Εδώ στο testng.XML πρέπει να καθορίσετε την παράμετρο ως παράλληλο = «Δοκιμές» και νήμα = '3' περιγράφει τον μέγιστο αριθμό νημάτων που θα εκτελεστούν παράλληλα.
Διαμόρφωση με χρήση του αρχείου JSON
Το πλέγμα μπορεί επίσης να ξεκινήσει μαζί με τη διαμόρφωσή του χρησιμοποιώντας ένα αρχείο διαμόρφωσης JSON.
Δημιουργήστε ένα αρχείο JSON για να έχετε παρακάτω διαμόρφωση. Εδώ έχω δημιουργήσει ένα αρχείο JSON που ονομάζεται grid_hub.json
{ 'host': null, 'port': 4444, 'newSessionWaitTimeout': -1, 'servlets' : (), 'prioritizer': null, 'capabilityMatcher': 'org.openqa.grid.internal.utils.DefaultCapabilityMatcher', 'throwOnCapabilityNotPresent': true, 'nodePolling': 5000, 'cleanUpCycle': 5000, 'timeout': 300000, 'maxSession': 5 }
Ξεκινήστε τον κόμβο χρησιμοποιώντας την παρακάτω εντολή
java -jar selenium-server-standalone-2.41.0.jar -role hub –hubConfig grid_hub.json
Ομοίως, δημιουργήστε διαφορετικό αρχείο json για διαφορετικούς κόμβους σύμφωνα με την απαιτούμενη διαμόρφωση.
Ακολουθεί ένα παράδειγμα αρχείου διαμόρφωσης JSON για τον κόμβο που ονομάζεται grid_node.json
{ 'capabilities': ( { 'browserName': 'chrome', 'maxInstances': 2 }, { 'browserName': 'firefox', 'maxInstances': 2 }, { 'browserName': 'internet explorer', 'maxInstances': 1 } ), 'configuration': { 'nodeTimeout':120, 'port':5555, 'hubPort':4444, 'hubHost':'localhost', 'nodePolling':2000, 'registerCycle':10000, 'register':true, 'cleanUpCycle':2000, 'timeout':30000, 'maxSession':5, } }
Για να ξεκινήσετε τον κόμβο
java -jar selenium-server-standalone-2.41.0.jar -role rc –nodeConfig grid_node.json
Μπορείτε να αλλάξετε όλες τις ρυθμίσεις ενός προγράμματος περιήγησης, maxInstances, port, maxSession κλπ στο αρχείο JSON.
Μπορείτε να παρέχετε την έκδοση προγράμματος περιήγησης, την πλατφόρμα στο αρχείο διαμόρφωσης JSON όπως παρακάτω:
{
'BrowserName': 'chrome', 'version': '8', 'platform': 'Windows'
}
συμπέρασμα
Συνιστάται να Χρησιμοποιήστε το Selenium Grid όταν πρέπει να εκτελέσετε δοκιμές πολλαπλών προγραμμάτων περιήγησης και έχετε μεγάλο αριθμό δοκιμαστικών περιπτώσεων.
Σε αυτήν την ενότητα, καλύψαμε τον τρόπο ρύθμισης του κόμβου πλέγματος και των κόμβων μαζί με τον τρόπο εκτέλεσης δοκιμαστικών περιπτώσεων πλέγματος χρησιμοποιώντας το αρχείο testng.XML και JSON.
Επόμενο σεμινάριο # 30 : Δοκιμές αυτοματισμού με εργαλείο σεληνίου και αγγουριού . Αγγούρι είναι μια δοκιμή BDD εργαλείο και Πλαίσιο. Θα μάθουμε χαρακτηριστικά του εργαλείου Αγγούρι και τη χρήση του σε σενάρια σε πραγματικό χρόνο, όπως πώς να ενσωματώσετε το Selenium WebDriver στο Αγγούρι .
Παρακαλώ δημοσιεύστε τα ερωτήματά σας που σχετίζονται με το Selenium Grid στα παρακάτω σχόλια.
Συνιστώμενη ανάγνωση
- Docker Selenium Tutorial: Πώς να ενσωματώσετε το Selenium Grid με το Docker
- Έλεγχος αυτοματισμού με χρήση εργαλείου αγγουριού και σεληνίου - Σελήνιο σεμινάριο # 30
- Cucumber Selenium Tutorial: Αγγούρι Java Selenium WebDriver Integration
- Spock για ενσωμάτωση και λειτουργική δοκιμή με σελήνιο
- Εκμάθηση έκλειψης σε βάθος για αρχάριους
- Εισαγωγή στο Selenium WebDriver - Selenium Tutorial # 8
- Tutorial Geb - Δοκιμή αυτοματισμού προγράμματος περιήγησης με χρήση του εργαλείου Geb
- Tutorial Parrot QA: Ανασκόπηση λειτουργικών δοκιμών Cross Browser