Webdriver.IO

08 Mar 2023  Amiya pattanaik  4 mins read.

What is WebdriverIO?

WebdriverIO is an open-source testing automation framework Next-gen browser and mobile automation test framework for Node.js. It is particularly useful for testing web applications and native mobile applications for iOS-enabled devices. Its support for both Behavior Driven Development (BDD) and Test Driven Development (TDD) makes it a highly preferred choice for automation testers. You can write your super easy tests using CucumberJS, Mocha, Jasmine unit test framework. WebdriverIO philosophy is build once run anywhere.

Why Webdriver.IO?

WebdriverIO is a “progressive automation framework” built to automate modern web and mobile applications. Progressive automation framework is a method of automation wherein test modules are tested one after the other. Scripts are essentially written to test new software, along with the development code. The main purpose of progressive automation is faster testing and identification of problems, as well as their respective quick fixes. It simplifies the interaction with your app and provides a set of plugins that help you create a scalable, robust and stable test suite. It is designed to be:

  • Extendable - Adding helper functions, or more complicated sets and combinations of existing commands is simple and really useful
  • Compatible - WebdriverIO can be run on the WebDriver Protocol for true cross-browser testing as well as Chrome DevTools Protocol for Chromium based automation using Puppeteer.
  • Feature Rich - The huge variety of built-in and community plugins allows you to easily integrate and extend your setup to fulfill your requirements. You can use WebdriverIO to automate:
    • 🌐 modern web applications written in React, Angular, Vue, Svelte or other frontend frameworks
    • 📱 hybrid or native mobile applications running in an emulator/simulator or on a real device
    • 💻 native desktop applications (e.g. written with Electron.js)
    • 📦 unit or component testing of web components in the browser

How does WebDriverIO work?

WebDriverIO is a framework that follows the web standard protocol WebDriver, as well as Chrome DevTools protocol. This means that you can use the WebDriverIO framework to automate web applications efficiently for both Selenium WebDriver-based cross-browser testing or Chromium-based automation. Indeed, this is an automation framework independent from Selenium WebDriver, allowing testers to automate both web applications— regardless of the communication protocol they want to use—and Native/Hybrid mobile applications.

WebDriver protocol

The WebDriver protocol was designed to automate a browser from the user perspective, encompassing everything a user is able to do with the browser. It provides a set of commands that abstract away common interactions with an application. To use this automation protocol, you need a proxy server that translates all commands and executes them in the target environment (i.e. the browser or the mobile app). For browser automation, the proxy server is usually the browser driver. There are several drivers available for browsers: Chrome, Firefox, Edge, Internet Explorer, and Safari.

Advantages of using WebdriverIO

  • Official W3C Web standard, supported by all major browsers.

  • Reader Friendly Tests: WebdriverIO does a great job at making tests as reader friendly as possible. This means that even if you are not familiar with JavaScript, you’ll still be able to understand what the test is trying to accomplish.

  • Easy Test Setup: Using WebdriverIO CLI, you can get your tests setup in under 10 minutes.

  • Front-End Friendly: Since the tests are written in JavaScript, it is easy for developers to extend themselves from writing code to writing automated tests.

  • Services Integration: WebdriverIO provides plenty of services and community plugins that allow you to easily integrate with third party services such as Appium, BrowserStack, SauceLabs, and Jenkins, Devtools, VSCode Extension Testing, Gmail, Docker Service, Google Chat etc. For more additional services please refer to the webdriverIO official site.

  • Reporting Integration: WebdriverIO supports many popular reporters that can create useful reports for you such as Allure Reporter, spec Reporter, Junit Reporter, HTMl, Video, CucumberJS JSON Reporter etc.

Conclusion

Overall, WebdriverIO makes it easy to set up and configure your tests, and also provides a clean and readable syntax for writing tests. WebdriverIO also provides detailed documentation on all of its APIs as well as a step-by-step guide for integrating the tests with various services and reporters.

I recommend you check out the official Documentation and ready to use Boilerplate Projects.

References:

W3C, WebdriverIO.

We encourage our readers to treat each other respectfully and constructively. Thank you for taking the time to read this blog post to the end. We look forward to your contributions. Let’s make something great together! What do you think? Please vote and post your comments.

Amiya Pattanaik
Amiya Pattanaik

Amiya is a Product Engineering Director focus on Product Development, Quality Engineering & User Experience. He writes his experiences here.