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

Содержание:

Anonim

TestNG позволяет вам запускать методы тестирования, тестовые классы и тестовые примеры параллельно внутри вашего проекта. Выполняя параллельное выполнение, мы можем сократить «время выполнения», поскольку тесты запускаются и выполняются одновременно в разных потоках.

Здесь мы увидим, как запускать несколько классов (также называемых разными наборами) с помощью TestNG.

Шаг 1) Создание файла TestNG.xml для выполнения теста

Для этого выполните следующие шаги.

  1. Создать новый проект в eclipse
  2. Создайте в проектах два пакета (назовите их com.suite1 и com.suite2)
  3. Создайте класс в каждом пакете (назовите их Flipkart.java и Snapdeal.java) и скопируйте приведенный ниже код в соответствующие классы.
  4. Создайте новый файл в своем проекте и назовите его testng.xml (убедитесь, что вы установили плагин тестирования для eclipse, инструкции доступны здесь). Testng.xml содержит всю конфигурацию (имена классов, имена тестов и имена костюмов.

Flipkart.java

пакет com.suite1;import java.util.concurrent.TimeUnit;import org.openqa.selenium.Alert;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;импортировать org.openqa.selenium.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;public class Flipkart {Драйвер WebDriver = новый FirefoxDriver ();String username = ""; // Измените на ваше имя пользователя и парольСтрока password = "";// Этот метод предназначен для перехода по URL-адресу флипкарта@BeforeClasspublic void init () {driver.manage (). window (). maximize ();driver.manage (). timeouts (). implicitlyWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.flipkart.com");}// Для входа в flipkart@Тестpublic void login () {driver.findElement (By.partialLinkText ("Логин")). click ();driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-email")).sendKeys (имя пользователя);driver.findElement (By.cssSelector (". Fk-input.login-form-input.user-pwd")).sendKeys (пароль);driver.findElement (By.cssSelector (". submit-btn.login-btn.btn")). click ();}// Поиск продукта@Тестpublic void searchAndSelectProduct () {driver.findElement (By.id ("fk-top-search-box")). sendKeys ("moto g3");driver.findElement (By.cssSelector ("search-bar-submit.fk-font-13.fk-font-bold")).click ();// выбираем первый элемент в результатах поискаСтрока css = ".gd-row.browse-grid-row: nth-of-type (1)> div: nth-child (1)> div> div: nth-child (2)> div> a";driver.findElement (By.cssSelector (css)). click ();}@Тестpublic void buyAndRemoveFromCart () {driver.findElement (By.cssSelector (". Btn-express-checkout.btn-big.current")).click ();driver.findElement (By.cssSelector (". remove.fk-inline-block")). click ();Оповещение a = driver.switchTo (). Alert ();a.accept ();}@Тестpublic void logout () {Действия s = новые Действия (драйвер);WebElement user = driver.findElement (By.partialLinkText (имя пользователя));s.moveToElement (пользователь) .build (). perform ();driver.findElement (By.linkText ("Выход")). click ();}@После занятийpublic void quit () {driver.close ();}}

SnapDeal.java

пакет com.suite2;import java.util.concurrent.TimeUnit;import org.openqa.selenium.Alert;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;импортировать org.openqa.selenium.interactions.Actions;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;public class SnapDeal {Драйвер WebDriver = новый FirefoxDriver ();String username = ""; // Измените на ваше имя пользователя и парольСтрока password = "";Строка pinCode = "";// Этот метод предназначен для перехода по URL-адресу snapdeal@BeforeClasspublic void init () {driver.manage (). window (). maximize ();driver.manage (). timeouts (). implicitlyWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.snapdeal.com");}// Для входа в flipkart@Тестpublic void login () {driver.findElement (By.xpath ("// button [text () = 'Login']")). click ();driver.switchTo (). frame ("loginIframe");driver.findElement (By.cssSelector ("div [onClick = 'getLoginForm ()']")).click ();driver.findElement (By.id ("j_username")). sendKeys (имя пользователя);driver.findElement (By.id ("j_password_login")). sendKeys (пароль);driver.findElement (By.id ("signin_submit")). click ();driver.switchTo (). defaultContent ();}// Поиск продукта@Тестpublic void searchAndSelectProduct () {driver.findElement (By.cssSelector (". col-xs-20.searchformInput.keyword")).sendKeys ("iphone 6s");driver.findElement (By.cssSelector (". sd-icon.sd-icon-search")). click ();// выбираем первый элемент в результатах поискаСтрока css = ".product_grid_row: nth-of-type (1)> div: nth-child (1)";driver.findElement (By.cssSelector (css)). click ();}@Тестpublic void buyAndRemoveFromCart () {driver.findElement (By.xpath ("// li [contains (text (), 'Silver')]")). click ();driver.findElement (By.id ("проверка пин-кода")). sendKeys (pinCode);driver.findElement (By.id ("идентификатор кнопки покупки")). click ();driver.findElement (By.cssSelector ("i [title = 'Удалить элемент']")). click ();Оповещение a = driver.switchTo (). Alert ();a.accept ();}@Тестpublic void logout () {driver.findElement (By.linkText ("НАЧАТЬ ПОКУПКИ СЕЙЧАС")). click ();Действия s = новые Действия (драйвер);WebElement user = driver.findElement (By.cssSelector (". Sd-icon.sd-icon-user"));s.moveToElement (пользователь) .build (). perform ();driver.findElement (By.linkText ("Выход")). click ();}@После занятийpublic void quit () {driver.close ();}}

TestNg.xml

<классы><классы>

Окончательная структура проекта выглядит следующим образом:

Шаг 2) Параллельное выполнение в TestNG

После создания XML-файла, как показано выше, на следующем шаге мы выполним параллельный тест. Ниже приведен код.

1) количество потоков : используется для параллельного выполнения на основе числового сценария. Он будет выполняться в параллельном или последовательном порядке.

2) подробный : он используется для регистрации деталей выполнения в консоли. Значение должно быть 1-10. Детали журнала в окне консоли станут более подробными и понятными по мере увеличения значения атрибута verbose в файле конфигурации testng.xml.

3) name : Название сюиты. Вот он "Gmail Suite"

4) Параллельный : для параллельного запуска скриптов значениями могут быть тесты / классы / методы / комплекты. Значение по умолчанию - none

Щелкните правой кнопкой мыши файл testng.xml и выберите запустить как тестирование, после успешного завершения вы увидите все результаты.

Когда вы выполните приведенный выше код, вы получите следующий результат.

Выход:

1) имя набора, указанное в testng.xml

2) название теста, указанное в testng.xml

3) имя класса, указанное в testng.xml

4) имена методов, помеченные @Test в файле .java

Точно так же он также выполнит набор тестов для мгновенной сделки.

Вывод:

В приведенном выше примере мы видели, как использовать Testng для выполнения параллельного теста. TestNG дает возможность выполнять несколько тестов параллельно в одном файле конфигурации (XML).