pbezpal5
(Pavel)
#1
Привет!
Хочу записывать видео тестов, чтобы в будущем прикреплять к отчётам!
Нашел библиотеку, которая вроде как записывает видео
<dependency>
<groupId>com.automation-remarks</groupId>
<artifactId>video-recorder-junit</artifactId>
<version>LATEST</version>
</dependency>
Сам тест
@Story(value = "Авторизации на сервере с некорректным логином и корректным паролем")
@Description(value = "Авторизации на сервере с некорректным логином и корректным паролем")
@DisplayName(value = "Проверка на некорректный логин...")
@Video(name = "Enter_server_wrong")
@Tag(value = "Flaky")
@Test
void test_Wrong_Login() {
windowLogin.setDataFields("ahdasda", "o0cJ2uas", "172.22.50.100");
windowLogin.clickEnterButton();
window = windowLogin.isAvailableWindowWithInvalidCreds();
windowLogin.clickButtonWindowInvalidCreds();
assertTrue("Успешная авторизация на серврее с некорректным логином", window);
}
Но после выполнения теста не вижу в директории проекта никакого видео. Или нужно ещё что-то настраивать?
BabyRoot
(Vasily)
#2
Noksa
(Alexandr D.)
#3
Намного проще юзать селенойд с его рекордером
pbezpal5
(Pavel)
#5
Поменял путь и стало записывать куда мне нужно)
pbezpal5
(Pavel)
#6
Поменять свойства видео можно прямо в коде
System.setProperty("video.folder",".\\Videos");
pbezpal5
(Pavel)
#7
А вот так прикрепляю видео к тестам
@Attachment(value = "{0}", type = "video/mp4")
public byte[] attachVideo(){
try{
String tmpDir = ".\\Videos\\tmp";
String workDir = ".\\Videos";
File video = copyVideo(tmpDir, workDir);
return Files.toByteArray(video);
} catch (Exception ignored) {
return new byte[0];
}
}
public File copyVideo(String tmpDir, String workDir){
File tmpFolder = new File(tmpDir);
File tmpVideo;
File workVideo = null;
String[] listFiles = tmpFolder.list();
for(String file : listFiles){
tmpVideo = new File(tmpDir + "\\" + file);
workVideo = new File(workDir + "\\" + file);
try {
FileUtils.copyFile(tmpVideo, workVideo);
} catch (IOException e) {
e.printStackTrace();
}
if(workVideo.exists() && tmpVideo.length() == workVideo.length()){
tmpVideo.delete();
}
}
return workVideo;
}
Затем в AfterEach вызываю метод
@AfterEach
void tearDown(){ attachVideo(); }