Запускается авто тест, все идет по плану, и тут на странице ошибка вываливается. Как сделать скриншот и записать его куда-нить.
Лично меня спасает в таком случае allure, а именно подключение allure-адаптера к Nunit и последующая прогонка тестов через Nunit GUI/console.
Есть еще вот такой вот солюшен - актуален для C# но принцип понятен и можно заюзать в других языках (Screenshot on test failure)
Не могли бы описать, что вы используете? Язык, фреймворк?
Java + JUnit
Если JUnit, то можно написать Listener, который extends RunListener.
И в методе public void testFailure(Failure failure) добавить возможность снятия скриншотов
На форуме есть подобные методы, но для TestNG. Думаю реализация не должна сильно отличаться
Попробуйте библиотеку Selenide - она делает скриншоты автоматически.
Идеально совмещается с Java+JUnit.
Или попробуйте thucydides там тоже есть sreenshot only For failure +запись в репорт
Попробуйте создать метод в базовом классе, который наследуют все тесты, с анотацией @After.
И добавить в нём проверку успешности теста (не силён в Junit, но что-то такое толжно быть wasSuccessful()).
WebDriver отлично умеет делать скриншоты.
В теле проверки, если тест не успешен, то делать так.
File scrFile = ((TakesScreenshot) DRIVER).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(scrFile, destinationFilePath + “.png”)));
}
catch (IOException e) {
e.printStackTrace();
}
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