Cross Browser Test vha Selenium webdriver
Cross Browser Test vha Selenium
Test af tvรฆrbrowser er en form for funktionstest for at kontrollere, at din webapplikation fungerer som forventet i forskellige browsere.
Hvorfor har vi brug for test pรฅ tvรฆrs af browsere?
Web-baserede applikationer er helt anderledes end Windows applikationer. En webapplikation kan รฅbnes i enhver browser af slutbrugeren. For eksempel foretrรฆkker nogle at รฅbne https://twitter.com in Firefox browser, mens andre kan bruge Chrome-browser or IE.
I diagrammet nedenfor kan du observere det i IE, Twitters login-boks viser ikke kurve i alle hjรธrner, men vi er i stand til at se det i Chrome-browseren.
Sรฅ vi skal sikre, at webapplikationen fungerer som forventet i alle populรฆre browsere, sรฅ flere kan fรฅ adgang til den og bruge den.
Dette motiv kan opfyldes med Cross Browser Test af produktet.
ร rsag Cross Browser Problemer
- Skriftstรธrrelsen stemmer ikke overens i forskellige browsere.
- JavaScriptimplementering kan vรฆre anderledes.
- CSS, HTML-valideringsforskel kan vรฆre der.
- Nogle browsere understรธtter stadig ikke HTML5.
- Sidejustering og div-stรธrrelse.
- Billedorientering.
- Browserinkompatibilitet med OS. Etc.
Sรฅdan laver du test pรฅ tvรฆrs af browsere
Hvis vi bruger Selenium WebDriver, vi kan automatisere testsager ved hjรฆlp af Internet Explorer, FireFox, Chrome, Safari-browsere.
For at udfรธre testcases med forskellige browsere i samme maskine pรฅ samme tid kan vi integrere TestNG rammer med Selenium WebDriver.
Din testing.xml vil se sรฅdan ud,
Denne testing.xml vil kortlรฆgges med Test sag som vil se sรฅdan ud
Her fordi testing.xml har to test-tags ('ChromeTest','FirefoxTest'), vil denne testcase udfรธres to gange for 2 forskellige browsere.
Fรธrste test 'ChromeTest' vil videregive vรฆrdien af โโparameteren 'browser' som 'chrome', sรฅ ChromeDriver vil blive udfรธrt. Denne testcase kรธrer i Chrome-browseren.
Anden prรธve 'FirefoxTest' vil videregive vรฆrdien af โโparameteren 'browser' som 'Firefox'sรฅ FirefoxDriver vil blive udfรธrt. Denne testcase vil kรธre on FireFox browser.
Guru99CrossBrowserScript.java
Komplet 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>
BEMรRK VENLIGST: For at kรธre testen skal du hรธjreklikke pรฅ testing.xml, Vรฆlg Kรธr som, og klik TestNG
Resumรฉ
- Test pรฅ tvรฆrs af browsere er en teknik til at teste webapplikationer med forskellige webbrowsere.
- Selenium kan understรธtte forskellige typer testvรฆrktรธj pรฅ tvรฆrs af browseren til automatisering.
- Selenium kan integreres med TestNG at udfรธre Multi Browser Test.
- Fra parametre i testing.xml kan vi videregive browsernavn, og i et testtilfรฆlde kan vi oprette WebDriver-reference i overensstemmelse hermed.
Bemรฆrk: Det givne program blev bygget og testet pรฅ selen 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 & Microsoft Edge 14.14393. Hvis programmerne giver en fejl, skal du opdatere driveren
Download Selenium Projektfiler til demoen i denne vejledning





