Кроссбраузерное тестирование с использованием Selenium WebDriver

Кроссбраузерное тестирование с использованием Selenium

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

Кроссбраузерное тестирование с использованием Selenium

Зачем нам нужно кроссбраузерное тестирование?

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

На диаграмме ниже вы можете видеть, что в IE, логин box твиттера не шоwing кривая по всем углам, но мы можем увидеть ее в браузере Chrome.

Кросс-браузерное тестирование

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

Эту цель можно реализовать с помощью кросс-браузера. Тестирование продукта.

Причина перекрестных проблем с браузером

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

Как провести кроссбраузерное тестирование

Если мы используем Selenium WebDriver, мы можем автоматизировать тестовые случаи с помощью Internet Explorer. FireFoxБраузеры Chrome, Safari.

Чтобы одновременно выполнять тестовые случаи с разными браузерами на одном компьютере, мы можем интегрировать ТестНГ фреймворк с Selenium WebDriver.

Ваш файл test.xml будет выглядеть так:

Кросс-браузерное тестирование

Этот файл test.xml будет сопоставляться с Тестовый кейс который будет выглядеть так

Кросс-браузерное тестирование

Здесь потому, что в файлеtesting.xml есть два тега Test («ChromeTest»,'FirefoxTest'), этот тестовый пример будет выполнен два раза для двух разных браузеров.

Первый тест «ChromeTest» передаст значение параметра «браузер» как «chrome», поэтому ChromeDriver будет выполнен. Этот тестовый пример будет работать в браузере Chrome.

Второй тест 'FirefoxTest» передаст значение параметра «браузер» как «Firefox' так FirefoxДрайвер будет казнен. Этот тестовый пример будет выполняться FireFox browser.

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");
	}
}

test.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>

ПРИМЕЧАНИЕ: Чтобы запустить тест, щелкните правой кнопкой мыши по тестирование.xml, Выберите «Запуск от имени» и нажмите TestNG.

Кросс-браузерное тестирование

Выводы

  1. Кроссбраузерное тестирование — это метод тестирования веб-приложений с использованием различных веб-браузеров.
  2. Selenium может поддерживать разные типы кросс-браузерный инструмент для тестирования для автоматизации.
  3. Selenium можно интегрировать с TestNG для проведения мультибраузерного тестирования.
  4. Из параметров в файлеtest.xml мы можем передать имя браузера, а в тестовом примере мы можем соответствующим образом создать ссылку на WebDriver.

Примечание: Данная программа была собрана и протестирована на Selenium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 & Microsoft Край 14.14393. Если программы выдают ошибку, обновите драйвер

Загрузите файлы проекта Selenium для демонстрации в этом руководстве.