Gratis Java-bibliotek för automatisk videoinspelning
Öppet källkods-Java-bibliotek för att integrera Video Recorder i ditt Selenium Grid, fånga videor från fjärrnoder och analysera misslyckanden med konkret visuellt bevis.
Vad är Video Recorder ?
Att testa användargränssnitt, särskilt över olika webbläsare och enheter, kan vara som att försöka fånga rök med bara händerna. När ett test misslyckas sitter du där och kliar dig i huvudet och undrar vad som gick fel. Var det ett tidsproblem? Ett saknat element? Ett konstigt race‑condition? Det är här Video Recorder‑biblioteket kommer in – ett Java‑verktyg som automatiskt fångar video av dina UI‑tester med bara ett par annotationer. Biblioteket, som finns på GitHub av Sergey Pirogov, gör videoinspelning extremt enkelt genom att låta utvecklare lägga till några få annotationer eller konfigurationer för att starta inspelning automatiskt under testerna. Istället för att manuellt reproducera buggar kan team helt enkelt titta på de inspelade videorna för att förstå vad som hände under testkörningen.
Video Recorder är ett open‑source Java‑bibliotek som integreras sömlöst med populära test‑ramverk som JUnit 4/5, TestNG och Spock. Istället för att manuellt starta och stoppa skärminspelningar lägger du helt enkelt till en @Video‑annotation i dina testmetoder. Biblioteket sköter resten – initierar inspelning innan ditt test körs och sparar videon vid slutförandet, vanligtvis endast när ett test misslyckas (men du kan konfigurera det annorlunda). Biblioteket använder antingen Monte Media (ren Java, enklare installation men begränsade format) eller FFmpeg (kraftfullare, bättre stöd för olika codecs och skärmuppsättningar) som den underliggande inspelaren. För fjärrtestning, såsom på ett Selenium‑grid, kan det till och med spela in video på den fjärranslutna noden utan extra konfiguration.
Komma igång med Video Recorder
Det rekommenderade sättet att använda Video Recorder‑biblioteket är att lägga till Maven‑beroendet. Använd följande kommando för att få det att fungera smidigt.
Maven-beroende för Video Recorder-biblioteket
<dependency> <groupId>com.automation-remarks</groupId> <artifactId>video-recorder-testng</artifactId> <version>LATEST</version> </dependency>Installera documents4j på GitHub
implementation 'com.automation-remarks:video-recorder-junit5:2.0'
Annotationsbaserad videoinspelning via Java
En av de största fördelarna med det öppna källkods‑biblioteket Video Recorder är dess annoteringsdrivna design. Utvecklare kan aktivera inspelning enkelt genom att lägga till annotationer i testklasser eller -metoder. Detta minskar mängden boilerplate‑kod och gör integrationen enkel för Java‑testningsramverk som JUnit. @Video‑annotation startar automatiskt inspelning innan testet börjar och stoppar inspelning efter slutförandet. Det finns flera fördelar med detta, såsom minimala kodändringar, enkel adoption och renare testfiler.
Hur man spelar in annoteringsbaserad video via Java‑biblioteket?
import com.automation.remarks.video.annotations.Video;
public class LoginTest {
@Video
public void testLogin() {
System.out.println(\"Executing login test...\");
}
}
ustom Video Naming
Anpassad videonamnning via Java‑biblioteket
Det öppna källkods‑biblioteket Video Recorder gör det möjligt för Java‑utvecklare att använda anpassade namngivningskonventioner för inspelningar, vilket hjälper team att organisera inspelningar mer effektivt. Detta är användbart när man kör flera testsatser. Det är mycket användbart och ger fördelar som bättre filorganisation, enklare sökning efter artefakter och förbättrad rapporteringsintegration. Här är ett enkelt exempel som visar hur man utför denna operation.
Hur man genererar videofil via Java‑biblioteket?
@Video(name = \"checkout_flow_test\")
public void checkoutTest() {
System.out.println(\"Checkout process running\");
}
Anpassad videonamnning via Java‑biblioteket
Video Recorder är mycket kraftfullt och kontrollerar allt – från utdata‑mappen och inspelningsläget (alltid, vid fel, endast annoterade tester) till bildfrekvensen och skärmstorleken. Skapa en video.properties‑fil i din klassväg, eller skicka parametrar via Maven/Gradle‑kommandoraden. Detta gör att du kan ställa in olika inspelningsstrategier för lokal utveckling (alltid inspelning) kontra CI (endast inspelning av fel).
Hur man tillämpar olika inspelningsegenskaper med Video Recorder-biblioteket?
# 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-integration för högpresterande inspelning
För avancerade användare kan biblioteket anropa FFmpeg direkt (istället för Monte Media). FFmpeg erbjuder lägre CPU-användning, fler codecs (H.264, VP9) och möjligheten att spela in ett specifikt programfönster eller område. Du behöver bara ha FFmpeg installerat på testmaskinen och verktyget SendSignalCtrlC.exe på Windows för smidiga stopp.