Hoppa till huvudinnehåll

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

Logo

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/

example-allure-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

  • saveAllVideos Sätt till true för att spara videor för godkända tester. Standard: false
  • videoSlowdownMultiplier Heltal mellan [1-100]. Öka om videor spelas för snabbt. Standard: 3
  • videoRenderTimeout Max sekunder att vänta på att en video ska renderas. Standard: 5
  • outputDir Om det inte är inställt används wdio.config.outputDir. Standard: undefined
  • outputDir Om det inte är inställt används wdio.config.outputDir. Standard: undefined
  • maxTestNameCharacters Max 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.

  • addExcludedActions Lägg till åtgärder där skärmdumpar är onödiga. Standard: []
  • addJsonWireActions Lägg till åtgärder där skärmdumpar saknas. Standard: []
  • recordAllActions Hoppa ö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 chai istället för de inbyggda node-påståendena, annars rapporteras misslyckade tester som trasiga i dina stegdefinitioner
  • Lägg till useCucumberStepReporter: true till Allure-alternativet i filen wdio.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.

Welcome! How can I help?

WebdriverIO AI Copilot