При выполнении тестов может возникнуть такая неприятная ситуация, тест как будто бы провален, но нет ясности о причинах провала теста.
В такой ситуации нам бы очень помогла запись того как исполнялся тест.
Слава богу есть такая возможность )))))
Нам следует обратиться вот к этому проекту.
Собственно весь проект нам не нужен. Скачиваем файлы screen-recorder-r2.2.jar и screen-player-r2.2.jar.
Добавляем их в build path нашего проекта с тестами.
Создаем в проекте класс Recorder.
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.one.stone.soup.screen.recorder.DesktopScreenRecorder;
import org.one.stone.soup.screen.recorder.ScreenRecorder;
import org.one.stone.soup.screen.recorder.ScreenRecorderListener;
public class Recorder implements ScreenRecorderListener {
private ScreenRecorder recorder;
public void start(String filename) throws FileNotFoundException {
FileOutputStream oStream = new FileOutputStream(filename);
recorder = new DesktopScreenRecorder(oStream, this);
recorder.startRecording();
}
public void stop() {
recorder.stopRecording();
}
public void frameRecorded(boolean fullFrame) throws IOException {
}
public void recordingStopped() {
}
}
Данный класс при вызове метода start() будет записывать все что происходит на рабочем столе, до момента пока мы не вызовем stop().
Все это очень хорошо укладывается в тесты при использовании TestNG и его методов @AfterMethod и @BeforeMethod
После того как тест прошел и файл с записью создан мы можем проиграть его с помощью проигрывателя
java- -jar screen-player.jar (file-name)
В такой ситуации нам бы очень помогла запись того как исполнялся тест.
Слава богу есть такая возможность )))))
Нам следует обратиться вот к этому проекту.
Собственно весь проект нам не нужен. Скачиваем файлы screen-recorder-r2.2.jar и screen-player-r2.2.jar.
Добавляем их в build path нашего проекта с тестами.
Создаем в проекте класс Recorder.
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.one.stone.soup.screen.recorder.DesktopScreenRecorder;
import org.one.stone.soup.screen.recorder.ScreenRecorder;
import org.one.stone.soup.screen.recorder.ScreenRecorderListener;
public class Recorder implements ScreenRecorderListener {
private ScreenRecorder recorder;
public void start(String filename) throws FileNotFoundException {
FileOutputStream oStream = new FileOutputStream(filename);
recorder = new DesktopScreenRecorder(oStream, this);
recorder.startRecording();
}
public void stop() {
recorder.stopRecording();
}
public void frameRecorded(boolean fullFrame) throws IOException {
}
public void recordingStopped() {
}
}
Данный класс при вызове метода start() будет записывать все что происходит на рабочем столе, до момента пока мы не вызовем stop().
Все это очень хорошо укладывается в тесты при использовании TestNG и его методов @AfterMethod и @BeforeMethod
После того как тест прошел и файл с записью создан мы можем проиграть его с помощью проигрывателя
java- -jar screen-player.jar (file-name)
Привет! Можете написать какой код должен быть в @AfterMethod и @BeforeMethod, никак не получается запустить тест =(
ОтветитьУдалитьКод должен быть примерно такой
ОтветитьУдалитьpublic class Tests{
private Recorder rec = new Recorder();
@BeforeMethod
public void beforeMethod(){
rec.start("test");
}
@AfterMethod
public void afterMethod(){
rec.stop();
}
public void test1(){
///tests
}
}
Тест прошел, но видео нигде нету, пробовал прописать абсолютный путь: rec.start("D:\\testvideo");
ОтветитьУдалитьНичего не помогло =(
А где оно по умолчанию должно сохранять если путь не указывать!?
По умолчанию если путь не задан файлы создаются в корне проекта.
УдалитьКак то можно с конвертировать данное видео в какой-то другой формам ?
ОтветитьУдалитьМожет есть плеер который может перематывать а не только ускорять видео ?
С конвертировать в mov можно используя recording-converter-r1.1.jar качать отсюда http://code.google.com/p/java-remote-control/.
УдалитьИнструкция тут http://java-screen-recorder.googlecode.com/svn-history/r2/trunk/readme.txt
Для того чтоб с конвертировать надо поставить Java Media Framework (JMF) иначе будет выдавать ошибку.
Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/Controlle
rListener