Групи в TestNG
TestNG це платформа для тестування, яка охоплює різні типи дизайну тестів, як одиничні, функціональні, наскрізні, інтерфейс і інтеграційні тести.
Ви можете запускати один або кілька пакетів (пакет тут означає інкапсуляцію групи класів у належному форматі директора), створивши XML і запустивши його через maven.
TestNG Групи з прикладом
Ми використовуємо групи в Testng коли,
- Ми не хочемо визначати методи тестування окремо в різних класах (залежно від функціональності) і
- У той же час хочеться ігнорувати (не виконувати) деякі тестові випадки, ніби вони не існують у коді.
- Отже, щоб виконати це, ми повинні згрупувати їх. Це робиться за допомогою механізмів «включення» та «виключення», які підтримуються в testNG.
У прикладі нижче ми показали синтаксис використання груп у файлі XML.
@Test (groups = { "bonding", "strong_ties" })
Тут ми використовуємо 2 назви груп, тобто «bonding» і «strong_ties» (це логічні назви, які можна змінити за вашим бажанням).
<groups> тег визначає початок груп у XML.
Налаштуйте свій XML, щоб вибрати згадану групу з тестових класів. Нижче наведено синтаксис того, як оголосити групи у файлі XML, наприклад
<groups>
<run>
<include name="bonding" />
</run>
</groups>
Отже, припустимо, що в класі є 10 тестових методів.
З них,
- 6 методів позначені тегами в групі «склеювання» і
- 4 знаходяться в групі “сильні зв’язки”.
Рухаючись далі, ми збираємося встановити maven/Java шлях і використовуйте Eclipse IDE для демонстрації використання груп за допомогою файлів XML Java проект на основі maven.
Створіть XML для TestNG з тегами
- Файл XML (розширювана мова розмітки) у структурі Maven містить інформацію одного або кількох тестів і визначається тег.
- Тестова інформація в XML представлена тег і може містити один або більше TestNG класи.
- A Java клас, який містить @Тест анотація вище методів тестування визначається як TestNG методи
Кілька тегів використовуються в послідовності для створення робочого XML-файлу testNG , і
- По-перше тег, який містить логічне ім’я, яке визначає повну інформацію для звіту testNG для створення звіту про виконання.
- Друге – цеGuru «99 Демонстрація Smoke Test»>, зверніть увагу, що це логічна назва, яка містить інформацію про звіт про виконання тесту, таку як успішний, неуспішний, пропущені тестові випадки та іншу інформацію, таку як загальний час виконання та інформація про групу.
- По-третєcom.group.guru99.TC_Class1” />, com.group.guru99 — пакет, який використовується, а ім’я тестового класу — TC_Class1.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test name="Guru 99 Smoke Test Demo">
<groups>
<run>
<include name="strong_ties" />
</run>
</groups>
<classes>
<class name="com.group.guru99.TC_Class1" />
</classes>
</test>
</suite>
Ми будемо використовувати цей XML для майбутнього відео, наведеного в розділах нижче.
«виключити» або «включити» в тестовий XML
Припустімо, що ви вважаєте використання механізму групування складним, тоді testNG XML полегшить функціональність для виключення/включення тесту.
Exclude Tag: Syntax for exclude tag <exclude name="${TEST_CASE_NAME}" />
Include Tag: Syntax for include tag <include name="${TEST_CASE_NAME}" />
Примітка: Ми можемо включати/виключати кілька тестів за один раз, що також працює з групами.
прогін TestNG Групувати, включати, виключати код (демонстрація відео)
Пояснення Java Code та XML з згрупувати, виключити та включити тег у XML.
Сценарій тесту: запуск Guru99 демо-версія банківського сайту, після цього перевірте кілька речей на сторінці входу, введіть облікові дані та повторно перевірте кілька нових речей у застосунку після входу в систему.
Примітка: Кожен крок, який ви кодуєте, має бути оголошений в окремих методах, але під час виконання він виконуватиме тестові методи залежно від записів у файлі XML.
- Метод 1: Ініціалізація браузера та запуск URL-адреси (tc01LaunchURL())
- Метод 2: Перевірити заголовок сторінки входу (tc02VerifyLaunchPage())
- Метод 3: Введіть ім’я користувача та пароль у формі входу (tc03EnterCredentials())
- Метод 4: Перевірте наявність ідентифікатора менеджера на інформаційній панелі користувача (tc04VerifyLoggedInPage())
- Метод 5: Перевірте ще кілька посилань на інформаційній панелі користувача (tc05VerifyHyperlinks())
Code для нашого сценарію:
package com.group.guru99;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
public class TC_Class1 {
public static final WebDriver webDriver = new FirefoxDriver();;
String launchPageHeading = "//h3[text()='Guru99 Bank']";
final String userName_element = "//input[@name='uid']", password_element = "//input[@name='password']",
signIn_element = "//input[@name='btnLogin']";
final String userName_value = "mngr28642", password_value = "ydAnate";
final String managerID = "//td[contains(text(),'Manger Id')]";
final String newCustomer = "//a[@href='addcustomerpage.php']", fundTransfer = "//a[@href='FundTransInput.php']";
/**
* This test case will initialize the webDriver
*/
@Test(groups = { "bonding", "strong_ties" })
public void tc01LaunchURL() {
webDriver.manage().window().maximize();
webDriver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
webDriver.get("https://www.demo.guru99.com/V4/");
}
/**
* Will check the presence of Heading on Login Page
*/
@Test(groups = { "bonding" })
public void tc02VerifyLaunchPage() {
Assert.assertTrue(webDriver.findElement(By.xpath(launchPageHeading)).isDisplayed(),
"Home Page heading is not displayed");
System.out.println("Home Page heading is displayed");
}
/**
* This test case will enter User name, password and will then click on
* signIn button
*/
@Test(groups = { "bonding", "strong_ties" })
public void tc03EnterCredentials() {
webDriver.findElement(By.xpath(userName_element)).sendKeys(userName_value);
webDriver.findElement(By.xpath(password_element)).sendKeys(password_value);
webDriver.findElement(By.xpath(signIn_element)).click();
}
/**
* This test case will verify manger's ID presence on DashBoard
*/
@Test(groups = { "strong_ties" })
public void tc04VerifyLoggedInPage() {
Assert.assertTrue(webDriver.findElement(By.xpath(managerID)).isDisplayed(),
"Manager ID label is not displayed");
System.out.println("Manger Id label is displayed");
}
/**
* This test case will check the presence of presence of New customer link
* And FundTransfer link in Left pannel
*/
@Test(groups = { "bonding" })
public void tc05VerifyHyperlinks() {
Assert.assertTrue(webDriver.findElement(By.xpath(newCustomer)).isEnabled(),
"New customer hyperlink is not displayed");
System.out.println("New customer hyperlink is displayed");
Assert.assertTrue(webDriver.findElement(By.xpath(fundTransfer)).isEnabled(),
"Fund Transfer hyperlink is not displayed");
System.out.println("Fund Transfer hyperlink is displayed");
}
}
Зверніть увагу: облікові дані дійсні лише протягом 20 днів, тому, якщо ви спробуєте запустити код на локальному комп’ютері, ви можете зіткнутися з помилкою недійсних облікових даних.
Пояснення Code:
Як згадувалося вище, ми створили 5 тестів для виконання кожної дії в незалежних методах.
Для кожного методу ми пов’язали параметр групи з деяким значенням.
По суті, це назви груп, що відрізняються, тобто «сильні зв’язки» та «зв’язки».
- Перший і третій методи позначені тегами «bonding», «strong_ties», що означає, що якщо XML оновлено в будь-якій групі, це Тестовий випадок буде працювати.
- Другий метод позначається лише тегом групи зв’язування, це означає, що якщо XML оновлюється групою зв’язування. Тільки в цьому випадку цей тестовий приклад буде виконано.
- Четвертий тестовий випадок позначено тегом групи strong_ties, що означає, що цей тестовий випадок виконуватиметься, лише якщо в XML оновлено назву групи strong_ties.
- Останній, але не менш важливий, п’ятий тестовий приклад додається до групи зв’язування, що означає, що цей тестовий приклад запускатиметься, лише якщо в XML оновлено назву групи зв’язування.
Отже, загалом у нас є 4 сценарії;
Сценарій 1: Ми хочемо запустити всі тестові випадки, незалежно від назви групи. У цьому випадку ми видалимо тег Group із запуску XML.
Сценарій 2: Ми хочемо запустити кілька тестів, пов’язаних лише з будь-якою з груп, тобто сильні зв’язки чи зв’язок. Будь ласка, зверніться до:
- У цьому відео параметр групи коментується під час запуску XML. Отже, ви побачите, що всі тестові випадки виконано.
- У продовження відео, тепер ми включили ім’я групи в XML, ви можете бачити лише тестові випадки, які стосуються цієї групи.
Сценарій 3: Ми використовуємо механізм виключення, щоб виключити тестовий приклад. Перегляньте відео
- Ви бачите, що ми використали виключити декілька тестів (tc02), записавши їх ім’я у запущеному XML. У кінцевому результаті згадані тестові випадки не запускалися.
Сценарій 4: Нарешті, ми використовуємо механізм тестування включення, щоб включити тестові випадки (tc01LaunchURL, tc03EnterCredentials і tc05VerifyHyperlinks). Перегляньте відео
У цьому відео ви побачите, що тестові випадки, згадані в XML, виконуються лише під час виконання тесту.
Будь ласка, завантажте код із коду для прикладу вище-
Висновок
Тут ми навчилися відносно нового способу запуску тестів за допомогою XML у проекті Maven.
Ми почали з короткого ознайомлення з testNG і продовжили з повної технічної специфікації Груп, виключення та включення.

