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
Преди да отворите който и да е файл, е полезно да знаете какво всъщност съдържа папката test-output. TestNG записва няколко артефакта при всяко изпълнение и всеки от тях отговаря на различен въпрос.
| Файл или папка | Какво съдържа | Когато е полезно |
| index.html | Докладът за кацане, който е свързан с резултатите, групите, времената и изгледите на докладчика. | Разглеждам подробно едно бягане. |
| имейл-отчет.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:
По подобен начин резултатът за Class DemoA ще изглежда така:
Метод-2: index.html
- Щракнете с десния бутон върху index.html от директорията на проекта.
- Изберете опция за отваряне с опция за уеб браузър. Той ще покаже резултата в следния ред.
Екранната снимка по-долу показва как index.html се отваря от директорията на проекта.
Резултатът ще изглежда така:
Метод-3: Репортерски клас
Заедно с тези TestNG отчет генерирани методи, можете да използвате файла object.properties за съхраняване на генерираните от системата регистрационни файлове, както и генерирани от потребителя регистрационни файлове. Но един от най-простите начини за съхраняване на информация в журнала при тестване е използването Репортерски клас.
Reporter.влезте Selenium е клас присъства в TestNG за Selenium отчитане. Той предоставя 4 различни метода за съхраняване на информация от журнала, те са:
- Reporter.log(низ s);
- Reporter.log(String s, Boolean logToStandardOut);
- Reporter.log(Низ s, int ниво);
- Reporter.log(String s, int level, Boolean logToStandardOut);
Вторият аргумент решава дали съобщението се показва както в конзолата, така и в отчета, а аргументът „level“ контролира нивото на детайлност, с което се запазва съобщението.
Пример:
Създайте два класа като DemoA и DemoB и напишете следния код вътре в класовете.
За Class DemoA;
- - Code за DemoA вече е обяснено по-горе. Тук използвате log метод на клас Reporter. (За да имплементирате собствен клас за отчитане, класът трябва да имплементира интерфейса org.testng.IReporter.)
- Методът log е статичен метод на класа Reporter. Така че имате достъп до този метод чрез класа Reporter.
- Методът на журнала се използва за съхраняване на информация от журнала, която е записана вътре в програмата. Като прегледате информацията в журнала, лесно ще разберете къде точно е спряно изпълнението на програмата.
Екранната снимка по-долу показва извикванията на Reporter.log, поставени в класа DemoA.
За клас DemoB:
- Сега създайте файл testng.xml, като изберете тези два класа и
- Изберете изпълнение като и
- Кликнете върху конвертиране в testng.
- След това стартирайте този файл testng.xml, като изберете изпълнение като и изберете testng suite.
- След това обновете проекта, отворете папката за тестови изходи.
- В папката test-output отворете emailable-report.html. Ще изглежда така:
По същия начин ще имате и изход за проект Demo B.
- В папката test-output отворете index.html. Той ще изглежда така:
Кликнете върху изхода на репортера. Той ще отвори информация за регистриране, каквото е написано в тестовите методи.
Кликнете върху Times. Ще покаже колко време е отнело изпълнението на тестовия метод, присъстващ в класа TestNG инструменти за отчитане.
Как да персонализирате TestNG Отчети с ITestListener и IReporter
Трите метода по-горе използват каквото и да е TestNG произвежда по подразбиране. Когато екипът се нуждае от различно оформление, допълнителни полета или изглед на напредъка в реално време, TestNG предоставя две точки на разширение, вместо да ви моли да поправите отчета по подразбиране.
- ITestListener се уведомява в реално време, когато всеки тест започне, премине успешно, неуспешно или бъде пропуснат. Използвайте го, когато информацията трябва да бъде заснета в момента на настъпване на събитието - например екранна снимка при неуспех.
- IReporter получава известие веднъж, след като всеки пакет е завършил, и получава обекти, описващи цялото изпълнение. Използвайте го, когато резултатът е завършен документ, като например 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 suite, който вече сте създали за 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 Отчети по подразбиране срещу ExtentReports срещу Allure
Стандартните отчети са достатъчни за малък пакет, но не съдържат история и нямат графики. Две библиотеки с отворен код обикновено се добавят, когато пакетът расте, и двете работят с TestNG.
| Способност | TestNG подразбиране | Отчети за степента | Доклад за чар |
| Усилие за настройка | Няма — генерира се автоматично | Добавете библиотеката и напишете кода на репортера | Добавете адаптера, след което генерирайте отчета от резултатите |
| Диаграми и табла за управление | Не | Да | Да |
| Снимки | Само чрез маркировката на Reporter.log | Вграден API за прикачени файлове | Вграден API за прикачени файлове |
| История и тенденции на бягане | Не | Чрез опционалния сървърен компонент | Да, от съхранените предишни резултати |
| Покритие на рамката | TestNG само за лична употреба | Java и .NET | Независим от рамката |
Започнете със стандартните отчети, докато пакетът е малък. Преминете към Отчети за степента когато заинтересованите страни поискат четливи табла за управление и да Доклад за чар когато историята на нестабилните тестове в различните компилации стане въпрос, който има значение. Който и да изберете, отчетът обикновено се публикува от заданието за компилация, което е обхванато в Jenkins непрекъсната интеграция настойнически.












