TestNG Генерация отчетов в Selenium: Как генерировать?
⚡ Умное резюме
TestNG Отчеты представляют собой файлы результатов в формате HTML по умолчанию, которые TestNG После каждого запуска программа записывает данные в папку test-output, указывая, какие тестовые случаи прошли успешно, не прошли или были пропущены, а также любые логи Reporter.

Каковы TestNG Отчеты?
TestNG Согласно отчетам — это отчеты HTML по умолчанию, которые генерируются после выполнения тестовых случаев с использованием TestNG. Эти отчеты помогут вам найти информацию о тестовых примерах и состоянии проекта. TestNG отчеты в Selenium Для каждого метода тестирования запишите три результата — «пройдено», «не пройдено» и «пропущено», — чтобы вы могли быстро проверить данные по тестовым случаям.
Создание отчетов очень важно как при автоматическом, так и при ручном тестировании.
- Глядя на результат, вы можете легко определить, сколько тестовых случаев пройдено, не пройдено и пропущено.
- Прочитав отчет, вы узнаете, каков статус проекта.
Selenium WebDriver используется для автоматизации веб-приложения, но сам по себе не генерирует никаких отчетов.
- TestNG создаст отчет по умолчанию.
- При выполнении файла testng.xml и обновлении проекта вы получите папку test-output, в которой будут храниться результаты отчетов. TestNG.
- Щелкните правой кнопкой мыши на файле emailable-report.html и выберите опцию «Открыть в веб-браузере».
Примечание: Описанное здесь поведение остается неизменным в TestNG Релизы 7.x. TestNG Для версий 7.6 и выше требуется JDK 11 или выше, поэтому для более старых проектов может потребоваться повышение уровня JDK перед формированием отчетов.
Виды TestNG Отчеты находятся в папке с результатами тестирования.
Перед открытием любого файла полезно знать, что именно содержит папка test-output. TestNG При каждом запуске программа записывает несколько артефактов, и каждый из них отвечает на разный вопрос.
| Файл или папка | Что в нём содержится | Когда это полезно |
| index.html | Отчет о результатах поиска, содержащий ссылки на разделы с результатами, группами, временем и выходными данными от репортера. | Детальный анализ одного из запусков. |
| emailable-report.html | Единая, самодостаточная страница, содержащая сводную информацию о пройденных, неудачных и пропущенных методах для каждого класса. | Делимся результатами с теми, кто не открывает проект. |
| testng-results.xml | Машинночитаемый XML-код, созданный встроенным XML-репортером, содержащий информацию о статусе и продолжительности каждого метода. | Передача данных на панель мониторинга или в пользовательский парсер. |
| junitreports | JUnit-форматировать XML-файлы, по одному на каждый тестовый класс. | Любой плагин CI, который считывает JUnit Формат результатов. |
| testng-failed.xml | Сгенерированный файл с набором тестов, в котором перечислены только методы, вызвавшие сбой. | Повторный запуск только тех случаев, когда возникли ошибки, а не всего набора тестов. |
В этом руководстве далее открываются два HTML-файла, поэтому пошаговое руководство начинается с файла emailable-report.html.
Как создавать отчеты в Selenium
Метод 1: emailable-report.html.
- Нажмите на опцию «emailable-report.html».
- Нажмите на опцию веб-браузера.
На скриншоте ниже показано открытие файла emailable-report.html из папки test-output.
Выходные отчеты в TestNG отчет будет выглядеть следующим образом, если переданы оба класса:
Рассмотрим сценарий, в котором вы намеренно проваливаете тестовый пример, то есть класс DemoB. Затем преобразуйте оба класса в файл пакета testng.xml и запустите его. Тогда результат будет выглядеть так. Это покажет неудачные тестовые случаи.
Это результат для класса DemoB:
Аналогично, результат для класса DemoA будет выглядеть следующим образом:
Способ 2: index.html.
- Щелкните правой кнопкой мыши index.html в каталоге проекта.
- Выберите вариант открытия с помощью веб-браузера. Он отобразит результат в следующем порядке.
На скриншоте ниже показано открытие файла index.html из каталога проекта.
Результат будет выглядеть так:
Метод 3: Класс репортера
Наряду с этим TestNG методы создания отчетов, вы можете использовать файл object.properties для хранения журналов, созданных системой, а также журналов, созданных пользователем. Но один из самых простых способов сохранить информацию журнала при тестировании — использовать Класс репортера.
Репортер.войти Selenium это класс, присутствующий в TestNG для Selenium составление отчетов. Он предоставляет 4 различных метода хранения информации журнала:
- Reporter.log(String s);
- Reporter.log(String s, Boolean logToStandardOut);
- Reporter.log(String s, уровень int);
- Reporter.log(String s, уровень int, логическое значение logToStandardOut);
Второй аргумент определяет, будет ли сообщение выводиться на консоль вместе с отчетом, а аргумент уровня управляет уровнем детализации сообщения.
Пример:
Создайте два класса, например DemoA и DemoB, и напишите внутри них следующий код.
Для класса DemoA;
- Code Для DemoA это уже объяснено выше. Здесь вы используете log метода класса Reporter. (Для реализации собственного класса для создания отчетов, класс должен реализовывать интерфейс org.testng.IReporter.)
- Метод log — это статический метод класса Reporter. Итак, вы получаете доступ к этому методу через класс Reporter.
- Метод log используется для хранения информации журнала, записываемой внутри программы. Просматривая информацию журнала, вы легко узнаете, где именно остановлено выполнение программы.
На скриншоте ниже показаны вызовы Reporter.log, размещенные внутри класса DemoA.
Для класса DemoB:
- Теперь создайте файл testng.xml, выбрав эти два класса и
- Выберите запуск как и
- Нажмите «Преобразовать в testng».
- Затем запустите этот файл testng.xml, выбрав «Запустить от имени» и выберите пакет testng.
- Затем обновите проект, откройте папку тестовых результатов.
- В папке результатов теста откройте файл emailable-report.html. Это будет выглядеть так:
Аналогично, у вас также будет результат для проекта Demo B.
- В папке test-output откройте файл index.html. Он будет выглядеть примерно так:
Нажмите на вывод репортера. Он откроет информацию о журнале, написанную в методах тестирования.
Нажмите на «Таймс». Он покажет, сколько времени потребовалось для запуска тестового метода, присутствующего в классе, с использованием TestNG инструменты отчетности.
Как настроить TestNG Отчеты с использованием ITestListener и IReporter
Три описанных выше метода используют любые из перечисленных вариантов. TestNG Создается по умолчанию. Если команде требуется другой макет, дополнительные поля или отображение прогресса в реальном времени, TestNG Предоставляет две точки расширения, вместо того чтобы предлагать вам вносить изменения в стандартный отчет.
- ITestListener Получайте уведомления в режиме реального времени о начале, успешном прохождении, неудаче или пропуске каждого теста. Используйте эту функцию, когда необходимо зафиксировать информацию в момент события — например, сделать снимок экрана при неудаче.
- Репортер Получает уведомление один раз, после завершения каждого набора тестов, и объекты, описывающие весь процесс. Используйте его, когда результатом является готовый документ, например, PDF-файл или пользовательская HTML-страница.
Обработчик событий, который передает каждый результат в отчет через класс Reporter, выглядит следующим образом.
import org.testng.ITestListener; import org.testng.ITestResult; import org.testng.Reporter; public class ReportListener implements ITestListener { @Override public void onTestSuccess(ITestResult result) { Reporter.log("PASSED: " + result.getName(), true); } @Override public void onTestFailure(ITestResult result) { Reporter.log("FAILED: " + result.getName(), true); } @Override public void onTestSkipped(ITestResult result) { Reporter.log("SKIPPED: " + result.getName(), true); } }
Регистрация слушателя выполняется в том же файле testng.xml, который вы уже создали для DemoA и DemoB.
<suite name="Demo Suite"> <listeners> <listener class-name="ReportListener" /> </listeners> <test name="Demo Test"> <classes> <class name="DemoA" /> <class name="DemoB" /> </classes> </test> </suite>
Для экспериментов стоит знать два параметра командной строки. -d Эта опция изменяет каталог, в который записываются отчеты, и -usedefaultlisteners false Отключает встроенные средства репортажей, так что работает только ваш собственный обработчик событий. Оба варианта описаны в официальном документе. TestNG Ведение журнала и документирование результатовВ нем также описаны свойства, принимаемые встроенным XML-репортером.
Слушатель регистрируется один раз, а затем применяется ко всем классам в наборе, поэтому это особенно важно для больших команд. автоматизация тестирования В тестовых наборах обычно предпочитают этот способ добавлению строк лога к каждому методу тестирования вручную.
TestNG Default Reports vs ExtentReports vs Allure
Стандартных отчетов достаточно для небольшого пакета программ, но они не содержат истории изменений и диаграмм. При расширении пакета обычно добавляются две библиотеки с открытым исходным кодом, и обе они совместимы с... TestNG.
| Возможности | TestNG по умолчанию | ЭкстентОтчеты | Отчет о соблазнении |
| Усилия по настройке | Нет — производится автоматически | Добавьте библиотеку и напишите код для создания отчета. | Добавьте адаптер, затем сгенерируйте отчет на основе результатов. |
| Диаграммы и панели мониторинга | Нет | Да | Да |
| Скриншоты | Только через разметку Reporter.log | Встроенный API для прикрепления файлов | Встроенный API для прикрепления файлов |
| История и тенденции бега | Нет | Через дополнительный серверный компонент | Да, на основе сохраненных предыдущих результатов. |
| Покрытие структуры | TestNG Важно | Java и .NET | Независимость от фреймворка |
Начните с отчетов по умолчанию, пока набор отчетов невелик. Затем перейдите к следующему этапу. ЭкстентОтчеты когда заинтересованные стороны запрашивают понятные панели мониторинга, и для Отчет о соблазнении Когда вопрос о нестабильной истории тестирования в разных сборках становится действительно важным. Какой бы вариант вы ни выбрали, отчет обычно публикуется заданием сборки, что описано в соответствующем разделе. Jenkins непрерывная интеграция учебное пособие.












