how use testng framework
В останніх кількох підручниках ми пролили світло на основні та часто використовувані команди WebDriver. Ми також дізналися про стратегії визначення елементів інтерфейсу та їх включення до тестових скриптів. І тому ми розробили наш самий перший сценарій тесту автоматизації WebDriver .
Продовжуючи роботу з цим посібником, ми обговоримо все про TestNG, його функції та додатки.
TestNG - це прогресивна система розроблений таким чином, щоб використовувати переваги як розробників, так і тестувальників. Для людей, які вже використовують JUnit, TestNG, здається, не відрізняється від деяких попередніх функцій. З початком створення фреймворків JUnit отримав величезну кількість популярність у програмах Java, розробниках Java та тестерах Java, з надзвичайно підвищеною якістю коду.
Дивитися також=> Підручник з JUnit та його використання в сценаріях Selenium
Незважаючи на те, що JUnit є простим у використанні і зрозумілим фреймворком, є свої обмеження, які породжують необхідність використання ТестNG в картинку. TestNG був створений відомим програмістом, якого звали «Седрік Беуст». TestNG - це фреймворк з відкритим кодом, який поширюється під ліцензією програмного забезпечення Apache і легко доступний для завантаження.
Говорячи про нашу вимогу запровадити TestNG з WebDriver, це те, що він забезпечує ефективний і дієвий формат результатів тестування, який, у свою чергу, може бути переданий зацікавленим сторонам, щоб побачити стан здоров'я продукту / програми, усуваючи тим самим недолік нездатності WebDriver генерувати звіти про випробування. TestNG має вбудований механізм обробки винятків, який дозволяє програмі працювати без несподіваного завершення роботи.
І TestNG, і JUnit належать до одного сімейства Unit Frameworks, де TestNG є розширеною версією до JUnit і більш широко використовується в поточну епоху тестування.
Що ви дізнаєтесь:
- Особливості TestNG
- Встановлення TestNG в Eclipse
- Створення зразкового проекту TestNG
- Створення класу TestNG
- Виконання сценарію TestNG
- Звіти HTML
- Встановлення пріоритету в TestNG
- Проходження коду
- Анотації TestNG
- Висновок
- Рекомендована література
Особливості TestNG
- Підтримка анотацій
- Підтримка параметризації
- Методика попереднього виконання, яка не вимагає створення наборів тестів
- Підтримка тестування на основі даних за допомогою постачальників даних
- Дозволяє користувачеві встановлювати пріоритети виконання для методів тестування
- Підтримує безпечне середовище під час виконання декількох потоків
- Легко підтримує інтеграцію з різними інструментами та плагінами, такими як інструменти побудови (Ant, Maven тощо), інтегроване середовище розробки (Eclipse).
- Сприяє користувачеві ефективними засобами генерації звітів за допомогою ReportNG
Існують різні переваги, завдяки яким TestNG перевершує JUnit. Деякі з них:
- Попередні та прості анотації
- Можуть бути встановлені схеми виконання
- Одночасне виконання тестових скриптів
- Можна встановити залежності тестового випадку
Анотації передують символу “@” як у TestNG, так і в JUnit.
Отже, давайте почнемо з частини встановлення та впровадження.
Інтернет-сітка для автоматизації випробувань селену
# 1) Лямбда-тест
Структуру TestNG найкраще використовувати з хмарною селеновою сіткою, такою як LambdaTest, яка допомагає вам виконувати паралельне тестування на 2000+ реальних браузерах та операційних системах, без будь-яких клопотів з підтримкою власної сіткової селени.
Ви можете отримати різноманітні журнали, такі як журнали команд, журнали мережі, необроблені журнали Selenium, метадані тощо, а також повний відеозапис тестового сценарію Selenium для налагодження.
LambdaTest також пропонує інтеграцію з безліччю інструментів CI / CD, таких як Jenkins, Travis CI, CircleCI тощо для постійного тестування. LambdaTest також дозволяє інтегрувати з численними інструментами управління проектами для зручного реєстрації помилок.
=> Відвідайте веб-сайт LambdaTestВстановлення TestNG в Eclipse
Виконайте наведені нижче кроки для завантаження та встановлення TestNG на eclipse:
Крок 1: Запустіть IDE eclipse -> Клацніть на опцію Довідка в меню -> Виберіть опцію “Eclipse Marketplace ..” у спадному меню.
Крок 2: Введіть ключове слово “TestNG” у текстовому полі пошуку та натисніть кнопку “Go”, як показано нижче.
Крок 3: Як тільки користувач натискає кнопку 'Перейти', відображатимуться результати, що відповідають рядку пошуку. Тепер користувач може натиснути кнопку Встановити, щоб встановити TestNG.
Крок 4: Як тільки користувач натискає кнопку Встановити, користувачеві пропонується вікно для підтвердження встановлення. Клацніть на кнопку “Підтвердити”.
Крок 5: На наступному кроці програма запропонує вам прийняти ліцензію, а потім натисніть кнопку «Готово».
Крок 6: Встановлення розпочато зараз, і прогрес можна побачити наступним чином:
Нам рекомендується перезапустити наше затемнення, щоб відобразити внесені зміни.
Після перезапуску користувач може перевірити встановлення TestNG, перейшовши до пункту «Налаштування» в меню «Вікно» на панелі меню. Зверніться до наступного малюнка для того ж.
(Клацніть на зображення, щоб переглянути збільшене)
Створення зразкового проекту TestNG
Почнемо зі створення проекту TestNG в eclipse IDE.
Крок 1: Клацніть на опцію Файл у меню -> Клацніть на Створити -> Виберіть проект Java.
Крок 2: Введіть назву проекту як «DemoTestNG» та натисніть кнопку «Далі». На завершальному етапі натисніть кнопку «Готово», і ваш проект Java готовий.
Крок 3: Наступним кроком є налаштування бібліотеки TestNG на нещодавно створений проект Java. Для цього ж натисніть на вкладці “Бібліотеки” в розділі Налаштувати шлях до збірки. Клацніть на “Додати бібліотеку”, як показано нижче.
Крок 4: Користувачеві буде запропоновано діалогове вікно, що сприяє вибору бібліотеки для налаштування. Виберіть TestNG і натисніть кнопку «Далі», як показано нижче на зображенні. Зрештою, натисніть кнопку «Готово».
Тепер TestNG додано до проекту Java, і необхідні бібліотеки можна побачити у провіднику пакетів при розширенні проекту.
Додайте всі завантажені бібліотеки та банки Selenium у шлях побудови проекту, як показано у попередньому навчальному посібнику.
Створення класу TestNG
Тепер, коли ми виконали всі основні налаштування, щоб розпочати створення тестового сценарію за допомогою TestNG. Давайте створимо зразок сценарію за допомогою TestNG.
Крок 1: Розгорніть проект «DemoTestNG» і перейдіть до папки «src». Клацніть правою кнопкою миші на пакунку “src” та перейдіть до New -> Other.
Крок 2: Розгорніть опцію TestNG і виберіть опцію класу «TestNG» і натисніть кнопку «Далі».
Крок 3: Надайте необхідні деталі наступним чином. Вкажіть папку Source, назву пакета та назву класу TestNG та натисніть кнопку Готово. Як видно з малюнка нижче, користувач також може перевірити різні позначення TestNG, які відображатимуться у схемі тестового класу. Анотації TestNG будуть обговорені пізніше в цій сесії.
Вищезгаданий клас TestNG буде створений із схемою за замовчуванням.
Тепер, коли ми створили базову основу для тестового сценарію TestNG, давайте тепер введемо власне тестовий код. Ми використовуємо той самий код, що і в попередній сесії.
Сценарій:
- Запустіть браузер і відкрийте “gmail.com”.
- Перевірте заголовок сторінки та роздрукуйте результат перевірки.
- Введіть ім’я користувача та пароль.
- Натисніть кнопку Увійти.
- Закрийте веб-браузер.
Код:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
Пояснення коду щодо TestNG
1) @Test - @Test є одним із Анотації TestNG . Ця анотація дозволяє виконанню програми знати, що метод, позначений як @Test, є тестовим методом. Щоб мати змогу використовувати різні анотації TestNG, нам потрібно імпортувати пакет “ імпорт org.testng.annotations. * ”.
два) Немає необхідності в методі main () під час створення тестових скриптів за допомогою TestNG. Виконання програми здійснюється на основі анотацій.
3) У заяві ми використовували клас Assert, порівнюючи очікуване та фактичне значення. Клас Assert використовується для проведення різних перевірок. Щоб мати можливість використовувати різні твердження, нам потрібно імпортувати “ імпорт org.testng.Assert ”.
Виконання сценарію TestNG
Тестовий скрипт TestNG можна виконати наступним чином:
=> Клацніть правою кнопкою миші в будь-якому місці в класі в редакторі або класі Java у програмі провідника пакунків, виберіть опцію «Запустити як» та натисніть «TestNG Test».
Результат TestNG відображається у двох вікнах:
- Вікно консолі
- Вікно результатів випробувань
Зверніться до наведених нижче скрінкастів для вікон результатів:
Запитання та відповіді на інтерв’ю для сценарію vb
(Клацніть на зображення, щоб переглянути збільшене)
Звіти HTML
TestNG поставляється з великою можливістю створювати зручні для читання та зрозумілі звіти HTML для виконання тестів. Ці звіти можна переглянути у будь-якому з браузерів, а також переглянути за допомогою збірки Eclipse - у підтримці браузера.
Щоб створити звіт HTML, виконайте такі дії:
Крок 1: Виконайте нещодавно створений клас TestNG. Оновіть проект, що містить клас TestNG, клацнувши на ньому правою кнопкою миші та вибравши опцію «Оновити».
Крок 2: Папка з назвою 'test-output' повинна бути створена в проекті на рівні папки 'src'. Розгорніть папку «test-output» та відкрийте файл «emailable-report.html» за допомогою браузера Eclipse. Файл HTML відображає результат недавнього виконання.
Крок 3: Звіт HTML повинен бути відкритий у середовищі затемнення. Зверніть увагу на зображення нижче.
Оновіть сторінку, щоб побачити результати нових виконань, якщо такі є.
Встановлення пріоритету в TestNG
Фрагмент коду
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
Проходження коду
Якщо тестовий сценарій складається з декількох методів тестування, пріоритет виконання та послідовність можуть бути встановлені за допомогою анотації TestNG “@Test” та встановлення значення параметра “приоритет”.
У наведеному вище фрагменті коду всі методи коментуються за допомогою @Test, а пріоритети встановлюються на 0, 1 і 2. Таким чином, порядок виконання, в якому будуть виконуватися методи тестування, такий:
- Метод1
- Метод2
- Метод3
Підтримка анотацій
Існує ряд анотацій, наданих у TestNG та JUnit. Тонка різниця полягає в тому, що TestNG надає ще кілька попередніх анотацій до JUnit.
Анотації TestNG
Нижче наведено список найбільш корисних та сприятливих анотацій у TestNG:
Анотація | Опис |
---|---|
@Після занять | Анотація повідомляє систему, що метод, позначений як @AfterClass, повинен бути виконаний після виконання останнього методу тестування в тому ж класі тесту. |
@ Тест | Анотація повідомляє систему, що метод, позначений як @Test, є тестовим методом |
@BeforeSuite | Анотація повідомляє систему, що метод, позначений як @BeforeSuite, повинен бути виконаний перед виконанням тестів у всьому наборі |
@AfterSuite | Анотація повідомляє систему, що метод, позначений як @AfterSuite, повинен бути виконаний після виконання тестів у всьому наборі |
@BeforeTest | Анотація повідомляє систему, що метод, позначений як @BeforeTest, повинен бути виконаний перед виконанням будь-якого методу тестування в тому самому класі тесту |
@AfterTest | Анотація повідомляє систему, що метод, позначений як @AfterTest, повинен бути виконаний після виконання будь-якого методу тестування в тому ж класі тесту. |
@BeforeClass | Анотація повідомляє систему, що метод, позначений як @BeforeClass, повинен бути виконаний перед виконанням першого тестового методу в тому самому класі тесту |
@BeforeMethod | Анотація повідомляє систему, що метод, позначений як @BeforeMethod, повинен бути виконаний перед виконанням будь-якого та кожного методу тестування в одному і тому ж класі тесту. |
@AfterMethod | Анотація повідомляє систему, що метод, позначений як @AfterMethod, повинен бути виконаний після виконання будь-якого та кожного тестового методу в тому самому класі тесту |
@BeforeGroups | Анотація повідомляє систему, що метод, позначений як @BeforeGroups, є методом конфігурації, який включає групу і який повинен бути виконаний перед виконанням першого тестового методу групи |
@AfterGroups | Анотація повідомляє систему, що метод, позначений як @AfterGroups, є методом конфігурації, який включає групу і який повинен бути виконаний після виконання останнього тестового методу групи |
Примітка : Багато з вищезазначених анотацій також можна виконувати в JUnit 3 та JUnit 4 framework.
Висновок
За допомогою цього підручника ми спробували ознайомити вас із тестовою структурою на основі Java, яка називається TestNG. Ми розпочали сесію з встановлення фреймворку і перейшли до створення сценаріїв та розширення тем. Ми обговорили всі анотації, надані TestNG. Ми реалізували та виконали наш перший тест-скрипт TestNG, використовуючи анотації та твердження.
Короткий зміст статті:
- TestNG - це прогресивна система, розроблена таким чином, щоб використовувати переваги як розробників, так і тестувальників.
- TestNG - це фреймворк з відкритим кодом, який поширюється під ліцензією програмного забезпечення Apache і легко доступний для завантаження.
- Вважається, що TestNG перевершує JUnit через його попередні можливості.
- Особливості TestNG
- Підтримка анотацій
- Методика попереднього виконання, яка не вимагає створення наборів тестів
- Підтримка параметризації
- Підтримка тестування на основі даних за допомогою постачальників даних
- Встановлення пріоритетів виконання для методів тестування
- Підтримує безпечне середовище під час виконання декількох потоків
- Легко підтримує інтеграцію з різними інструментами та плагінами, такими як інструменти побудови (Ant, Maven тощо), інтегроване середовище розробки (Eclipse).
- Сприяє користувачеві ефективними засобами генерації звітів за допомогою ReportNG
- Переваги TestNG перед JUnit
- Додано заздалегідь та прості анотації
- Можуть бути встановлені схеми виконання
- Одночасне виконання тестових скриптів
- Можна встановити залежності тестового випадку
- TestNG знаходиться у вільному доступі і може бути легко встановлений в IDE Eclipse за допомогою Eclipse Market.
- Після встановлення TestNG буде доступний як бібліотека в середовищі Eclipse.
- Створіть новий проект Java і налаштуйте шлях збірки за допомогою бібліотеки TestNG.
- Створіть новий клас TestNG, розширивши створений проект TestNG і перейдіть до папки “src”. Клацніть правою кнопкою миші на пакунку “src” та перейдіть до New -> Other. Виберіть опцію класу TestNG.
- @Test - одна з анотацій, надана TestNG. Ця анотація дозволяє виконанню програми знати, що метод, позначений як @Test, є тестовим методом. Щоб мати змогу використовувати різні анотації TestNG, нам потрібно імпортувати пакет “ імпорт org.testng.annotations. * ”.
- Немає необхідності в методі main () під час створення тестових скриптів за допомогою TestNG.
- Ми використовуємо клас Assert, порівнюючи очікуване та фактичне значення. Клас Assert використовується для проведення різних перевірок. Щоб мати можливість використовувати різні твердження, нам потрібно імпортувати “ імпорт org.testng.Assert ”.
- Якщо тестовий сценарій складається з декількох методів тестування, пріоритет виконання та послідовність можуть бути встановлені за допомогою анотації TestNG “@Test” та встановлення значення параметра “приоритет”.
- TestNG має можливість автоматично створювати звіти про виконання тесту, які можна прочитати. Ці звіти можна переглядати в будь-якому з браузерів, а також переглядати за допомогою вбудованої підтримки браузера Eclipse.
Наступний підручник No13 : Продовжуючи майбутні підручники з серії Selenium, ми зосередимося на обробці різних типів веб-елементів, доступних на веб-сторінках. Отже, у наступному навчальному посібнику ми зосередимо свою увагу на 'випадаючих списках' і будемо застосовувати їх стратегії обробки. Ми також обговоримо клас Select WebDriver та його методи вибору значень у випадаючих списках.
Зауваження для читачів : Поки наш наступний підручник із серії Selenium перебуває в режимі обробки, читачі можуть почати створювати власні базові сценарії WebDriver, використовуючи фреймворк TestNG.
Щоб отримати додаткові сценарії та концепції, включіть якомога більше анотацій та тверджень у свої класи TestNG і виконуйте їх за допомогою середовища TestNG. Також проаналізуйте звіти HTML, створені TestNG.
Рекомендована література
- Як використовувати Firebug для створення сценаріїв селену - Підручник селену No4
- Вступ до JUnit Framework та його використання в сценарії селену - Підручник з селену No11
- Дізнайтеся, як використовувати анотації TestNG у селені (з прикладами)
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver
- Як знайти елементи в браузерах Chrome та IE для побудови сценаріїв селену - Підручник з селену No7
- Створення Framework селену та доступ до тестових даних з Excel - Підручник селену №21
- Створення дженериків та тестів - Підручник з селену №22
- Поглиблені підручники Eclipse для початківців