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

Зміст:

Anonim

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

Тут ми побачимо, як запустити кілька класів (вони ж різні набори) за допомогою TestNG.

Крок 1) Створення файлу TestNG.xml для виконання тесту

Для цього виконайте наведені нижче дії.

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

Flipkart.java

пакет com.suite1;імпортувати java.util.concurrent.TimeUnit;імпорт org.openqa.selenium.Alert;імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.WebElement;імпорт org.openqa.selenium.firefox.FirefoxDriver;імпорт org.openqa.selenium.interactions.Actions;імпорт org.testng.annotations.AfterClass;імпорт org.testng.annotations.BeforeClass;імпорт org.testng.annotations.Test;публічний клас Flipkart {Драйвер WebDriver = новий FirefoxDriver ();Рядок username = ""; // Змінити своє ім’я користувача та парольРядок пароль = "";// Цей метод полягає в навігації за URL-адресою flipkart@BeforeClasspublic void init () {driver.manage (). window (). maximize ();driver.manage (). timeouts (). неявноWait (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 = драйвер.findElement (By.partialLinkText (ім'я користувача));s.moveToElement (користувач) .build (). perform ();driver.findElement (By.linkText ("Вихід")). click ();}@Після занятьpublic void quit () {driver.close ();}}

SnapDeal.java

пакет com.suite2;імпортувати java.util.concurrent.TimeUnit;імпорт org.openqa.selenium.Alert;імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.WebElement;імпорт org.openqa.selenium.firefox.FirefoxDriver;імпорт org.openqa.selenium.interactions.Actions;імпорт org.testng.annotations.AfterClass;імпорт org.testng.annotations.BeforeClass;імпорт org.testng.annotations.Test;публічний клас SnapDeal {Драйвер WebDriver = новий FirefoxDriver ();Рядок username = ""; // Змінити своє ім’я користувача та парольРядок пароль = "";Рядок pinCode = "";// Цей метод полягає в навігації за URL-адресою швидкого доступу@BeforeClasspublic void init () {driver.manage (). window (). maximize ();driver.manage (). timeouts (). неявноWait (60, TimeUnit.SECONDS);driver.navigate (). to ("https://www.snapdeal.com");}// Увійти в flipkart@ Тестpublic void login () {driver.findElement (By.xpath ("// кнопка [text () = 'Вхід']")). 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 [містить (текст (), 'Срібний')]")). click ();driver.findElement (By.id ("перевірка PIN-коду")). sendKeys (pinCode);driver.findElement (By.id ("buy-button-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 = 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) count-thread : Це використовується для паралельного виконання на основі скрипту числа. Він буде виконуватися в паралельному або послідовному порядку.

2) детальний : Він використовується для реєстрації деталей виконання у консолі. Значення має бути 1-10. Деталі журналу у вікні консолі стають детальними та зрозумілішими, коли ви збільшуєте значення детального атрибута у файлі конфігурації testng.xml.

3) назва : Назва сюїти. Ось "Gmail Suite"

4) Паралельно : Для паралельного запуску скриптів значенням можуть бути тести / класи / методи / набори. Значення за замовчуванням відсутнє

Клацніть правою кнопкою миші на testng.xml і виберіть "Запустити як тестування", після успіху ви побачите всі результати

Коли ви виконаєте наведений вище код, ви отримаєте наступний результат.

Вихід:

1) назва набору, вказана в testng.xml

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

3) назва класу, вказана в testng.xml

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

Так само він буде виконувати набір тестів і для швидкої угоди.

Висновок:

Тут ми бачили у наведеному вище прикладі, як використовувати Testng для виконання паралельного тесту. TestNG дає можливість виконувати кілька тестів паралельно в одному файлі конфігурації (XML).