免费 Java 库用于自动视频录制
开源 Java 库,可将视频录制器集成到您的 Selenium Grid,捕获远程节点视频,并通过具体的视觉证据分析失败。
什么是视频录制器?
测试用户界面,尤其是在不同浏览器和设备之间,常常像用赤手抓住烟雾一样困难。当测试失败时,你会抓耳挠腮,想知道到底出了什么问题。是时机问题?元素缺失?奇怪的竞争条件?这时 Video Recorder 库就派上用场了——它是一个 Java 工具,只需几个注解即可自动捕获 UI 测试的视频。该库由 Sergey Pirogov 在 GitHub 上提供,通过让开发者添加少量注解或配置,在测试期间自动开始录制,使视频录制变得极其简单。团队无需手动复现 bug,只需观看录制的视频即可了解测试执行期间发生了什么。
Video Recorder 是一个开源的 Java 库,可无缝集成流行的测试框架,如 JUnit 4/5、TestNG 和 Spock。您无需手动启动和停止屏幕录制,只需在测试方法上添加 @Video 注解。库会处理其余工作——在测试运行前启动录制,并在完成后保存视频,通常仅在测试失败时保存(当然您也可以进行其他配置)。该库使用 Monte Media(纯 Java,设置更简单但格式有限)或 FFmpeg(功能更强大,对不同编解码器和屏幕设置支持更好)作为底层录制器。对于远程测试,例如在 Selenium Grid 上,它甚至可以在远程节点上录制视频,而无需额外配置。
视频录制器入门指南
推荐的使用 Video Recorder 库方式是添加 Maven 依赖。请使用以下命令以确保顺利运行。
Video Recorder 库的 Maven 依赖
<dependency> <groupId>com.automation-remarks</groupId> <artifactId>video-recorder-testng</artifactId> <version>LATEST</version> </dependency>安装 documents4j GitHub
implementation 'com.automation-remarks:video-recorder-junit5:2.0'
基于注解的 Java 视频录制
开源 Video Recorder 库的最大优势之一是其基于注解的设计。开发者只需在测试类或方法上添加注解即可启用录制。这减少了样板代码,使得与 JUnit 等 Java 测试框架的集成变得简单。@Video 注解会在测试开始前自动启动录制,并在完成后停止录制。这样带来了诸多好处,例如代码改动最小、易于采用以及更清晰的测试文件。
如何通过 Java 库重新录制基于注解的视频?
import com.automation.remarks.video.annotations.Video;
public class LoginTest {
@Video
public void testLogin() {
System.out.println(\"Executing login test...\");
}
}
ustom Video Naming
通过 Java 库自定义视频命名
开源 Video Recorder 库使 Java 开发者能够为录制文件执行自定义命名规则,帮助团队更高效地组织录制内容。这在运行多个测试套件时尤为有用。它非常实用,提供了更好的文件组织、更加便捷的制品查找以及改进的报告集成等优势。下面是一个展示如何执行此操作的简单示例。
如何通过 Java 库生成视频文件?
@Video(name = \"checkout_flow_test\")
public void checkoutTest() {
System.out.println(\"Checkout process running\");
}
通过 Java 库自定义视频命名
Video Recorder 功能强大,可控制所有方面——从输出文件夹和录制模式(始终、失败时、仅注解的测试)到帧率和屏幕尺寸。可以在类路径下创建 video.properties 文件,或通过 Maven/Gradle 命令行传递参数。这使得能够为本地开发(始终录制)与 CI(仅录制失败)设置不同的录制策略。
如何使用视频录制库应用各种录制属性?
# Only record tests annotated with @Video (default)
video.mode=ANNOTATED
# Save videos only when a test fails (saves disk space)
video.save.mode=FAILED_ONLY
# Output directory – use an environment variable for CI
video.folder=${user.home}/test-reports/videos
# Frame rate – lower for faster processing, higher for smooth playback
video.frame.rate=15
# Use FFmpeg for better codec support
recorder.type=FFMPEG
FFmpeg 集成实现高性能录制
对于高级用户,库可以直接调用 FFmpeg(而不是 Monte Media)。FFmpeg 提供更低的 CPU 使用率、更多的编解码器(H.264、VP9),并且能够录制特定的应用程序窗口或区域。您只需在测试机器上安装 FFmpeg,并在 Windows 上使用 SendSignalCtrlC.exe 实用程序进行优雅停止。