Cross Browser Testing ved hjelp av Selenium webdriver
Cross Browser Testing ved hjelp av Selenium
Test på tvers av nettlesere er en type funksjonstest for å sjekke at nettapplikasjonen din fungerer som forventet i forskjellige nettlesere.
Hvorfor trenger vi testing på tvers av nettlesere?
Nettbaserte applikasjoner er helt forskjellige fra Windows applikasjoner. En nettapplikasjon kan åpnes i hvilken som helst nettleser av sluttbrukeren. Noen foretrekker for eksempel å åpne https://twitter.com in Firefox nettleser, mens andre kan bruke Chrome-nettleser or IE.
I diagrammet nedenfor kan du observere det i IE, påloggingsboksen til Twitter viser ikke kurve i alle hjørner, men vi kan se den i Chrome-nettleseren.
Så vi må sørge for at nettapplikasjonen vil fungere som forventet i alle populære nettlesere, slik at flere kan få tilgang til den og bruke den.
Dette motivet kan oppfylles med Cross Browser Testing Av produktet.
Årsak Cross Browser Problemer
- Skriftstørrelsen samsvarer ikke i forskjellige nettlesere.
- JavaSkriptimplementering kan være annerledes.
- CSS, HTML-valideringsforskjell kan være der.
- Noen nettlesere støtter fortsatt ikke HTML5.
- Sidejustering og div-størrelse.
- Bildeorientering.
- Nettleserinkompatibilitet med OS. Osv.
Slik gjør du testing på tvers av nettlesere
Hvis vi bruker Selenium WebDriver, vi kan automatisere testtilfeller ved å bruke Internet Explorer, FireFox, Chrome, Safari-nettlesere.
For å utføre testcases med forskjellige nettlesere i samme maskin samtidig kan vi integrere TestNG rammeverk med Selenium WebDriver.
Din testing.xml vil se slik ut,
Denne testing.xml vil kartlegge med Testsak som vil se slik ut
Her fordi testing.xml har to testkoder ('ChromeTest','FirefoxTest'), vil denne testsaken utføres to ganger for 2 forskjellige nettlesere.
Første test 'ChromeTest' vil sende verdien av parameteren 'nettleser' som 'chrome' slik at ChromeDriver kjøres. Denne testsaken vil kjøre på Chrome-nettleseren.
Andre test 'FirefoxTest' vil sende verdien av parameteren 'nettleser' som 'Firefox'så FirefoxDriveren vil bli kjørt. Denne testsaken vil kjøre på brannFox browser.
Guru99CrossBrowserScript.java
Komplett kode:
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; 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 Edge.exe System.setProperty("webdriver.edge.driver",".\\MicrosoftWebDriver.exe"); //create Edge instance driver = new EdgeDriver(); } 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"); } }
testing.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="TestSuite" thread-count="2" 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>
NOTAT: For å kjøre testen, høyreklikk på testing.xml, Velg Kjør som, og klikk TestNG
Sammendrag
- Testing på tvers av nettlesere er en teknikk for å teste nettapplikasjoner med forskjellige nettlesere.
- Selenium kan støtte forskjellige typer testverktøy på tvers av nettlesere for automatisering.
- Selenium kan integreres med TestNG for å utføre multinettlesertesting.
- Fra parametere i testing.xml kan vi sende nettlesernavn, og i et testtilfelle kan vi opprette WebDriver-referanse deretter.
OBS: Det gitte programmet ble bygget og testet på selenium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 & Microsoft Edge 14.14393. Hvis programmene gir en feil, vennligst oppdater driveren
Last ned Selenium Prosjektfiler for demoen i denne opplæringen