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.

Test på tværs af browsere ved hjælp af Selenium

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.

Test af tværbrowser

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

  1. Skriftstørrelsen stemmer ikke overens i forskellige browsere.
  2. JavaScriptimplementering kan være anderledes.
  3. CSS, HTML-valideringsforskel kan være der.
  4. Nogle browsere understøtter stadig ikke HTML5.
  5. Sidejustering og div-størrelse.
  6. Billedorientering.
  7. 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,

Test af tværbrowser

Denne testing.xml vil kortlægges med Test sag som vil se sådan ud

Test af tværbrowser

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

Test af tværbrowser

Resumé

  1. Test på tværs af browsere er en teknik til at teste webapplikationer med forskellige webbrowsere.
  2. Selenium kan understøtte forskellige typer testværktøj på tværs af browseren til automatisering.
  3. Selenium kan integreres med TestNG at udføre Multi Browser Test.
  4. 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