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.
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.
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
- Nesoulad velikosti písma v různých prohlížečích.
- JavaImplementace skriptu může být různá.
- CSS, HTML validace rozdíl může být tam.
- Některé prohlížeče stále nepodporují HTML5.
- Zarovnání stránky a velikost div.
- Orientace obrázku.
- 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,
Tento soubor testing.xml se namapuje na soubor Testovací případ který bude vypadat takto
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
Shrnutí
- Cross browser Testing je technika pro testování webových aplikací s různými webovými prohlížeči.
- Selenium může podporovat různé typy nástroj pro testování napříč prohlížeči pro automatizaci.
- Selenium lze integrovat s TestNG k provedení Multi Browser Testing.
- 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