Пишем видео
во время прогона автотестов
Сергей Пирогов
Сергей Пирогов
Senior QA Automation
Testing Center of Excellence
Ciklum
http://automation-remarks.com
@s_pirogov
Нестабильные тесты
Нестабильные UI тесты
Бесконечная гонка между кодом тестов и асинхронностью web страниц
Кривые руки - плохо написанные тесты
Магия которую невозможно понять
Как понять?
Скриншоты
Запись видео, чего хотим
Легко встраиваться в существующие решения
Контроль видео записи для одного конкретного теста
Кроссплатформенность
Существующие решения
Java Video Recorder
Поддерживает :
Интеграция с Allure и Jenkins CI
-
JUnit
-
TestNg
-
Spock
-
Selenium Grid
Интеграция с JUnit
public class JUnitVideoTest {
@Test
public void shouldLogin() {
// test code here
}
}
public class JUnitVideoTest {
@Rule
public VideoRule videoRule
= new VideoRule();
@Video
@Test
public void shouldLogin() {
// test code here
}
}
Поддержка TestNG
public class TestNgVideoTest {
@Test
public void shouldLogin() {
// test code here
}
}
@Listeners(VideoListener.class)
public class TestNgVideoTest {
@Video
@Test
public void shouldLogin() {
// test code here
}
}
Больше интересностей
public class JUnitVideoTest {
@Video (name = "logoutTest")
@Test
public void shouldLogout() {
// test code here
}
}
Можно задать имя видео файла
Настройки
VideoRecorder.conf()
.withVideoFolder("video_folder")
.videoEnabled(true)
.withRecordMode(ANNOTATED)
.withVideoSaveMode(ALL)
.withFrameRate(24);
Можно настроить все на свой вкус
Настройки
Командная строка
mvn test -Dvideo.folder=folder
-Dvideo.enabled=true
-Dvideo.mode=ANNOTATED
-Dvideo.save.mode=ALL
Поддержка Allure отчетов
@Attachment(value = "video", type = "video/mp4")
private byte[] attachment() {
File video = VideoRecorder.getLastRecording();
return readAllBytes(get(video.absolutePath()));
}
Видео можно встраивать в отчет
Влияние на время прогона тестов:
3 Теста с видео : 25,15 sec
3 Теста без видео: 25,109 sec
Размер видео:
5 мин видео ~ 13 МБ
Где теряем
Реальный пример
Результаты
Количество нестабильных тестов уменьшено на 99%
Все для людей
Github
Помощь Selenide
Спасибо!
http://automation-remarks.com
@s_pirogov
Пишем видео во время прогона тестов
By Sergey Pirogov
Пишем видео во время прогона тестов
- 2,364