Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions Applications/webdriverio.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Introduction and Project description.

WebdriverIO is an open source testing utility for nodejs. It makes it possible to write super easy selenium tests with Javascript in your favorite BDD or TDD test framework. It basically sends requests to a Selenium server or browser driver via the WebDriver Protocol and handles its response. These requests are wrapped in useful commands and can be used to test several aspects of your site in an automated way. Therefor it lets you control a browser or a mobile application with just a few lines of code. Your test code will look simple, concise and easy to read. The integrated test runner let you write asynchronous commands in a synchronous way so that you don’t need to care about how to handle a Promise to avoid racing conditions. Additionally it takes away all the cumbersome setup work and manages the Selenium session for you. WebdriverIO was designed to be as flexible and framework agnostic as possible. It can be applied in any context and serves not only the purpose of testing.

# Project history.

The project was initiated by Camilo Tapia (https://twitter.com/camilotapia) and was the first Selenium client library available on NPM. At that time it was called WebdriverJS (NPM package is still owned by the contributors: https://www.npmjs.com/package/webdriverjs). After the Selenium maintainer released an own tool called selenium-webdriver they started to promote it as WebdriverJS as well and labeled it as the “official bindings". With growing confusion in the user community about which project is WebdriverJS the maintainers decided to rebrand the project to WebdriverIO throughout all social media channels. It is gaining more and more popularity since then.

# Any available metrics or even estimates about the user base, ecosystem and community.

* NPM stats:
* ~18k daily downloads (https://npm-stat.com/charts.html?package=webdriverio)
* 148 dependent projects
* Automation driver for tools like Spectron (official Electron Testing Framework maintained by GitHub), Chimp and CodeceptJS
* Gitter support Channel: ~1800 user (https://gitter.im/webdriverio/webdriverio)
* Most active authors

![Active users](https://mo.github.io/assets/javascript-e2e-integration-testing-active-devs.png)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have a definition for "active authors"? The graph seems to indicate there were about 150 active authors in the past year.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dmethvin with active authors I meant people who contributed in the past year. Obviously some of them are one time contributors however some also proposed PRs multiple times.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@christian-bromann How/where was that data collected regarding contributors? I don't see 150 contributors in the graphs that GitHub provides but maybe your data crosses multiple repos, counts issue creators, etc.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dmethvin it was generated using git source metrics by someone who did a full e2e tooling comparison on his blog: https://mo.github.io/2017/07/20/javascript-e2e-integration-testing.html. I grabbed the stats from there.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The source of graph generation is https://github.com/mo/git-source-metrics-web-e2e

Copy link
Contributor

@dmethvin dmethvin Aug 31, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When I looked at the repo it didn't look that high but i just pulled the repo and did a $ git shortlog 9125db7..HEAD -n -s which came pretty close to the same number. So we're good 👍


# Project scope.

The goal of WebdriverIO is to provide developers a framework to run e2e tests on their desktop and mobile applications. It tries to simplify the test process by taking care of common pitfalls in e2e testing. It is not made to run any kind of other tests like unit or API tests. It only speaks the Webdriver protocol. However services and add ons may provide additional functionalities.

# Current governance process.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be better to add detailed government process to be.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yichoi what kind of details are you missing? I'ld be happy to provide more info.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@christian-bromann If you wanted to add some sort of intended governance process here that would be great but we had an internal discussion and clarified that if that is unknown at the time and all you know is what you do now, that is fine. The mentorship process is meant to develop and implement that plan so if you don't have anything to add here, that is ok.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if that is unknown at the time and all you know is what you do now, that is fine.

This is the case. There is no defined governance process yet. I would be happy to develop one as part of the JSF mentorship


The project is currently governed by myself (Christian Bromann). I release all projects that are part of the WebdriverIO ecosystem (https://github.com/webdriverio) and answer most of the issue.

# Current contribution process.

No special process. People propose changes in form of pull requests on GitHub and I review and merge them. If someone shows constant support he/she will be added as project maintainer.

# List of current tools in use by the project (forums, issue trackers, GitHub orgs, etc).

Website: [http://webdriver.io/](http://webdriver.io/)<br>
GitHub Organisation: [https://github.com/webdriverio](https://github.com/webdriverio)<br>
Issue Tracker: [https://github.com/webdriverio/webdriverio/issues](https://github.com/webdriverio/webdriverio/issues)<br>
Twitter: [https://twitter.com/webdriverio](https://twitter.com/webdriverio)<br>
Gitter Channel: [https://gitter.im/webdriverio/webdriverio](https://gitter.im/webdriverio/webdriverio)<br>
VersionEye: [https://www.versioneye.com/](https://www.versioneye.com/)<br>
Travis CI: [https://travis-ci.org/webdriverio/webdriverio](https://travis-ci.org/webdriverio/webdriverio)<br>
Greenkeeper: [https://greenkeeper.io/](https://greenkeeper.io/)<br>
Code Climate: [https://codeclimate.com/github/webdriverio/webdriverio](https://codeclimate.com/github/webdriverio/webdriverio)

# Existing IP Policy and relevant intellectual property (trademarks, domain names, etc).

Domain [http://webdriver.io/](http://webdriver.io/) owned by Camilo Tapia

# List of initial Project Collaborators and Maintainers.

* [Camilo Tapia](https://github.com/camme)
* [Christian Bromann](https://github.com/christian-bromann)

# List of initial Working Groups, if any.

N/A

# CLA

Will be changed to the one provided by the JSFoundation once this project was approved by the working group.

# License

Currently [MIT](https://github.com/webdriverio/webdriverio/blob/master/LICENSE-MIT) but happy to switch it to Apache 2.0

# Code of Conduct

See [here](https://github.com/webdriverio/webdriverio/blob/master/CONDUCT.md)