Cross Browser Testing folosind Selenium webdriver
Cross Browser Testing folosind Selenium
Testarea browserului รฎncruciศat este un tip de test funcศional pentru a verifica dacฤ aplicaศia dvs. web funcศioneazฤ conform aศteptฤrilor รฎn diferite browsere.
De ce avem nevoie de testare รฎntre browsere?
Aplicaศiile bazate pe web sunt total diferite de Windows aplicatii. O aplicaศie web poate fi deschisฤ รฎn orice browser de cฤtre utilizatorul final. De exemplu, unii oameni preferฤ sฤ deschidฤ https://twitter.com in Firefox browser-ul, รฎn timp ce altele pot fi folosite Chrome browser or IE.
รn diagrama de mai jos puteศi observa cฤ รฎn IE, caseta de conectare a Twitter nu aratฤ curba รฎn toate colศurile, dar o putem vedea รฎn browserul Chrome.
Aศadar, trebuie sฤ ne asigurฤm cฤ aplicaศia web va funcศiona conform aศteptฤrilor รฎn toate browserele populare, astfel รฎncรขt mai mulศi oameni sฤ o poatฤ accesa ศi sฤ o utilizeze.
Acest motiv poate fi รฎndeplinit cu Cross Browser Testarea al produsului.
Motivul problemelor รฎntre browsere
- Dimensiunea fontului nepotrivitฤ รฎn diferite browsere.
- JavaImplementarea scriptului poate fi diferitฤ.
- Diferenศa de validare CSS,HTML poate fi acolo.
- Unele browsere รฎncฤ nu acceptฤ HTML5.
- Alinierea paginii ศi dimensiunea div.
- Orientarea imaginii.
- Incompatibilitate browser cu sistemul de operare. etc.
Cum sฤ faceศi testarea รฎncruciศatฤ a browserului
Dacฤ folosim Selenium WebDriver, putem automatiza cazurile de testare folosind Internet Explorer, FireFox, Chrome, browsere Safari.
Pentru a executa cazuri de testare cu browsere diferite รฎn aceeaศi maศinฤ รฎn acelaศi timp, putem integra TestNG cadru cu Selenium WebDriver.
testing.xml va arฤta aศa,
Acest testing.xml se va mapa cu Caz de testare care va arata asa
Aici, deoarece testing.xml are douฤ etichete Test (โChromeTestโ,โFirefoxTest'), acest caz de testare se va executa de douฤ ori pentru 2 browsere diferite.
Primul test โChromeTestโ va trece valoarea parametrului โbrowserโ ca โchromeโ, astfel รฎncรขt ChromeDriver va fi executat. Acest caz de testare va rula pe browserul Chrome.
Al doilea test 'FirefoxTestul va trece valoarea parametrului โbrowserโ ca โFirefox' asa de FirefoxDriverul va fi executat. Acest caz de testare va rula pe focFox browser-ul.
Guru99CrossBrowserScript.java
Cod complet:
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>
NOTฤ: Pentru a rula testul, faceศi clic dreapta pe testing.xml, Selectaศi Executare ca ศi faceศi clic TestNG
Rezumat
- Testarea รฎntre browsere este o tehnicฤ de testare a aplicaศiei web cu diferite browsere web.
- Selenium poate suporta diferite tipuri de instrument de testare cross-browser pentru automatizare.
- Selenium poate fi integrat cu TestNG pentru a efectua Testarea Multi Browser.
- Din parametrii din testing.xml putem trece numele browserului, iar รฎntr-un caz de testare, putem crea referinศฤ WebDriver รฎn consecinศฤ.
Notฤ: Programul dat a fost construit ศi testat pe selenium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 & Microsoft Edge 14.14393. Dacฤ programele dau o eroare, vฤ rugฤm sฤ actualizaศi driverul
Descฤrcaศi Selenium Fiศiere de proiect pentru demonstraศia din acest tutorial





