WebdriverIO With CucumberBDD

screenshot of WebdriverIO With CucumberBDD

WebdriverIO With CucumberBDD

This repository contains test automation boilerplate code for WebdriverIO-v8 / Cucumber (v8.x)


This repository contains a collection of sample webdriverIO-v8 projects that demonstrate how to use the tool and develop automation scripts using the CucumberJS BDD framework. It supports Typescript and provides utilities for reading data from MS-Excel and executing SQL statements. The project generates Allure, JSON, Junit/Xunit, and Spec reporters. Please note that the wdio reporting module of JSON and Junit/Xunit is disabled in this version due to compatibility issues with V8.


  • Supports webdriverIO-v8 (Selenium - Node.js/JavaScript)
  • Uses the CucumberJS BDD framework
  • Uses chromedriver NPM package for communication with the browser directly
  • Supports Typescript
  • Provides sample utilities for reading data from MS-Excel
  • Executes SQL statements to any database (RDBMS such as Oracle, TeraData, MySQL, Vertica)
  • Generates Allure, JSON, Junit/Xunit, and Spec reporters


  1. Install Node.JS from the site - https://nodejs.org/en/. Take the LTS version based on your Operating system. Ensure that you install NodeJS globally.
  2. Add node_modules/.bin to your $PATH or install npm globally using npm install -g.
  3. Optional: Install JDK and set the class path properly. JDK is required to start Selenium Server on your local environment.
  4. Start Selenium or Appium server by adding 'selenium-standalone' or 'appium' as services in the *.conf.ts file.
  5. To execute the entire test suite:
    • Option 1: Run locally using npm run test-local
    • Option 2: Run on SauceLabs, BrowserStack, or LambdaTest using npm run test-sauce, npm run test-browserstack, or npm run test-lambdatest
    • Option 3: Run tests on a mobile device using npm run test-mobile. Before running mobile tests, ensure that you perform the requisite Appium setup.


The webdriverIO-v8 boilerplate code with Cucumber BDD is a collection of sample projects that demonstrate the usage of the webdriverIO tool and the development of automation scripts using the CucumberJS BDD framework. It supports webdriverIO-v8 and offers various features such as Typescript support, utilities for reading data from MS-Excel, and the ability to execute SQL statements. The project also generates different types of reporters. Installation instructions are provided for setting up the project, and various options for running the test suite are available, including local execution and integration with SauceLabs, BrowserStack, and LambdaTest.


ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.


TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.