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