Δοκιμή πολλαπλών προγραμμάτων περιήγησης χρησιμοποιώντας Selenium Πρόγραμμα οδήγησης Web
⚡ Έξυπνη Σύνοψη
Δοκιμή πολλαπλών προγραμμάτων περιήγησης χρησιμοποιώντας Selenium Το WebDriver επαληθεύει ότι μια εφαρμογή ιστού συμπεριφέρεται με συνέπεια στο Chrome, Firefox, Safari και Edge. Αυτό το σεμινάριο δείχνει πώς να συνδυάσετε Selenium WebDriver με TestNG για την εκκίνηση παράλληλων συνεδριών, την επικύρωση της απόδοσης και την κλιμάκωση της κάλυψης σε σύγχρονα προγράμματα περιήγησης για υπολογιστές και κινητά.

Γιατί χρειαζόμαστε Cross Browser Testing;
Οι εφαρμογές που βασίζονται στο web διαφέρουν πολύ από τις εγγενείς εφαρμογές για υπολογιστές. Μια εφαρμογή web μπορεί να ανοιχτεί σε οποιοδήποτε πρόγραμμα περιήγησης από τον τελικό χρήστη. Για παράδειγμα, ορισμένοι προτιμούν να ανοίγουν https://twitter.com in Firefox, ενώ άλλοι χρησιμοποιούν Chrome, SafariΤο HIFU, ή Υψηλής Έντασης Εστιασμένος Υπέρηχος, στοχεύει επίσης στο πρόσωπο και τον λαιμό. Προσφέρει θεραπεία σε γρήγορες εκπομπές, γεγονός που κάνει τις συνεδρίες θεραπείας συντομότερες. Microsoft Edge.
Στο παρακάτω διάγραμμα μπορείτε να παρατηρήσετε ότι σε παλαιότερα προγράμματα περιήγησης, το πλαίσιο σύνδεσης του Twitter δεν αποδίδει σωστά τις στρογγυλεμένες γωνίες, ενώ το σύγχρονο Chrome αποδίδει τις γωνίες όπως έχουν σχεδιαστεί.
Επομένως, πρέπει να διασφαλίσουμε ότι η διαδικτυακή εφαρμογή θα λειτουργεί όπως αναμένεται σε όλα τα δημοφιλή προγράμματα περιήγησης, ώστε περισσότεροι άνθρωποι να μπορούν να έχουν πρόσβαση σε αυτήν και να τη χρησιμοποιούν.
Αυτός ο στόχος μπορεί να επιτευχθεί με το Cross Browser Δοκιμές του προϊόντος σε κάθε πρόγραμμα περιήγησης που εμπίπτει στο πεδίο εφαρμογής.
Λόγοι για προβλήματα μεταξύ των προγραμμάτων περιήγησης
- Αναντιστοιχία μεγέθους γραμματοσειράς σε διαφορετικά προγράμματα περιήγησης.
- JavaΟι υλοποιήσεις της μηχανής σεναρίων διαφέρουν στο Chrome (V8), Firefox (SpiderMonkey), Σαφάρι (JavaScriptCore) και Edge.
- Διαφορές επικύρωσης CSS και HTML, συμπεριλαμβανομένου του χειρισμού προθέματος προμηθευτή.
- Ασυνεπής ή μερική υποστήριξη λειτουργιών HTML5 και ECMAScript σε παλαιότερες εκδόσεις προγραμμάτων περιήγησης.
- Στοίχιση σελίδας, μέγεθος div και παραλλαγές απόδοσης flexbox ή grid.
- Προσανατολισμός εικόνας και διαφορές στο προφίλ χρωμάτων.
- Ασυμβατότητα προγράμματος περιήγησης με το υποκείμενο λειτουργικό σύστημα, συμπεριλαμβανομένων των ιδιαιτεροτήτων του WebView για κινητά Android και iOS.
Πώς να κάνετε δοκιμές μεταξύ προγραμμάτων περιήγησης
Αν χρησιμοποιούμε Selenium WebDriver, μπορούμε να αυτοματοποιήσουμε τις δοκιμαστικές περιπτώσεις σε σχέση με το Chrome, Firefox, Microsoft Edgeκαι τα προγράμματα περιήγησης Safari.
Για να εκτελέσουμε δοκιμαστικές περιπτώσεις με διαφορετικά προγράμματα περιήγησης στο ίδιο μηχάνημα ταυτόχρονα, μπορούμε να ενσωματώσουμε το TestNG πλαίσιο με Selenium WebDriver. Για ευρύτερη κάλυψη λειτουργικού συστήματος και έκδοσης, η ίδια σουίτα μπορεί να συνδεθεί σε cloud grids όπως Sauce Labs, BrowserStack ή LambdaTest μέσω ενός απομακρυσμένου τελικού σημείου WebDriver.
Το testing.xml σας θα έχει την εξής μορφή:
Αυτό το testing.xml θα αντιστοιχιστεί με το Δοκιμαστική θήκη που μοιάζει με αυτό:
Επειδή το testing.xml έχει πολλές ετικέτες Test ('ChromeTest', 'FirefoxTest', 'EdgeTest'), αυτή η δοκιμαστική περίπτωση θα εκτελεστεί μία φορά για κάθε πρόγραμμα περιήγησης.
Η πρώτη δοκιμή 'ChromeTest' θα περάσει την τιμή της παραμέτρου 'browser' ως 'chrome', επομένως θα εκτελεστεί το ChromeDriver. Αυτή η δοκιμαστική περίπτωση θα εκτελεστεί στο πρόγραμμα περιήγησης Chrome.
Η δεύτερη δοκιμήFirefoxΗ δοκιμή" θα περάσει την τιμή της παραμέτρου "πρόγραμμα περιήγησης" ως "Firefox', λοιπόν FirefoxΤο πρόγραμμα οδήγησης θα εκτελεστεί. Αυτή η δοκιμαστική περίπτωση θα εκτελεστεί στο Firefox πρόγραμμα περιήγησης. Η προσθήκη μιας δοκιμής Edge ή Safari ακολουθεί το ίδιο μοτίβο.
Guru99CrossBrowserScript.java
Πλήρης Code:
package parallelTest; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.safari.SafariDriver; import org.testng.annotations.BeforeTest; import org.testng.annotations.Parameters; import org.testng.annotations.Test; public class CrossBrowserScript { WebDriver driver; /** * This function will execute before each Test tag in testng.xml * @param browser * @throws Exception */ @BeforeTest @Parameters("browser") public void setup(String browser) throws Exception{ //Check if parameter passed from TestNG is 'firefox' if(browser.equalsIgnoreCase("firefox")){ //create firefox instance System.setProperty("webdriver.gecko.driver", ".\\geckodriver.exe"); driver = new FirefoxDriver(); } //Check if parameter passed as 'chrome' else if(browser.equalsIgnoreCase("chrome")){ //set path to chromedriver.exe System.setProperty("webdriver.chrome.driver",".\\chromedriver.exe"); //create chrome instance driver = new ChromeDriver(); } //Check if parameter passed as 'Edge' else if(browser.equalsIgnoreCase("Edge")){ //set path to msedgedriver.exe System.setProperty("webdriver.edge.driver",".\\msedgedriver.exe"); //create Edge instance driver = new EdgeDriver(); } //Check if parameter passed as 'Safari' else if(browser.equalsIgnoreCase("Safari")){ //SafariDriver ships with macOS, no driver path needed driver = new SafariDriver(); } else{ //If no browser passed throw exception throw new Exception("Browser is not correct"); } driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); } @Test public void testParameterWithXML() throws InterruptedException{ driver.get("https://demo.guru99.com/V4/"); //Find user name WebElement userName = driver.findElement(By.name("uid")); //Fill user name userName.sendKeys("guru99"); //Find password WebElement password = driver.findElement(By.name("password")); //Fill password password.sendKeys("guru99"); } }
δοκιμή.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="TestSuite" thread-count="3" parallel="tests" > <test name="ChromeTest"> <parameter name="browser" value="Chrome" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> <test name="FirefoxTest"> <parameter name="browser" value="Firefox" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> <test name="EdgeTest"> <parameter name="browser" value="Edge" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> </suite>
ΣΗΜΕΊΩΣΗ: Για να εκτελέσετε τη δοκιμή, κάντε δεξί κλικ στο δοκιμή.xml, επιλέξτε Εκτέλεση ως και κάντε κλικ στο TestNG Σουίτα.
Κλιμάκωση με πλέγματα προγράμματος περιήγησης στο cloud
Τρέξιμο Selenium Το WebDriver καλύπτει τοπικά δύο ή τρία προγράμματα περιήγησης, αλλά οι πραγματικοί χρήστες έχουν πρόσβαση σε ιστότοπους από εκατοντάδες συνδυασμούς λειτουργικών συστημάτων και προγραμμάτων περιήγησης. Εργαστήρια cloud όπως Sauce Labs, Πρόγραμμα περιήγησηςκαι Δοκιμή Lambda εκθέστε ένα απομακρυσμένο τελικό σημείο WebDriver. Σημειώστε το ίδιο Selenium δοκιμές στο πλέγμα, περνούν τις επιθυμητές δυνατότητες για το πρόγραμμα περιήγησης, την έκδοση, το λειτουργικό σύστημα και την ανάλυση και η σουίτα κλιμακώνεται οριζόντια χωρίς να διαχειρίζεται τοπικούς οδηγούς.
Τα σύγχρονα πλέγματα εμφανίζουν επίσης λειτουργίες με τη βοήθεια της τεχνητής νοημοσύνης, όπως οπτική απόκλιση παλινδρόμησης, εντοπιστές στοιχείων αυτοεπιδιόρθωσης και βαθμολόγηση ασταθειών, τα οποία μειώνουν το κόστος συντήρησης σε σουίτες δοκιμών Cross Browser μακράς διαρκείας.
Σημείωση: Το συγκεκριμένο πρόγραμμα δημιουργήθηκε και δοκιμάστηκε σε Selenium 4, Χρώμιο, Firefoxκαι Microsoft EdgeΕάν τα προγράμματα εμφανίζουν σφάλμα, ενημερώστε τα δυαδικά αρχεία του προγράμματος οδήγησης ώστε να ταιριάζουν με την έκδοση του εγκατεστημένου προγράμματος περιήγησης ή χρησιμοποιήστε το Selenium Διαχειριστής που επιλύει αυτόματα τα προγράμματα οδήγησης.
Κατεβάστε το Selenium Αρχεία έργου για την επίδειξη σε αυτό το σεμινάριο




