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

JUnit 5 запись видео теста и где его потом найти

video
reporting
java
webdriver
allure
junit5
Теги: #<Tag:0x00007f21d9916b88> #<Tag:0x00007f21d9916a20> #<Tag:0x00007f21d99168b8> #<Tag:0x00007f21d9916728> #<Tag:0x00007f21d9916548> #<Tag:0x00007f21d99163e0>

(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);
        }

Но после выполнения теста не вижу в директории проекта никакого видео. Или нужно ещё что-то настраивать?


(Vasiliy Rakshin) #2

Судя по конфигурации, в папке ${user home}/video
http://automation-remarks.com/video-recorder-java/


(Alexandr D.) #3

Намного проще юзать селенойд с его рекордером


(Pavel) #4

Попробую)


(Pavel) #5

Поменял путь и стало записывать куда мне нужно)


(Pavel) #6

Поменять свойства видео можно прямо в коде

System.setProperty("video.folder",".\\Videos");

(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(); }