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.

Utilizarea de testare încrucișată de browser Selenium

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.

Testarea browserului încrucișat

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

  1. Dimensiunea fontului nepotrivită în diferite browsere.
  2. JavaImplementarea scriptului poate fi diferită.
  3. Diferența de validare CSS,HTML poate fi acolo.
  4. Unele browsere încă nu acceptă HTML5.
  5. Alinierea paginii și dimensiunea div.
  6. Orientarea imaginii.
  7. 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,

Testarea browserului încrucișat

Acest testing.xml se va mapa cu Caz de testare care va arata asa

Testarea browserului încrucișat

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

Testarea browserului încrucișat

Rezumat

  1. Testarea între browsere este o tehnică de testare a aplicației web cu diferite browsere web.
  2. Selenium poate suporta diferite tipuri de instrument de testare cross-browser pentru automatizare.
  3. Selenium poate fi integrat cu TestNG pentru a efectua Testarea Multi Browser.
  4. 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