Пишем видео во время прогона тестов
В этой заметке показан пример того, как можно реализовать запись видео во время прогона Selenium тестов.
Да-да, вы не ошиблись, будем рассматривать именно запись видео. Зачем? Бывают ситуации, когда скриншотов не достаточно. К тому же, скриншоты есть у всех, а вот видео - это уже интересно. Реализовать такую киллер-фичу в вашем фреймворке можно разными способами. Я покажу пример с использованием библиотеки Monte Screen Recorder.
Информацию об этой библиотеке можно почитать на сайте. На главной странице, в разделе Downloads, скачиваем MonteScreenRecorder.jar Этой библиотеки нету в центральном Maven репозитории, поэтому, если у вас Maven проект, придётся добавить библиотеку самостоятельно. Пример команды, которая в этом поможет, приведен ниже. Просто нужно открыть консоль и там набрать команду:
mvn install:install-file -Dfile=MonteScreenRecorder.jar -DgroupId=org.monte -DartifactId=monte-screen-recorder -Dversion=0.7.7 -Dpackaging=jar
Теперь можно подключить monte-screen-recorder как простую зависимость. Идем в pom.xml и прописываем там следующие строки:
<dependency>
<groupId>org.monte</groupId>
<artifactId>monte-screen-recorder</artifactId>
<version>0.7.7</version>
</dependency>
Создадим класс VideoRecord:
package com.pages.recorder;
import java.awt.*;
import org.monte.screenrecorder.ScreenRecorder;
public class VideoRecord {
private static ScreenRecorder screenRecorder;
public static void startRecording() throws Exception {
GraphicsConfiguration gc = GraphicsEnvironment
.getLocalGraphicsEnvironment().getDefaultScreenDevice()
.getDefaultConfiguration();
screenRecorder = new ScreenRecorder(gc);
screenRecorder.start();
}
public static void stopRecording() throws Exception {
screenRecorder.stop();
}
}
В этом классе у нас есть два метода startRecording и stopRecording. Их-то мы и будем использовать для управления записью видео.
@Before
public void setUpMethod() throws Exception {
VideoRecord.startRecording();
}
@Test
public void shouldBeErrorMessage() {
mainPage.open();
mainPage.login("adasd", "asdasd");
String err = mainPage.getErrorMsg();
assertThat(err, equalTo("Не вірний логін або пароль. Спробуйте знову."));
}
@After
public void stop() throws Exception {
VideoRecord.stopRecording();
}
По умолчанию записи будут сохраняться в папку ${user.dir}/Movies(Мои Видеозаписи). Собственно, на этом все. Хороших вам роликов и до встреч =)