20 most popular testng interview questions
Найпопулярніші запитання та відповіді на інтерв’ю з TestNG із прикладами, які допоможуть у підготовці:
Список найпопулярніших та найпоширеніших запитань на інтерв’ю та відповідей на TestNG пояснюється тут, у цій статті.
Прості приклади додаються у відповідних місцях для Вашого легкого розуміння концепції. Я впевнений, що ці запитання допоможуть вам успішно зламати будь-яке співбесіду з TestNG.
Запитання та інтерв’ю, які часто задають
Q # 1) Що таке TestNG?
Відповідь: TestNG - це фреймворк, створений розробниками для виконання модульних тестів у програмі Java.
TestNG також використовується тестувальниками програмного забезпечення для ефективної роботи автоматизованих тестових скриптів, створених у Selenium Webdriver. Повною формою є 'Тестування нового покоління'.
яка фаза аналізу в sdlc
Він натхненний “JUnit”, який є ще однією структурою для модульного тестування програм Java. На додаток до всіх можливостей JUnit, TestNG має нові функції, які роблять його потужнішим.
Q # 2) Як ви встановите TestNG в Eclipse?
Відповідь:
Виконайте наступні кроки, щоб встановити TestNG на Eclipse:
- Перейдіть до Eclipse -> Клацніть на «Довідка» -> Клацніть на «Встановити нове програмне забезпечення».
- Натисніть кнопку «Додати», введіть ім’я (бажано TestNG) у текстовому полі «Далі». Введіть у текстовому полі «Розташування» та натисніть кнопку дії «ОК».
- Установіть прапорець TestNG і натисніть кнопку дії «Далі». Встановлення розпочнеться, а Eclipse перезапуститься після встановлення.
- Клацніть правою кнопкою миші на проекті в Eclipse -> Виберіть шлях збірки -> Налаштувати шлях збірки.
- Виберіть вкладку бібліотеки -> Клацніть на кнопку Додати бібліотеку -> Виберіть TestNG-> Клацніть на Далі -> Клацніть на Готово та Застосувати та закрийте.
Q # 3) Як запустити скрипт TestNG?
Відповідь:
Щоб запустити скрипт TestNG:
Клацніть правою кнопкою миші на класі в Eclipse, натисніть “Запустити як” і виберіть “TestNG test”.
АБО
Натисніть кнопку Виконати безпосередньо на панелі інструментів Eclipse.
Q # 4) Які анотації використовуються у TestNG?
Відповідь: У TestNG є три розділи анотацій:
(i) Анотації до передумов: Ці- це анотації TestNG, які виконуються перед тестом.
@BeforeSuite, @BeforeClass, @BeforeTest, @BeforeMethod - це анотації передумов.
(ii) Тестова анотація: Це анотація, яка згадується лише перед тестом (До методу, написаного для виконання тесту)
@Test - це тестова анотація
(iii) Анотація після умови: Це анотації, які виконуються після тесту. (Після написання методу для виконання тесту)
@AfterSuite, @AfterClass, @AfterTest, @AfterMethod - анотації після умови
Q # 5) Яка послідовність виконання анотацій у TestNG?
Відповідь: Послідовність виконання анотацій така:
@BeforeSuite @BeforeTest @BeforeClass @BeforeMethod @Test @AfterMethod @AfterClass @Aftertest @AfterSuite
Q # 6) Які переваги TestNG?
Відповідь: Переваги TestNG такі:
- Це фреймворк з відкритим кодом, отже, його легко налаштувати.
- Використовуючи TestNG, ми можемо систематично створювати тестові кейси.
- Це дає безліч анотацій, що в свою чергу полегшує створення тестового кейсу.
- За допомогою TestNG можна визначити пріоритети тестів та послідовність виконання.
- Групування можливо за допомогою TestNG.
- Він генерує звіти HTML (Selenium Webdriver не може генерувати тестові звіти самостійно, це допомагає SW досягти цього).
- Параметризація даних можлива за допомогою TestNG.
- На додаток до всіх функціональних можливостей JUnit, TestNG має свої функціональні можливості, що, в свою чергу, робить його більш потужним.
Q # 7) Як встановити пріоритети в TestNG?
Відповідь: У класі завжди є більше одного тесту або методу. Якщо ми не надаємо пріоритет цим тестам або методам, тоді методи вибираються в алфавітному порядку та виконуються під час виконання.
Якщо ми хочемо запускати тести в тій послідовності, яку ми хочемо, тоді нам потрібно встановити пріоритет разом із анотацією @Test.
Це можна зробити наступним чином:
@Test (пріоритет = 1), @Test (пріоритет = 2)
Розглянемо такий приклад:
@Test (priority=2) public void getText() { driver.findElement(By.id(“id”)).getText(); } @Test(priority=1) public void clickelement() { driver.findElement(By.id(“id”)).click(); }
У наведеному вище прикладі clickkelement () буде виконано першим, оскільки пріоритет встановлений на 1.
І getText () буде виконано після clickkelement (), оскільки його пріоритет встановлений на 2.
Q # 8) Як поділитися звітом про проект за допомогою TestNG?
Відповідь: Є кілька способів зробити це:
(i) Після виконання класу TestNG існує одна вкладка, яка називається «Результат запущеного класу», яка генерується поруч із консоллю.
Ми можемо скопіювати це та поділитися ним.
(ii) Після виконання класу TestNG,
- Клацніть правою кнопкою миші на назві проекту та оновіть
- Клацніть на папку “Test-output”
- Клацніть правою кнопкою миші на файлі “index.html” і виберіть властивості
- Скопіюйте посилання біля 'Місцезнаходження'
Ми можемо поділитися цим посиланням, щоб побачити основний звіт про тестування HTML, який генерується TestNG.
Це файл, який автоматично генерується на вашій машині після виконання класу за допомогою TestNG.
Q # 9) Як ви визначите групування в TestNG?
Відповідь: Ми можемо визначити групування в TestNG за допомогою атрибута groups, як показано нижче:
@Test (groups = ”title”)
Q # 10) Що таке залежність від TestNG?
Відповідь: Є кілька методів, від яких залежить багато методів.
Наприклад, Якщо ми хочемо протестувати будь-яку програму, і якщо сторінка входу програми не працює, ми не зможемо протестувати решту сценаріїв.
Отже, LoginTest - це метод, від якого залежить багато тестів.
Отже, ми напишемо так:
@Test(dependsOnMethods=”LoginTest”) Public void homePageLaunched() { }
Наведений вище код показує, що метод homePageLaunched () повністю залежить від методу LoginTest ().
Якщо LoginTest () передано, виконується лише метод homePageLaunched ()
Q # 11) Що таке InvocationCount у TestNG?
Відповідь: Якщо ми хочемо виконати тестовий випадок “n” кількість разів, тоді ми можемо використовувати атрибут invocationCount, як показано в наведеному нижче прикладі.
Приклад:
@Test(invocationCount=8) Public void print() { }
У наведеному вище прикладі метод print () буде виконаний 8 разів.
Q # 12) Що таке timeOut у TestNG?
Відповідь: Якщо будь-який метод у сценарії виконується довго, тоді ми можемо завершити цей метод, використовуючи “timeout” у TestNG.
@Test (таймаут = 5000)
У цьому випадку метод припиняється через 5000 мс (5 секунд), а тест-тест позначається як 'Не вдалося'.
Q # 13) Як обробляти винятки в TestNG?
Відповідь: Якщо є деякі методи, з яких ми очікуємо деяких винятків, то ми можемо згадати про виняток в анотації @Test, щоб тестовий випадок не провалився.
Приклад: Якщо для методу передбачається виняток “numberFormatException”, тоді тестовий випадок не вдасться через цей виняток, якщо не вказано блок try-catch.
Але ми можемо зробити це в TestNG, використовуючи атрибут “ожидаемоевиключення” наступним чином.
@Test (очікуванийException = numberFormatException.class)
Тоді тест буде працювати без збоїв.
Q # 14) Які загальні твердження TestNG?
Відповідь: Поширені твердження TestNG включають:
(i) Assert.assetEquals (рядок фактичний, рядок очікуваний);
- Він приймає два рядки.
- Якщо обидва рядки рівні, тестовий кейс успішно виконується, інакше тестовий кейс не вдається.
(ii) Assert.assertEquals (рядок фактичний, рядок очікуваний, рядок повідомлення)
- Він приймає два рядки.
- Якщо обидва рядки рівні, тестовий кейс успішно виконується, інакше тестовий кейс не вдається.
- Повідомлення друкується, якщо тест не вдався.
(iii) Assert.assertEquals (логічне фактичне, логічне очікуване)
веб-сайти для завантаження відео з YouTube
- Він приймає два булевих значення.
- Якщо обидва логічні значення рівні, тестовий приклад виконується успішно, інакше тестовий варіант не вдається.
(iv) Assert.assertTrue ()
- Він приймає логічне значення.
- Твердження проходить, якщо умовою є True, інакше відображається помилка твердження.
(V) Assert.assertFalse ()
- Він приймає логічне значення.
- Твердження проходить, якщо умова хибна, інакше відображається помилка твердження.
(ми) Assert.assertTrue (, повідомлення)
- Він приймає логічне значення.
- Твердження проходить, якщо умовою є True, інакше помилка твердження відображається із згаданим повідомленням.
(ти йдеш) Assert.assertFalse (, повідомлення)
- Він приймає логічне значення.
- Твердження проходить, якщо умова хибна, інакше помилка твердження відображається із згаданим повідомленням.
Q # 15) Як вимкнути тест у TestNG?
Відповідь:
Щоб вимкнути тест у TestNG, ми повинні використовувати атрибут “enabled” наступним чином:
@Test (увімкнено = 'false')
Q # 16) Які типи тверджень у TestNG?
Відповідь: Для перевірки результатів (передача / невдача), ми повинні використовувати твердження.
У TestNG існує два типи затвердження:
(i) Жорстке твердження:
Hard Assert - це звичайне твердження, яке використовується для перевірки в класі TestNG.
Ми повинні використовувати клас Assert для жорсткого затвердження наступним чином:
Assert.assertEquals (фактичне значення, очікуване значення);
Якщо тверде твердження не вдається, жоден з кодів не виконується після оператора assert.
(ii) М'яке твердження:
Якщо ми хочемо продовжити виконання тесту навіть після того, як твердження assert не вдається, тоді нам доводиться використовувати м'яке утвердження.
Щоб створити м'яке твердження, ми повинні створити об’єкт класу “softAssert” наступним чином:
softAssert sassert = новий softAssert ();
sassert.assertAll ();
Отже, якщо тест не вдається, виконання не припиняється, коли ми використовуємо м'яке затвердження.
Q # 17) Як передати параметр у тестовому випадку через файл testng.xml?
Відповідь: Якщо у нас є клас, у якому визначено метод входу, тоді ми можемо передати параметри входу в цей метод входу з файлу testing.xml
Нам доведеться використовувати анотацію “@parameters” наступним чином:
@Parameters({'user_name','password'}) @Test public void loginapp() { driverget(“appname”); driver.findElement(By.id(“login”)).sendkeys(user_name); driver.findElement(By.id(“password”)).sendkeys(password); }
Тепер перейдіть до файлу testng.xml і введіть туди параметри таким чином:
“suitename” > ”testname” > ”user_name” value= ”user1” /> ”password” value = ”pass1” /> ”passingparameters” />
Q # 18) Для чого потрібно створити файл testng.xml?
Відповідь: Коли ми тестуємо проект за допомогою Selenium Webdriver, у ньому є багато класів. Ми не можемо вибрати ці класи по одному і поставити їх для автоматизації. Отже, нам потрібно створити набір, щоб усі класи працювали в одному тестовому наборі.
Ми можемо досягти цього, створивши файл testing.xml.
Q # 19) Як створити XML-файл у TestNG?
Відповідь: Перейдіть до папки src -> натисніть на файл -> введіть ім'я файлу (переважно написане testing.xml)
Потім натисніть на закінчити.
У нас є порожній файл XML. Тут ми повинні згадати назву проекту та класи, які потрібно виконати разом з назвою пакету, як показано нижче.
'Testing project' > 'testing feature 1' > 'packagename.name of class1' /> 'packagename.name of class1' /> 'packagename.name of class1' /> 'packagename.name of class1' />
Щоб запустити цей файл, нам слід перейти до testng.xml у провіднику пакунків правою кнопкою миші та запустити як -> TestNG suite
Питання # 20) Як кинути виняток SKIP у TestNG?
Відповідь: Якщо ми хочемо СКИПУВАТИ будь-який тест за допомогою тестування, тоді ми повинні використовувати виняток SKIP у TestNG.
Це пишеться так:
public void skipExc() { System.out.println('SKIP me'); throw new skipException(“Skipping skipExc”); } }
Бажаємо усього найкращого для Вашого співбесіди !!
Рекомендована література
- Запитання та відповіді на інтерв’ю
- Запитання для інтерв’ю у Spock (найпопулярніші)
- Топ 20+ запитань та відповідей на інтерв’ю .NET
- Запитання та відповіді на інтерв’ю для тестування ETL
- 20 найважливіших запитань та відповідей на тестування API
- 30 найкращих запитань та відповідей на інтерв’ю з огірками
- 50 найкращих запитань та відповідей на інтерв’ю CCNA
- 40 найкращих запитань та відповідей на інтерв’ю J2EE, які слід прочитати