Что дебаг показывает у следующих объектов?
Screenshot scr
BufferedImage originalImage
ByteArrayOutputStream baos
        Что дебаг показывает у следующих объектов?
Screenshot scr
BufferedImage originalImage
ByteArrayOutputStream baos
        Сохраните изображение локально на диск и посмотрите, что там вообще. Может чего с ним не то?
ну это нормально. Это ж bytes
Скриншот в тесте дергаю так
HotelResultsPage hotelResultsPage = taHomePAge.startSearch();
saveScreenshot("Result search");
        Таак. А после чего такая ошибка начала проявляеться?
static byte[] getByteArrayFromImage(BufferedImage image, String format) {
	//saveFileToLog(image, testName, screenshotType);
	LOG.debug("Converting screenshot to byte array for report attachment");
	ByteArrayOutputStream baos = new ByteArrayOutputStream();
	try {
		ImageIO.write(image, format, baos);
		LOG.info("Successfully wrote screenshot to byte array output stream");
	} catch (IOException e) {
		LOG.error("Cannot write screenshot to ByteArrayOutputStream");
	}
	byte[] imageBytes = baos.toByteArray();
	if (imageBytes.length == 0) {
		String errorMessage = "Converted byte array for screenshot is empty.";
		LOG.error(errorMessage);
		throw new RuntimeException(errorMessage);
	}
	LOG.info("Converted image screenshot to byte array. Byte array size is: "
			+ imageBytes.length);
	return imageBytes;
}
Я юзаю етот метод что б дернуть байт масив с имеджа. Все скриншота прикреплени и все работает.
ну и сам метод (просто вибросить нужно ненужние Вам строки)
@Attachment(value = "Browser screenshot after test failed", type = "image/png")
private byte[] createWebBrowserScreenShot(ITestResult result) {
	String currentTestName = TestListenerUtil.getTestName(result);
	BufferedImage image = null;
	LOG.debug("Writing out web browser screenshot on {} test failure",
			currentTestName);
	WebDriver driver = WebDriverFactory.getCreatedWebDriver();
	try {
		// we add this, because sometimes webdriver takes screenshots little
		// bit earlier then needed
		Thread.sleep(1500);
	} catch (InterruptedException e1) {
		LOG.error(e1.getMessage());
	}
	File imageFile = ((TakesScreenshot) driver)
			.getScreenshotAs(OutputType.FILE);
	try {
		image = ImageIO.read(imageFile);
	} catch (IOException e) {
		LOG.error(
				"Cannot read browser screenshot created file and convert it to Buffered Image object for test: "
						+ currentTestName, e);
	}
	saveScreenshotFileToLog(image, currentTestName,
			ScreenShot.BrowserScreen.name(), WebBrowser.getSetWebBrowser());
	return TestListenerUtil.getByteArrayFromImage(image,
			SCREENSHOT_FILE_FORMAT);
}
        Warning или ошибка?
ошибка
То есть вы как то еще и Listener используете?
В момент формирования отчета surfire или Allure. То есть тесты отрабатывают хорошо, а вот при формировании отчета начинаются ошибки.
ну да , ето просто утилитний статический метод, которий в листенере используеться
А как вы листенер запускаете? Как то через maven?
Я имел в виду - после каких действий стала появляться ошибка? Раньше ведь ее не было
http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html
раздел Using Custom Listeners and Reporters
Собственно говоря после добавления метода снятия скриншота и его вызова в тесте
Так. А попробуйте снять скриншот без ашота. Стандартными методами селениума
А метод преобразования можно будет оставить прежний?
@Attachment(type = "image/png")
public byte[] makeScreenshot() {
    return ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
}
Попробую вот так.