Cross Browser Testing pomocí Selenium webový ovladač

Cross Browser Testing pomocí Selenium

Testování přes prohlížeč je typ funkčního testu, který kontroluje, zda vaše webová aplikace funguje podle očekávání v různých prohlížečích.

Použití křížového testování prohlížeče Selenium

Proč potřebujeme testování napříč prohlížeči?

Webové aplikace jsou zcela odlišné od Windows aplikací. Webovou aplikaci může koncový uživatel otevřít v libovolném prohlížeči. Někteří lidé například raději otevřou https://twitter.com in Firefox prohlížeč, zatímco ostatní mohou používat Prohlížeč Chrome or IE.

Na níže uvedeném diagramu to můžete vidět v IEPřihlašovací pole Twitteru není ve všech rozích zakřivené, ale můžeme to vidět v prohlížeči Chrome.

Testování přes prohlížeč

Musíme tedy zajistit, aby webová aplikace fungovala podle očekávání ve všech populárních prohlížečích, aby k ní mělo přístup a mohlo ji používat více lidí.

Tento motiv lze splnit pomocí Cross Browser Testování výrobku.

Důvod Křížové problémy s prohlížečem

  1. Nesoulad velikosti písma v různých prohlížečích.
  2. JavaImplementace skriptu může být různá.
  3. CSS, HTML validace rozdíl může být tam.
  4. Některé prohlížeče stále nepodporují HTML5.
  5. Zarovnání stránky a velikost div.
  6. Orientace obrázku.
  7. Nekompatibilita prohlížeče s OS. Atd.

Jak provést křížové testování prohlížeče

Pokud používáme Selenium WebDriver, můžeme automatizovat testovací případy pomocí Internet Explorer, FireFox, Chrome, prohlížeče Safari.

Pro spouštění testovacích případů s různými prohlížeči na stejném počítači ve stejnou dobu se můžeme integrovat TestNG rámec s Selenium WebDriver.

Váš testing.xml bude vypadat takto,

Testování přes prohlížeč

Tento soubor testing.xml se namapuje na soubor Testovací případ který bude vypadat takto

Testování přes prohlížeč

Zde proto, že soubor testing.xml má dvě značky Test ('ChromeTest','FirefoxTest'), tento testovací případ se spustí dvakrát pro 2 různé prohlížeče.

První test „ChromeTest“ předá hodnotu parametru „browser“ jako „chrome“, takže ChromeDriver bude spuštěn. Tento testovací případ poběží v prohlížeči Chrome.

Druhý test'FirefoxTest' předá hodnotu parametru 'browser' jako 'Firefox' tak FirefoxOvladač bude proveden. Tento testovací případ poběží na FireFox prohlížeč.

Guru99CrossBrowserScript.java

Kompletní kód:

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");
	}
}

testování.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>

POZNÁMKA: Chcete-li spustit test, klikněte pravým tlačítkem na testing.xml, Vyberte Spustit jako a klepněte na TestNG

Testování přes prohlížeč

Shrnutí

  1. Cross browser Testing je technika pro testování webových aplikací s různými webovými prohlížeči.
  2. Selenium může podporovat různé typy nástroj pro testování napříč prohlížeči pro automatizaci.
  3. Selenium lze integrovat s TestNG k provedení Multi Browser Testing.
  4. Z parametrů v testing.xml můžeme předat název prohlížeče a v testovacím případě můžeme podle toho vytvořit referenci WebDriver.

Poznámka: Daný program byl postaven a testován na selenu 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 & Microsoft Edge 14.14393. Pokud programy hlásí chybu, aktualizujte ovladač

stáhněte Selenium Soubory projektu pro ukázku v tomto kurzu