Gathering detailed insights and metrics for @mbikola/wdio-video-reporter
Gathering detailed insights and metrics for @mbikola/wdio-video-reporter
Gathering detailed insights and metrics for @mbikola/wdio-video-reporter
Gathering detailed insights and metrics for @mbikola/wdio-video-reporter
Reporter for WebdriverIO v6 that makes videos of failed tests and has optional allure integration
npm install @mbikola/wdio-video-reporter
Typescript
Module System
Node Version
NPM Version
JavaScript (100%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
MIT License
2 Stars
195 Commits
5 Forks
1 Watchers
3 Branches
1 Contributors
Updated on Mar 02, 2025
Latest Version
3.6.3
Package Id
@mbikola/wdio-video-reporter@3.6.3
Unpacked Size
974.07 kB
Size
511.79 kB
File Count
50
NPM Version
8.19.2
Node Version
16.18.0
Published on
Apr 06, 2023
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
This is a reporter for Webdriver IO v6 and higher that generates videos of your wdio test executions. If you use allure, then the test cases automatically get decorated with the videos as well. (For Webdriver IO v5, please use wdio-video-reporter version ^2.0.0.)
Videos ends up in wdio.config.outputDir
Checkout example Allure report with included videos on failed tests here: https://presidenten.github.io/wdio-video-reporter-example-report/
Pros:
saveScreenshot
Cons:
Checkout the simple template at wdio-template to quickly get up to speed.
Clone one of the repositories and install dependencies with yarn
or npm install
. Then run yarn e2e
or npm run e2e
in demo directory and finally yarn report
or npm run report
to see allure report.
yarn add wdio-video-reporter
or
npm install wdio-video-reporter
At the top of the wdio.conf.js
-file, require the library:
const video = require('wdio-video-reporter');
Then add the video reporter to the configuration in the reporters property:
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]
}],
],
Adding the Allure reporter as well, automatically updates the reports with videos without any need to configure anything :-)
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,
}],
],
Adding the html nice reporter automatically updates the reports with videos without any need to configure anything :-)
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]
outputDir: './reports/html-reports/',
}],
['html-nice', {
outputDir: './reports/html-reports/',
filename: 'report.html',
reportTitle: 'Test Report Title',
linkScreenshots: true,
//to show the report in a browser when done
showInBrowser: true,
collapseTests: false,
//to turn on screenshots after every test must be false to use video
useOnAfterCommandForScreenshot: false,
}],
],
Most users may want to set these
saveAllVideos
Set to true to save videos for passing tests. Default: false
videoSlowdownMultiplier
Integer between [1-100]. Increase if videos are playing to quick. Default: 3
videoScale
Scaling of video. See https://trac.ffmpeg.org/wiki/Scaling. Default: '1200:trunc(ow/a/2)*2'
videoRenderTimeout
Max seconds to wait for a video to render. Default: 5
outputDir
If its not set, it uses wdio.config.outputDir. Default: undefined
maxTestNameCharacters
Max length of test name. Default: 250
Advanced users who want to change when the engine makes a screengrab can edit these. These arrays may be populated with the last word of a jsonWireProtocol message, i.e. /session/:sessionId/buttondown
.
addExcludedActions
Add actions where screenshots are unnecessary. Default: []
addJsonWireActions
Add actions where screenshots are missing. Default: []
recordAllActions
Skip filtering and screenshot everything. (Not recommended) Default: false
screenshotIntervalSecs
Force a screenshot at this interval (minumum 0.5s) Default: undefined
videoFormat
Video format (container) to be used. Supported formats: mp4
, webm
. Default: mp4
To see processed messages, set wdio.config.logLevel: 'debug'
and check outputDir/wdio-X-Y-Video-reporter.log
. This will also leave the screenshots output directory intact for reviewTo avoid extra logging all together and only get the video files, set wdio.config.logLevel: 'silent'
. You won't get output of video files path and video reporter progress in the console.
If you are using the Allure reporter, you need to ensure you do the following:
chai
instead of using the built-in node assertions otherwise the failed tests gets reported as broken in your steps definitionsuseCucumberStepReporter: true
to Allure option in wdio.conf.js
file, a typical configuration would look like this: 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
}],
],
For a complete example, checkout the cucumber branch at the wdio-template
Since wdio-video-reporter
v1.2.4 there is support to help Allure differentiate between safari and chrome browsers on desktop and devices.
The reporter uses the custom property deviceType
to id the different devices.
Recommended values are phone
and tablet
.
It is recommended to include browserVersion
as well for all browsers to avoid a bug in Chrome webdriver when using devices in same Selenium grid as desktop Chrome browsers.
The generated video files will also get deviceType
added to the browser name.
Example appium configuration:
"capabilities": [
{
...
"deviceType": "phone",
"browserVersion": "73.0-phone-1",
...
}
],
And wdio-config.json
:
"capabilities": [
{
...
"appium:deviceType": "phone",
"browserVersion": "73.0-phone-1",
...
},
],
Fork, make changes, write some tests, lint, run tests, build, and verify in the demo that changes work as they should, then make a PR.
The demo folder works with the built version of the library, so make sure to build if you added new features and want to try them out.
Thanks to Johnson E for fixing Cucumber support which alot of users have asked for.
No vulnerabilities found.
Reason
no dangerous workflow patterns detected
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
dependency not pinned by hash detected -- score normalized to 2
Details
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
Found 0/30 approved changesets -- score normalized to 0
Reason
no SAST tool detected
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
62 existing vulnerabilities detected
Details
Score
Last Scanned on 2025-07-07
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More