19 лучших вопросов и ответов на собеседовании TestNG (2025 г.)
Вот вопросы и ответы на собеседовании TestNG для новичков, а также для опытных кандидатов, желающих получить работу своей мечты.
1) Что такое TestNG?
TestNG — это автоматизированный фреймворк для тестирования с открытым исходным кодом. Он основан на фреймворке JUnit, но не является его расширением.
Бесплатная загрузка PDF-файла: Вопросы для собеседования TestNG
2) Каковы возможности TestNG?
Возможности TestNG включают в себя
- TestNG использует больше функций ОО (объектно-ориентированного) и Java.
- Он поддерживает тестирование интегрированных классов.
- Поддерживаются различные аннотации
- Отделите код теста времени компиляции от информации о данных/конфигурации времени выполнения.
- Конфигурация во время выполнения является гибкой
- Гибкий плагин API
- Для большей гибкости встраивает BeanShell.
- Поддержка многопоточного тестирования селена
- Поддерживает параллельное тестирование, нагрузочное тестирование, частичный отказ, зависимые методы тестирования.
- После компиляции теста в TestNG можно отправить запрос на запуск всех «внешних» тестов или «медленных», «быстрых», «баз данных».
- Для одного и того же тестового класса поддержка TestNG для нескольких экземпляров
- Для ведения журнала, никаких зависимостей, функции JDK по умолчанию для ведения журнала и среды выполнения.
3) Перечислите преимущества TestNG перед Junit?
Преимущества TestNG перед JUnit включают в себя
- По сравнению с аннотациями JUnit, TestNG легко понять.
- В отличие от JUnit, TestNG не требует объявления @Before Class и @After Class.
- Ограничение имени метода отсутствует в TestNG
- TestNG позволяет легко группировать тестовые примеры, что невозможно в JUnit.
- TestNG поддерживает следующие три дополнительные настройки: @Before/After Suite, @Before/After Test и @Before/After Group.
- TestNG не нужно расширять какой-либо класс
- В TestNG можно параллельно запускать тестовые примеры веб-драйвера Selenium.
- На основе группы TestNG позволяет выполнять тестовые случаи
- TestNG позволяет определять зависимые тестовые случаи; каждый тестовый пример независим от другого тестового примера
4) Каковы основные шаги, необходимые для написания тестов TestNG?
Основные шаги, необходимые для написания TestNG, включают в себя:
- Запишите бизнес-логику вашего теста и вставьте аннотации TestNG в свой код.
- В сборке.XML или test.xml добавьте информацию о вашем тесте
- Запустите TestNG
5) Перечислите различные способы вызова TestNG.
TestNG можно вызывать разными способами, например
- . Затмение
- С муравьем
- Из командной строки
- Использование IntelliJ IDEA
6) Объясните использование файла testng.xml.
Файл test.xml записывает все результаты тестирования в формате XML. Этот файл позволяет легко определить весь ваш набор тестов и их параметры в одном файле, который вы можете проверить в своем репозитории кода или по электронной почте коллегам. Это также позволяет легко извлекать подмножества ваших тестов или разделять несколько конфигураций времени выполнения.
7) Как в TestNG можно отключить тест?
Чтобы отключить ненужный тестовый пример, вы можете использовать аннотации @Test(enabled = false).
8) Что такое тест тайм-аута в TestNG?
Тест Time-Out в TestNG — это не что иное, как время, отведенное на выполнение модульного тестирования. Если модульный тест не завершится в этот конкретный срок, TestNG прекратит дальнейшее тестирование программного обеспечения и отметит его как неудачное.
9) Объясните тест исключений
TestNG позволяет отслеживать обработку исключений в коде. Вы можете проверить, приводит ли код к ожидаемым результатам. Параметр «Ожидаемые исключения» доступен вместе с аннотацией @Test.
10) Что делает «пакетный тест» в TestNG?
«Suite Test» применяется, когда необходимо запустить несколько модульных тестов одновременно. «Suite Test» объединяет эти модульные тесты в один. Для запуска пакета тестов используется XML-файл.
11) Что такое параметризованное тестирование?
Параметризированное тестирование позволяет разработчикам многократно выполнять один и тот же тест, используя разные значения. TestNG позволяет передавать параметры напрямую в тестовые методы двумя способами.
- С помощью test.xml
- С поставщиками данных
12) Как запустить тесты JUnit с помощью TestNG?
Вы можете запускать тесты JUnit с помощью TestNG:
- Размещение библиотеки JUnit в пути к классам TestNG, чтобы она могла находить и использовать классы JUnit.
- Измените программу запуска тестов с JUnit на TestNG в Ant, а затем запустите TestNG в «смешанном режиме». Это приведет к тому, что все ваши тесты будут одинаковыми.
Этот подход также позволяет преобразовать существующий тест JUnit в TestNG.
13) Что означает @Test(infectionCount=?) и (threadPoolSize=?)?
- @Test (threadPoolSize=?): Атрибуты threadPoolSize сообщают TestNG сформировать пул потоков для запуска метода тестирования через несколько потоков. При использовании пула потоков время выполнения метода тестирования значительно сокращается.
- @Test(invoctionCount=?): Счетчик вызовов показывает, сколько раз TestNG должен запускать этот тестовый метод.
14) Каковы различные способы создания отчетов о результатах TestNG?
Существует два способа создания отчета с помощью Test NG:
- Слушатели: Для реализации класса прослушивателя класс должен реализовать интерфейс org.testng./TestListener. Эти классы информируются TestNG во время выполнения, когда тест начинается, заканчивается, пропускается, проходит или не проходит.
- Репортеры: Для реализации класса отчетов класс должен реализовать интерфейс org.testng/Reporter. Когда выполнение всего пакета заканчивается, эти классы вызываются. При вызове этому классу доставляется объект, состоящий из информации всего тестового прогона.
15) Что такое групповой тест в TestNG?
Это новая функция TestNG, которая позволяет распределять методы по соответствующим фрагментам и группировать тестовые методы. С помощью group test можно не только объявлять методы, принадлежащие группам, но и указывать тестовые группы, содержащие другие группы. Группы определяются в файле testing.xml с помощью group test.
16) Какими способами TestNG позволяет указывать зависимости?
TestNG позволяет указывать зависимости двумя способами.
- Использование атрибутов dependOnMethods в аннотациях @Test
- Использование атрибутов dependOnGroups в аннотациях @Test
17) Что это значит, когда вам нужно передавать параметры с помощью поставщиков данных в TestNG?
Когда необходимо передать сложный параметр или параметры, создаваемые в Java, в таких случаях параметры можно передать с помощью поставщиков данных. Для поставщика данных используется аннотация @DataProvider. Эта аннотация имеет только один строковый атрибут, если имя не объявлено; имя поставщика данных автоматически по умолчанию соответствует имени метода. Поставщик данных возвращает массив объектов.
18) Назовите различные методы выполнения тестов в TestNG?
Тесты в TestNG выполняются с использованием класса TestNG. Для запуска тестов в тестовом фреймворке TestNG этот класс является основной точкой входа. Пользователи могут создавать объекты TestNG и вызывать их различными способами, например:
- В уже существующем файле test.xml
- В синтетическом файле test.xml, полностью созданном на Java.
- Непосредственно устанавливая тестовые классы
19) Приведите пример кода TestNG.
package firsttestngpackage; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.*; public class firsttestngfile { public String baseUrl = "http://demo.guru99.com/test/newtours/"; String driverPath = "C:\\geckodriver.exe"; public WebDriver driver ; @Test public void verifyHomepageTitle() { System.out.println("launching firefox browser"); System.setProperty("webdriver.firefox.marionette", driverPath); driver = new FirefoxDriver(); driver.get(baseUrl); String expectedTitle = "Welcome: Mercury Tours"; String actualTitle = driver.getTitle(); Assert.assertEquals(actualTitle, expectedTitle); driver.close(); } }
Эти вопросы для собеседования также помогут вам в устной речи.
Хороший вариант для подготовки к собеседованиям
В вопросе №6 вы написали test.xml вместо testng.xml.
Спасибо... это исправлено
Первая строка третьего вопроса должна быть «Преимущества TestNG перед JUnit».
Спасибо за вопросы.
Ошибка исправлена!
11) Что такое параметрическое тестирование? Должно быть «Что такое параметризованное тестирование?»
Привет, спасибо, что написали. Он пересматривается и обновляется.