Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Скриншоты ошибок при провале тестов

screenshot
webdriver
Теги: #<Tag:0x00007f7b65161c40> #<Tag:0x00007f7b65161ad8>

(Александр Трофимович) #1

Запускается авто тест, все идет по плану, и тут на странице ошибка вываливается. Как сделать скриншот и записать его куда-нить.


(Eugene Tkachenko) #2

Лично меня спасает в таком случае allure, а именно подключение allure-адаптера к Nunit и последующая прогонка тестов через Nunit GUI/console.

Есть еще вот такой вот солюшен - актуален для C# но принцип понятен и можно заюзать в других языках (Screenshot on test failure)


(sidelnikovmike) #3

Не могли бы описать, что вы используете? Язык, фреймворк?


(Александр Трофимович) #4

Java + JUnit


(James May) #5

Если JUnit, то можно написать Listener, который extends RunListener.
И в методе public void testFailure(Failure failure) добавить возможность снятия скриншотов
На форуме есть подобные методы, но для TestNG. Думаю реализация не должна сильно отличаться


(asolntsev) #6

Попробуйте библиотеку Selenide - она делает скриншоты автоматически.
Идеально совмещается с Java+JUnit.


(Игорь Артемов) #7

Или попробуйте thucydides там тоже есть sreenshot only For failure +запись в репорт


(Nik Sidorenko) #8

Попробуйте создать метод в базовом классе, который наследуют все тесты, с анотацией @After.
И добавить в нём проверку успешности теста (не силён в Junit, но что-то такое толжно быть wasSuccessful()).
WebDriver отлично умеет делать скриншоты.
В теле проверки, если тест не успешен, то делать так.
File scrFile = ((TakesScreenshot) DRIVER).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(scrFile, destinationFilePath + “.png”)));
}
catch (IOException e) {
e.printStackTrace();
}


(Ilya G) #9

Navernoe pozdnovato, no I na svoem proekte ispolzoval TestNG, delus svoei rabotoi i ne tak mnogo koda:

public void screenshotFailure(String filename) throws IOException { File srcFile=driver.getScreenshotAs(OutputType.FILE); File targetFile=new File("./Screenshots/Failure/" + manager.helperBase.generateCurrentDate() + "/" + filename +".jpg"); FileUtils.copyFile(srcFile,targetFile); }

@AfterMethod public void screenShotOnFailure(ITestResult result) throws IOException { if(result.FAILURE == result.getStatus()) your_path_to class_file.screenshotFailure(result.getName()); }

delaet fotografiu ekrana esli test fails