Використання міжбраузерного тестування Selenium веб-драйвер

Використання міжбраузерного тестування Selenium

Перехресне тестування браузера це тип функціонального тесту, щоб перевірити, чи ваша веб-програма працює належним чином у різних браузерах.

Перехресне тестування за допомогою браузера Selenium

Навіщо нам кросбраузерне тестування?

Веб-програми абсолютно відрізняються від Windows програми. Кінцевий користувач може відкрити веб-програму в будь-якому браузері. Наприклад, деякі люди вважають за краще відкрити https://twitter.com in Firefox браузер, тоді як інші можуть використовувати Браузер Chrome or IE.

На діаграмі нижче ви можете побачити, що в IE, вікно входу в Twitter не викривляється в усіх кутах, але ми можемо побачити це в браузері Chrome.

Перехресне тестування браузера

Тому нам потрібно переконатися, що веб-додаток працюватиме належним чином у всіх популярних браузерах, щоб більше людей могли отримати до нього доступ і використовувати його.

Цей мотив можна реалізувати за допомогою Cross Browser Тестування продукту.

Причина Проблеми між браузерами

  1. Невідповідність розміру шрифту в різних браузерах.
  2. JavaРеалізація сценарію може бути різною.
  3. Можлива різниця в перевірці CSS і HTML.
  4. Деякі браузери все ще не підтримують HTML5.
  5. Вирівнювання сторінки та розмір div.
  6. Орієнтація зображення.
  7. Несумісність браузера з ОС. тощо

Як провести міжбраузерне тестування

Якщо ми використовуємо Selenium WebDriver, ми можемо автоматизувати тестові випадки за допомогою Internet Explorer, FireFox, браузери Chrome, Safari.

Щоб виконувати тестові випадки з різними браузерами на одній машині одночасно, ми можемо інтегрувати TestNG рамка с Selenium WebDriver.

Ваш testing.xml виглядатиме так,

Перехресне тестування браузера

Цей testing.xml зіставлятиметься з Тестовий випадок який буде виглядати так

Перехресне тестування браузера

Тут тому, що testing.xml має два тестові теги ("ChromeTest","FirefoxTest'), цей тест буде виконано двічі для 2 різних браузерів.

Перший тест "ChromeTest" передасть значення параметра "browser" як "chrome", тому ChromeDriver буде виконано. Цей тестовий приклад запускатиметься у браузері Chrome.

Другий тест 'FirefoxTest" передасть значення параметра "browser" як "Firefox' так FirefoxДрайвер буде виконано. Цей тестовий приклад буде працювати на FireFox браузера.

Guru99CrossBrowserScript.java

Повний код:

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("http://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>

ПРИМІТКА: Щоб запустити тест, клацніть правою кнопкою миші на testing.xml, Виберіть Запуск від імені та натисніть TestNG

Перехресне тестування браузера

Підсумки

  1. Міжбраузерне тестування — це техніка тестування веб-додатків у різних веб-браузерах.
  2. Selenium може підтримувати різні типи крос-браузерний інструмент тестування для автоматизації.
  3. Selenium може бути інтегрована з TestNG щоб виконати багатобраузерне тестування.
  4. З параметрів у testing.xml ми можемо передати назву браузера, а в тестовому випадку ми можемо відповідно створити посилання на WebDriver.

Примітка: Ця програма була створена та протестована на selenium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 & Microsoft Edge 14.14393. Якщо програми видають помилку, оновіть драйвер

Завантажити Selenium Файли проекту для демонстрації в цьому посібнику