Was ist Cross-Browser-Test?
Cross Browser Testing ist eine Art Funktionstest, mit dem überprüft wird, ob Ihre Webanwendung in verschiedenen Browsern wie erwartet funktioniert.
Warum brauchen wir Cross-Browser-Tests?
Webbasierte Anwendungen unterscheiden sich grundlegend von Windows-Anwendungen. Eine Webanwendung kann vom Endbenutzer in jedem Browser geöffnet werden. Einige Benutzer bevorzugen beispielsweise das Öffnen von https://twitter.com im Firefox-Browser, während andere den Chrome-Browser oder den IE verwenden können .
In der folgenden Abbildung können Sie sehen, dass im IE- Anmeldefeld von Twitter nicht an allen Ecken eine Kurve angezeigt wird, diese jedoch im Chrome-Browser angezeigt wird.
Daher müssen wir sicherstellen, dass die Webanwendung in allen gängigen Browsern wie erwartet funktioniert, damit mehr Benutzer darauf zugreifen und sie verwenden können.
Dieses Motiv kann mit Cross Browser Testing des Produkts erfüllt werden.
Grund Browserübergreifende Probleme
- Nicht übereinstimmende Schriftgröße in verschiedenen Browsern.
- Die JavaScript-Implementierung kann unterschiedlich sein.
- CSS, HTML-Validierungsunterschied kann da sein.
- Einige Browser unterstützen HTML5 immer noch nicht.
- Seitenausrichtung und Div-Größe.
- Bildorientierung.
- Browser-Inkompatibilität mit dem Betriebssystem. Usw.
So führen Sie Cross-Browser-Tests durch
Wenn wir Selenium WebDriver verwenden, können wir Testfälle mit Internet Explorer-, FireFox-, Chrome- und Safari-Browsern automatisieren.
Um Testfälle mit verschiedenen Browsern gleichzeitig auf demselben Computer auszuführen, können wir das Testng-Framework in Selenium WebDriver integrieren.
Ihre testing.xml wird so aussehen,
Diese testing.xml wird dem Testfall zugeordnet, der so aussieht
Da die Datei "testing.xml" zwei Test-Tags ("ChromeTest", "FirefoxTest") enthält, wird dieser Testfall für zwei verschiedene Browser zweimal ausgeführt.
Der erste Test 'ChromeTest' übergibt den Wert des Parameters 'browser' als 'chrome', sodass ChromeDriver ausgeführt wird. Dieser Testfall wird im Chrome-Browser ausgeführt.
Der zweite Test 'FirefoxTest' übergibt den Wert des Parameters 'browser' als 'Firefox', sodass FirefoxDriver ausgeführt wird. Dieser Testfall wird im FireFox-Browser ausgeführt.
Vollständiger Code:
Guru99CrossBrowserScript.java
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.testng.annotations.BeforeTest;import org.testng.annotations.Parameters;import org.testng.annotations.Test;öffentliche Klasse CrossBrowserScript {WebDriver-Treiber;/ *** Diese Funktion wird vor jedem Test-Tag in testng.xml ausgeführt* @param Browser* @throws Ausnahme* /@BeforeTest@Parameters ("Browser")public void setup (String browser) löst eine Ausnahme aus {// Überprüfen Sie, ob der von TestNG übergebene Parameter 'Firefox' ist.if (browser.equalsIgnoreCase ("Firefox")) {// Firefox-Instanz erstellenSystem.setProperty ("webdriver.gecko.driver", ". \\ geckodriver.exe");Treiber = neuer FirefoxDriver ();}}// Überprüfen Sie, ob der Parameter als 'chrome' übergeben wurde.sonst wenn (browser.equalsIgnoreCase ("chrome")) {// setze den Pfad zu chromedriver.exeSystem.setProperty ("webdriver.chrome.driver", ". \\ chromedriver.exe");// Chrome-Instanz erstellenTreiber = neuer ChromeDriver ();}}// Überprüfen Sie, ob der Parameter als 'Edge' übergeben wurde.sonst wenn (browser.equalsIgnoreCase ("Edge")) {// setze den Pfad zu Edge.exeSystem.setProperty ("webdriver.edge.driver", ". \\ MicrosoftWebDriver.exe");// Edge-Instanz erstellenTreiber = neuer EdgeDriver ();}}sonst{// Wenn kein Browser die Ausnahmebedingung übergeben hatneue Ausnahme auslösen ("Browser ist nicht korrekt");}}driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);}}@Prüfungpublic void testParameterWithXML () löst InterruptedException aus {driver.get ("http://demo.guru99.com/V4/");// Benutzername suchenWebElement userName = driver.findElement (By.name ("uid"));// Benutzername eintragenuserName.sendKeys ("guru99");//Finde PasswortWebElement password = driver.findElement (By.name ("Passwort"));// Passwort eingebenpassword.sendKeys ("guru99");}}}}
testing.xml
xml version = "1.0" encoding = "UTF-8"?>class> class> test> class> class> test> class> class> test> suite>
HINWEIS: Um den Test auszuführen, klicken Sie mit der rechten Maustaste auf die Datei testing.xml, wählen Sie Ausführen als und klicken Sie auf TestNG
Zusammenfassung
- Cross-Browser-Test ist eine Technik zum Testen von Webanwendungen mit verschiedenen Webbrowsern.
- Selenium kann verschiedene Arten von Browsern für die Automatisierung unterstützen.
- Selen kann in TestNG integriert werden, um Multi-Browser-Tests durchzuführen.
- Aus den Parametern in testing.xml können wir den Browsernamen übergeben und in einem Testfall eine entsprechende WebDriver-Referenz erstellen.
Hinweis: Das angegebene Programm wurde auf Selen 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 und Microsoft Edge 14.14393 erstellt und getestet. Wenn die Programme einen Fehler anzeigen, aktualisieren Sie bitte den Treiber
Laden Sie die Selenium-Projektdateien für die Demo in diesem Tutorial herunter