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





