Cross Browser Testing med Selenium webbdrivrutin

Cross Browser Testing med Selenium

Testning mellan webbläsare är en typ av funktionstest för att kontrollera att din webbapplikation fungerar som förväntat i olika webbläsare.

Cross Browser Testing Användning Selenium

Varför behöver vi testa över webbläsare?

Webbaserade applikationer är helt annorlunda än Windows applikationer. En webbapplikation kan öppnas i vilken webbläsare som helst av slutanvändaren. Vissa föredrar till exempel att öppna https://twitter.com in Firefox webbläsare, medan andra kan använda Chrome-webbläsare or IE.

I diagrammet nedan kan du observera det i IE, Twitters inloggningsruta visar inte kurvor i alla hörn, men vi kan se det i webbläsaren Chrome.

Testning mellan webbläsare

Så vi måste se till att webbapplikationen fungerar som förväntat i alla populära webbläsare så att fler kan komma åt den och använda den.

Detta motiv kan uppfyllas med Cross Browser Testning av produkten.

Orsak Cross Browser Issues

  1. Teckenstorleken matchar inte i olika webbläsare.
  2. JavaSkriptimplementeringen kan vara annorlunda.
  3. Skillnad i CSS, HTML-validering kan finnas där.
  4. Vissa webbläsare stöder fortfarande inte HTML5.
  5. Sidjustering och div-storlek.
  6. Bildorientering.
  7. Webbläsarinkompatibilitet med OS. Etc.

Hur man gör crossbrowser-testning

Om vi ​​använder Selenium WebDriver, vi kan automatisera testfall med Internet Explorer, FireFox, Chrome, Safari webbläsare.

För att utföra testfall med olika webbläsare i samma maskin samtidigt kan vi integrera TestNG ram med Selenium WebDriver.

Din testing.xml kommer att se ut så,

Testning mellan webbläsare

Denna testing.xml kommer att mappas med Testfall som kommer att se ut så

Testning mellan webbläsare

Här eftersom testing.xml har två testtaggar ('ChromeTest','FirefoxTest'), kommer detta testfall att köras två gånger för två olika webbläsare.

Första testet 'ChromeTest' kommer att skicka värdet för parametern 'webbläsare' som 'chrome' så att ChromeDriver kommer att köras. Detta testfall kommer att köras i webbläsaren Chrome.

Andra testet 'FirefoxTest' kommer att skicka värdet för parametern 'webbläsare' som 'Firefox' så FirefoxDrivrutinen kommer att köras. Detta testfall kommer att köras on FireFox webbläsare.

Guru99CrossBrowserScript.java

Komplett kod:

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>

OBS: För att köra testet, högerklicka på testing.xml, Välj Kör som och klicka TestNG

Testning mellan webbläsare

Sammanfattning

  1. Cross browser Testing är en teknik för att testa webbapplikationer med olika webbläsare.
  2. Selenium kan stödja olika typer av testverktyg för flera webbläsare för automatisering.
  3. Selenium kan integreras med TestNG för att utföra Multi Browser Testing.
  4. Från parametrar i testing.xml kan vi skicka webbläsarnamn, och i ett testfall kan vi skapa WebDriver-referens i enlighet med detta.

Obs: Det givna programmet byggdes och testades på selenium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 & Microsoft Edge 14.14393. Om programmen ger ett fel, vänligen uppdatera drivrutinen

ladda ner Selenium Projektfiler för demon i denna handledning