wdio-video-reporter är ett tredjepartspaket, för mer information se GitHub | npm

Detta är en rapportör för Webdriver IO v6 and highr som genererar videor av dina wdio-testutföranden. Om du använder allure, dekoreras testfallen automatiskt med videoklipp. (För Webdriver IO v5, använd wdio-video-reporter version ^2.0.0.)
Videor hamnar i wdio.config.outputDir
Kolla in exempel på Allure-rapport med inkluderade videor på misslyckade tester här: https://presidenten.github.io/wdio-video-reporter-example-report/

Fördelar:
- Fina videor i dina allure-rapporter
- Fina videor i mänsklig hastighet, även om testerna är snabba
- Fungerar med Selenium grid
- Fungerar med alla webbdrivers som stöder
saveScreenshot - Verifierad på följande skrivbords-webbläsare med Selenium 3.141.59:
- Chrome
- Firefox
- Safari
- Internet Explorer 11
- Microsoft Edge
- Verifierad på följande ios- och android-enheter med Appium 1.13.0-beta3:
- Iphone 8
- Ipad Gen 6
- Samsung galaxy S9
- Samsung galaxy tab A10
Nackdelar:
- Fungerar genom att ta skärmdumpar efter "åtgärder", vilket gör testerna lite långsammare. Detta mildras genom att noggrant välja vilka jsonWireProtocol-meddelanden som ska resultera i en skärmdump
- Selenium-drivrutiner inkluderar inte varningsrutor och popupfönster i skärmdumpar, så de syns inte i videorna
Snabbstart
Kolla in den enkla mallen på wdio-template för att snabbt komma igång.
Klona en av förvaringarna och installera beroenden med yarn eller npm install. Kör sedan yarn e2e eller npm run e2e i demo-katalogen och slutligen yarn report eller npm run report för att se allure-rapporten.
Installation
Installera rapportören
yarn add wdio-video-reporter
eller
npm install wdio-video-reporter
Lägg till rapportören i konfigurationen
Högst upp i wdio.conf.js-filen, inkludera biblioteket:
const video = require('wdio-video-reporter');
Lägg sedan till videorapportören i konfigurationen i reporters-egenskapen:
reporters: [
[video, {
saveAllVideos: false, // If true, also saves videos for successful test cases
videoSlowdownMultiplier: 3, // Higher to get slower videos, lower for faster videos [Value 1-100]
}],
],
Använda med Allure
Genom att lägga till Allure-rapportören uppdateras rapporterna automatiskt med videor utan behov av ytterligare konfiguration :-)
reporters: [
[video, {
saveAllVideos: false, // If true, also saves videos for successful test cases
videoSlowdownMultiplier: 3, // Higher to get slower videos, lower for faster videos [Value 1-100]
}],
['allure', {
outputDir: './_results_/allure-raw',
disableWebdriverStepsReporting: true,
disableWebdriverScreenshotsReporting: true,
}],
],
Konfiguration
Normala konfigurationsparametrar
De flesta användare kan vilja ställa in dessa
saveAllVideosSätt till true för att spara videor för godkända tester.Standard: falsevideoSlowdownMultiplierHeltal mellan [1-100]. Öka om videor spelas för snabbt.Standard: 3videoRenderTimeoutMax sekunder att vänta på att en video ska renderas.Standard: 5outputDirOm det inte är inställt används wdio.config.outputDir.Standard: undefinedoutputDirOm det inte är inställt används wdio.config.outputDir.Standard: undefinedmaxTestNameCharactersMax längd på testnamn.Standard: 250
Avancerade konfigurationsparametrar
Avancerade användare som vill ändra när motorn gör en skärmdump kan redigera dessa. Dessa matriser kan fyllas med det sista ordet i ett jsonWireProtocol-meddelande, t.ex. /session/:sessionId/buttondown.
addExcludedActionsLägg till åtgärder där skärmdumpar är onödiga.Standard: []addJsonWireActionsLägg till åtgärder där skärmdumpar saknas.Standard: []recordAllActionsHoppa över filtrering och ta skärmdump av allt. (Rekommenderas inte)Standard: false
För att se bearbetade meddelanden, ställ in wdio.config.logLevel: 'debug' och kontrollera outputDir/wdio-X-Y-Video-reporter.log. Detta kommer också att lämna skärmdumpsmappen intakt för granskning.
För att undvika extra loggning helt och hållet och bara få videofilerna, ställ in wdio.config.logLevel: 'silent'.
Cucumber-stöd
Om du använder Allure-rapportören måste du se till att du gör följande:
- Använd
chaiistället för de inbyggda node-påståendena, annars rapporteras misslyckade tester som trasiga i dina stegdefinitioner - Lägg till
useCucumberStepReporter: truetill Allure-alternativet i filenwdio.conf.js, en typisk konfiguration skulle se ut så här:
reporters: [
[video, {
saveAllVideos: false, // If true, also saves videos for successful test cases
videoSlowdownMultiplier: 3, // Higher to get slower videos, lower for faster videos [Value 1-100]
}],
['allure', {
outputDir: './_results_/allure-raw',
disableWebdriverStepsReporting: true,
disableWebdriverScreenshotsReporting: true,
useCucumberStepReporter: true
}],
],
För ett komplett exempel, kolla in cucumber-grenen på wdio-template
Appium-konfiguration
Sedan wdio-video-reporter v1.2.4 finns det stöd för att hjälpa Allure skilja mellan safari- och chrome-webbläsare på skrivbord och enheter.
Rapportören använder den anpassade egenskapen deviceType för att identifiera de olika enheterna.
Rekommenderade värden är phone och tablet.
Det rekommenderas att inkludera browserVersion också för alla webbläsare för att undvika en bugg i Chrome webdriver när man använder enheter i samma Selenium-grid som skrivbords-Chrome-webbläsare.
De genererade videofilerna kommer också att få deviceType tillagt till webbläsarnamnet.
Exempel på appium-konfiguration:
"capabilities": [
{
...
"deviceType": "phone",
"browserVersion": "73.0-phone-1",
...
}
],
Och wdio-config.json:
"capabilities": [
{
...
"appium:deviceType": "phone",
"browserVersion": "73.0-phone-1",
...
},
],
Bidra
Forka, gör ändringar, skriv några tester, linta, kör tester, bygg och verifiera i demon att ändringarna fungerar som de ska, gör sedan en PR.
Demo-mappen fungerar med den byggda versionen av biblioteket, så se till att bygga om du har lagt till nya funktioner och vill prova dem.
Tack
Tack till Johnson E för att ha fixat Cucumber-stöd som många användare har frågat efter.