Skip to content

Latest commit

 

History

History
33 lines (27 loc) · 8.36 KB

ROADMAP.md

File metadata and controls

33 lines (27 loc) · 8.36 KB

WebdriverIO Roadmap

This document is designed to be a living record of the current and projected priorities for the WebdriverIO project. It is, of course, always subject to change and exists solely to give the community an idea of where we're going. The roadmap is set by the Technical Steering Committee (TSC) team. If you have feature suggestions for WebdriverIO or any of the @wdio packages, please submit a GitHub issue and, if of sufficient size and approved by the team, it will be added here. If you have concerns about the roadmap, you can raise a GitHub issue. Note that bugfixes and miscellaneous features are not considered "roadmap projects", and will be addressed in the due course of normal project development. This page exists to outline large-scale future plans for WebdriverIO.

Upcoming Projects (in no particular order)

We are organising all roadmap items in GitHub. Please check them out and get involved if any of these interest you. The best to get involved is to comment on the "Vision Tracker" issue linked to the project. Take these projects as an inspiration. Some of them might be empty which means they are waiting for ideas and suggestions from the community. So get involved to help push these initiatives forward.

Project Description
Component Testing Ideas, issues and enhancements related to unit and component testing capabilities with WebdriverIO.
Core Initiatives Everything related to WebdriverIOs core functionality and technical stack.
Devtools and Google Lighthouse Integration The @wdio/devtools-service provides automation capabilities beyond WebDriver (e.g. get network logs, tracing, performance etc). There is a variety of things that can be added to help people test their applications (e.g. better mocking/stubbing of browser requests and responses). Also it would be desire-able if the service would work in Firefox and Edge in the same way.
Network Recording We want to make it seamless to assert network behavior of the browser. Inspired by Jest and their Snapshot functionality we can implement similar behavior in WebdriverIO.
Improved Frontend Framework Support Almost all web applications are written in either React, Angular, Vue, Svelte or a different frontend framework that allows you to ship modern web application today. These frameworks are often difficult to deal with when it comes to selecting elements or introspection of app states and important parts. WebdriverIO has the capabilities to help the user to test these applications better.
Better Debugging Capabilities There are already a handful options to debug test code with WebdriverIO. However it is still not straight forward to use native Node.js debugging capabilities which requires special handling of workers and sub processes. Goal has to be that developers can use their IDEs to set breakpoints to debug.
VS Code Extension To improve the test authoring experience we are interested building a VS Code extension for users to write, run and debug tests in VS Code.
Fiddle Platform One of community members already started to build a fiddle (try.webdriver.io) for WebdriverIO. It is currently not working that well and needs more work. It would help tremendously to share test code snippets to identify issues in someones automation script. A Sauce Labs integration would also be possible here.

Completed Roadmap Projects

Project Description Completed WebdriverIO Release Notes
Make CLI tool more powerful Adding simple add ons to the setup becomes difficult if the person is not familiar with the project or WebDriver in general. Adding some simple commands to the CLI interface that allows to add service and reporters and modifies the config would make the process of adding plugins much easier. 2019-06-06 v5.10.0 #3915
Cucumber Framework Support A lot of people request support for Cucumber as it is their main framework choice. Initial work on this has already been done by the community. The code needs to get proper unit tests but would then be good to go. 2019-07-09 v5.11.0 #3667
Jest Framework Support Jest has become one of the most popular unit test framework in the JS ecosystem. Even though most of their features are not helpful in the e2e space there are some things (e.g. snapshot testing) that could help people writing better e2e tests. There has been some initial work done on this. 2019-12-20 v6.0.0 #4908
Custom Assertion Library To make assertion on elements or other objects simpler across all frameworks it would be nice if WebdriverIO would come with an native assertion library (similar how Jest or Jasmine provide one) embedded into the testrunner. 2019-12-20 v6.0.0 #4908
Autogenerate Sample Files Let's allow user to pre-setup an existing boilerplate so that they don't need to setup these files by themselves. The community has gathered a lot of useful boilerplate projects that we want to allow to act as baseline for the test setup using the configuration wizard or a new wdio command. 2020-06-13 v6.2.0 #5590
Integrating WebdriverIO is common use setup build tools There are various of projects that help you to bootstrap a project from scratch (e.g. create-react-app). We should add WebdriverIO as e2e testing option in there which will help us to driver adoption. 2020-07-18 v6.2.0 #5636
Network Primitives As we have better cross browser support for Puppeteer we should move forward and provide better network primitives for WebdriverIO to help user access the network layer. In addition to that these features are likely to be supported once WebDriver moves to a BiDi protocol (which is a new version of WebDriver that is currently designed by the W3C working group and browser vendors). 2020-07-16 v6.3.0 #5477
TypeScript Rewrite As our code base is growing we are more impacted by type issues that are hard to detect. To avoid such problems and make the code base easier to work with we plan to rewrite it into TypeScript. 2021-02-08 v7.0.0 #6302
ESM Support With the ecosystem moving towards the ESM module system we transformed the complete code base to run within an ESM environment with compatibility for CommonJS projects. 2022-12-01 v8.0.0 #6812