Доброго времени суток всем !
Пытаюсь освоить для себя #reportng . прикрутил его к проекту и получил репорты. Но как дальше их кастомизировать ? Или еще вопрос, который интересует, как в отчет прикрутить линки на скрин, если тест падает ?
Инструкция к ReportNG конечно не ахти. Вот тут Eclipse + TestNG + ReportNG + Webdriver (Grid) - Selenium - Functional Testing - Форум тестировщиков есть ответ на ваш вопрос. Точнее, затравка для изучения.
Если вкратце, то кастомизировать репорты можно через изменение #css-selectors (если нужно только раскрасить), либо через редактирование шаблонов, по которым генерится HTML, если нужно менять структуру репорта.
Для генерации HTML ReportNG использует Apache Velocity, в документации к которому вы сможете ознакомиться с правилами составления этих шаблонов.
Ну например, не выводить в отчете параметры, которые передаются в тест, а выводить например какую-нить свою инфу.
Встроенных средств нет, чтобы кастомизировать. Вам тогда нужно будет самостоятельно дописать код org.uncommons.reportng.HTMLReporter
и поправить шаблоны Apache Velocity, которые уже упоминались.
по поводу скринов в ReportNG можна воспользоваться Листенером, который при падении теста делает скриншот и заносит ссилку на скрин в Reporter.log
public class Screenshot extends TestListenerAdapter {
@Override
public void onTestFailure(ITestResult result) {
File file = new File("");
Reporter.setCurrentTestResult(result);
System.out.println(file.getAbsolutePath());
Reporter.log(file.getAbsolutePath());
//----------------------------------------
Reporter.log("screenshot saved at " + file.getAbsolutePath()
+ "//screenshots//" + result.getName() + ".jpg");
Reporter.log("<a href='../" + result.getName() + ".jpg' <img src='../" + result.getName() + ".jpg' hight='100' width='100'/> </a>");
Reporter.log("screenshot for "+ result +"<div style=\"height:768px; width: 1024px; overflow:scroll\"><img src=\"../"+result.getName() +".png"+"\"></div>", true);
try {
BaseTest.CaptureScreenshot(result.getName());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Reporter.setCurrentTestResult(null);
}
Подключить, как и любой другой слушатель - аннотации / xml / pom.
В целом поднастроил (тут грязно выругался по поводу кол-ва потраченного времени, чтобы разобраться) отчеты. Сейчас в таком виде:
Когда кликаю на ссылку HTML report
получаю такой результат:
где-то что-то недонастроил.
Что могу упустить, куда смотреть? Если говорите гугл или настройки - спасибо, конечно, но желательно поконкретнее.
А вы Dev tools откройте и узрите с десяток ошибок в консоли.
Вообще говоря, проблема уже обсасывалась со всех сторон множество раз. Jenkins с определенной версии ввел новые content security policies, которые по-дефолту запрещают использовать потенциально небезопасный контент.
Ищите темы касательно аналогичных проблем с Allure
. Хотя, дефолтных описанных настроек вам будет скорее всего недостаточно. Придется добавлять доп. опции на уровне конфигурации Jenkins.
Для тех, у кого подобная проблема, нужно:
- Зайти в Главная - Настроить Jenkins - Консоль сценариев
- Ввести в поле:
System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”) - Нажать кнопку “Запустить”
- После этого пересобрать ваш проект заново.
Ссылки по теме:
https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build
Это будет работать до первого перезапуска jenkins
@ArtOfLife, спасибо за наведение, куда копать
мля тогда нужен какой-то конфиг, который будет запоминать эти пропертя
If you run Jenkins on Ubuntu and you want to set this permanently, just edit the file /etc/default/jenkins. Under # arguments to pass to java add the following line:
JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"sandbox; img-src *;\""
или же прописать в файле jenkins.xml:
<arguments>-Xrs -Xmx1048m -XX:MaxPermSize=512m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle "-Dhudson.model.DirectoryBrowserSupport.CSP= " -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
да используйте Allure, он круче
Использовал. Тяжелый он какой-то. И по размеру и по времени формирования отчета. Причем тестов всего ничего было пара-тройка сотен. Возможно, что у нас с ним что-то неправильно было сделано. Так и не стал разбираться. Вынес настройку внешнюю на запуск, где Allure отчет можно было включить/выключить и по-умолчанию отключил его вовсе.
все там нормально ним)