Crossbrowsertesten met behulp van Selenium webdriver

Crossbrowsertesten met behulp van Selenium

Cross Browser-testen is een soort functionele test om te controleren of uw webapplicatie in verschillende browsers naar verwachting werkt.

Crossbrowsertesten met behulp van Selenium

Waarom hebben we cross-browsertests nodig?

Webgebaseerde applicaties zijn totaal anders dan Windows toepassingen. Een webapplicatie kan door de eindgebruiker in elke browser worden geopend. Sommige mensen geven er bijvoorbeeld de voorkeur aan om te openen https://twitter.com in Firefox browser, terwijl anderen het kunnen gebruiken Chrome-browser or IE.

In onderstaand schema kun je dat zien IE, het inlogvenster van Twitter vertoont niet bij alle hoeken een kromming, maar in de Chrome-browser is dit wel te zien.

Cross Browser-testen

We moeten er dus voor zorgen dat de webapplicatie in alle populaire browsers naar verwachting werkt, zodat meer mensen er toegang toe hebben en deze kunnen gebruiken.

Dit motief kan worden vervuld met Cross Browser Testen van het product.

Reden cross-browserproblemen

  1. Lettergrootte komt niet overeen in verschillende browsers.
  2. JavaDe implementatie van scripts kan verschillen.
  3. CSS- en HTML-validatieverschillen kunnen aanwezig zijn.
  4. Sommige browsers ondersteunen nog steeds geen HTML5.
  5. Pagina-uitlijning en div-grootte.
  6. Beeldoriëntatie.
  7. Browser-incompatibiliteit met besturingssysteem. Enz.

Hoe u cross-browsertests kunt uitvoeren

Als we gebruiken Selenium WebDriver, we kunnen testcases automatiseren met behulp van Internet Explorer, FireFox, Chrome, Safari-browsers.

Om testcases tegelijkertijd met verschillende browsers op dezelfde machine uit te voeren, kunnen we integreren TestNG raamwerk mee Selenium Webstuurprogramma.

Uw testen.xml ziet er zo uit:

Cross Browser-testen

Deze test.xml wordt in kaart gebracht met de Testgeval die er zo uit zal zien

Cross Browser-testen

Hier omdat de test.xml twee Test-tags heeft ('ChromeTest','FirefoxTest'), wordt deze testcase tweemaal uitgevoerd voor 2 verschillende browsers.

Eerste test 'ChromeTest' zal de waarde van parameter 'browser' doorgeven als 'chrome', zodat ChromeDriver wordt uitgevoerd. Deze testcase wordt uitgevoerd in de Chrome-browser.

Tweede proef 'FirefoxTest' zal de waarde van parameter 'browser' doorgeven als 'Firefox' Dus FirefoxDriver wordt uitgevoerd. Deze testcase wordt uitgevoerd op FireFox browser.

Guru99CrossBrowserScript.java

Volledige code:

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("http://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");
	}
}

testen.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>

NOTITIE: Om de test uit te voeren, klikt u met de rechtermuisknop op de testen.xml, Selecteer Uitvoeren als en klik TestNG

Cross Browser-testen

Samenvatting

  1. Cross browser Testen is een techniek om webapplicaties te testen met verschillende webbrowsers.
  2. Selenium kan verschillende soorten ondersteunen tool voor het testen van meerdere browsers voor automatisering.
  3. Selenium kan worden geïntegreerd met TestNG om multi-browsertests uit te voeren.
  4. Vanuit parameters in testing.xml kunnen we de browsernaam doorgeven, en in een testcase kunnen we dienovereenkomstig een WebDriver-referentie creëren.

Opmerking: Het gegeven programma is gebouwd en getest op Selenium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 & Microsoft Edge 14.14393. Als de programma's een foutmelding geven, update dan het stuurprogramma

Download de Selenium Projectbestanden voor de demo in deze zelfstudie