Использую для автоматизированного тестирования protractor. Запуск идет под Windows.
Сейчас стоит задача видеозаписи прохода тестов в разных браузерах. Желательно, чтобы можно было настраивать запись по следующим параметрам:
Полная запись всего тестового набора
Отдельная запись упавших тестов
Отдельная запись каждого сценария
Включение / отключение субтитров
Все это умеет библиотека protractor-video-reporter.
Но вот никак не могу ее успешно прикрутить. Максимум что получается – это полный файл с субтитрами и пустой видеофайл.
Сделано:
1.вначале была проблемы запуска тестов, они валились с ошибкой, но это решение помогло: Can't run under Windows · Issue #1 · tomyam1/protractor-video-reporter · GitHub
2. прописал ffmpeg в PATH
3. скачал последний ffmpeg и указал его в параметрах protractor-video-reporter
ffmpegCmd: “d:\FFmpeg\ffmpeg.exe”
4. пробовал менять формат сохраняемого видеофайла
Заранее спасибо за ответы.
PS Если есть другие варианты реализации моей задачи, буду благодарен из услышать.
Добрый день, использовал эту бибилиотеку, на macOS и linux всё отлично работало, достаточно было установить ffmpeg. Возможно на видне нужно поиграться с параметрами ffmpegArgs и установив допольнительные кодеки.
Были ещё проблемы с записью в отдельные файлы, решал дл себя, поправив исходный код и cделал PR на это дело. Щас уже вроде пофиксили в новой версии, добавив переменную singleVideoPath, можно либо свою функцию передавать для формирования имени файла, либо использовать full.
По сути вам нужно сделать настраиваемыми эти опции в конфиге для репортера: singleVideo, createSubtitles, saveSuccessVideos. Можете передавать их через перменные окуржения при запуске протрактора либо использовать таск-раннер grunt или gulp для которых уже есть расширения, где можно указывать переменные окружения grunt-env или по типу такого.
Там же в коде x11grab зашит. Вас это не смутило? Для винды наиболее вменяемым аналогом является gdigrab.
Ну и еще один момент касается остановки видео записи. В отличие от того же linux, на винде вы просто так не сможете отправить INT signal для корректной финализации процесса. Тут нужно отправлять ctrl + c сигнал и ждать. В зависимости от качества записи / доступных ресурсов / кол-ва потоков и т.п., это время может значительно отличаться. Т.е. если вы планируете сразу после завершения теста что-то делать с видео записью, придется подождать полного завершения ffmpeg процесса(-ов). Если только соответствующий код не поддерживает асинхронного режима.
Там же в коде x11grab зашит. Вас это не смутило? Для винды наиболее вменяемым аналогом является gdigrab
Вроде как не зашит. Запускают же как-то protractor-video-reporter на Windows.
Для винды наиболее вменяемым аналогом является gdigrab.
Так как не получается сторонние библиотеки, думаю пойти путем прямого вызова gdigrab. В Before передавать в консоль команду запуска записи, а в After команду окончания.
в моем форке описано… https://github.com/caarlos0/jProtractor/README.md
(Using with existing Java projects)
мы поленились с юнит тестами и не попали на maven central - то есть чтобы jprotractor.jar искользовать надо его собрать . пробуйте. пишите если проблемы…
Ну тут имелось в виду, чтобы делать видео по упавшим тестам или по некоторым тестам, которые интересуют по типу вашего video-recorder’a, вот было бы очень круто иметь такой для js-стека.
а кстати объясните пожалуйста в чем преимущество docker решения перед vagrant / virtualbox если хост на windows или на osx ? docker же создает virtualbox инстанс с linux не проще ли сразу в нем пускать java + x server + browser + что по душе стек ?