Skip to content

An open source library to generate video and attach to Cucumber test when executed with WebdriverIO

License

Notifications You must be signed in to change notification settings

tamil777selvan/wdio-testrecorder-service

Repository files navigation

wdio-testrecorder-service

A service for WDIO that generates videos of your wdio cucumber test executions.

This service uses ffmpeg to convert sequence of images to video.

Installation

You can simple do it by:

npm i wdio-testrecorder-service

Instructions on how to install WDIO can be found here

Configuration

Configure the output directory in your wdio.conf.js file:

exports.config = {
    // ...
    services: [
      [
        'TestRecorder', {
            attachVideoToCucumberReport: true
        }
      ]
    ]
  // ...
}

Options to override default capabilities...

  • videoOutputPath - Output folder path to store video reports.
  • attachVideoToCucumberReport - Attach the recorded video to cucumber reports.
  • removeAttachedVideos - Delete the saved video from temp file once attacted to cucumber reports.
  • jsonWireActions - Array of string for which screenshots needs to be captured in afterCommad hooks.

Note:

  • attachVideoToCucumberReport will work only if cucumberjs-json reporter is enabled. Existance of cucumber report is not validated. So, before enabling removeAttachedVideos as true make sure you have the cucumber reporter enabled. Else would endup in lossing the video generated.

Default Values:

  • videoOutputPath - ./tmp
  • attachVideoToCucumberReport - false
  • removeAttachedVideos - false
  • jsonWireActions -
[
  "executeScript",
  "elementClick",
  "click",
  "elementClear",
  "clearValue",
  "setValueImmediate",
  "pressKeyCode",
  "hideKeyboard",

  "url",
  "performActions",
  "releaseActions",
  "keys",
  "doubleClick",
  "execute",
  "scrollIntoView",
  "dragAndDrop",
  "elementSendKeys",
  "addValue",
  "setValue",
  "moveTo",
  "selectByIndex",
  "selectByAttribute",
  "selectByVisibleText",

  "waitForDisplayed",
  "waitForExist",
  "waitForEnabled",
  "switchToWindow",
  "closeWindow"
]

Limitations

Since this service captures screenshot in runtime increases the execution timeline.