t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

Теги: #<Tag:0x00007f748c018670> #<Tag:0x00007f748c0185a8>

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

Лично меня спасает в таком случае 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.

2 Симпатий

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

1 Симпатия

Попробуйте создать метод в базовом классе, который наследуют все тесты, с анотацией @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