I am happy to announce that Nightwatch.js is now officially a part of BrowserStack. As an open-source project, this means that its development is now a lot more secure, and its future is in excellent hands. BrowserStack has proven itself as the leading cloud infrastructure provider for both live and automated testing on desktop and mobile devices.
It also means that now Nightwatch is maintained by a full dev team and is one of the main responsibilities of the Open-source Program Office that BrowserStack has assembled recently. I have also joined this wonderful group where I’ll be working together with other Selenium and Nightwatch contributors. Our vision stays the same: to ensure that Nightwatch is the go-to solution for all cross-browser automated testing needs.
At the same time, BrowserStack is fully committed to support the entire Selenium ecosystem and so Nightwatch will still continue to work well with all Selenium-based cloud services. As for the day-to-day operations, we will be continuing to develop Nightwatch as an autonomous open-source project, in the same manner as for the past 8 years, but with the support of the world’s leading software testing platform.
We're delighted to announce that BrowserStack is hosting a Nightwatch focused webinar on December 14th. Selenium committer David Burns will be experimenting with a few of the new features in Nightwatch 2 and so this is a great opportunity to check out the new version.
Here's what's on the agenda:
- introduction new the new User Actions API from Selenium and how to use them in Nightwatch
- overview of the WebDriver Bidirectional (BiDi) APIs
- working with shadowRoot elements in Nightwatch
- creating a plugin using the new plugin API
- Q&A session
Register for free
Developing a good web application means it is usable, fully functional, and compatible. Rigorous end-to-end testing ensures rolling out a stable web application. Testing across all possible browsers guarantees a great user experience.
Nightwatch is an end-to-end automated testing solution for web applications. Developers and test engineers can write tests using Nightwatch and effortlessly target various browsers without worrying about test flakiness.
Consider an infrastructure setup with different browsers on different operation system machines. Now, the tests and infrastructure are ready. But how do we delegate the tests to run on the infrastructure? Well, Selenium Grid seamlessly stitches the two together. Selenium Grid helps in efficiently finding the accurate environment to run the tests on.
What is Selenium Grid?
A few months ago when we announced that we’re working on Nightwatch v2, we also sent out a short survey to help us gather more feedback from the community about the kind of features we should build.
Now that the v2 is available in beta we are also excited to share the results from the first-ever user survey we did for Nightwatch.
We had 262 responses and the aks from the survey can be broadly classified into three sections:
1. Test setup
We're finally ready to announce the first beta release for Nightwatch v2.0. Upcoming beta releases will incrementally be made available in NPM under the next tag, so in order to install it you'll have to run the following:
npm i nightwatch@next
Over the coming weeks we will also finish updating the documentation with more pages in the Guide section and documenting the new APIs.
We're delighted to announce that the next major version of Nightwatch is available in NPM as an alpha pre-release. It contains a wide range of new features and improvements for writing and running tests as well as full cross-browser testing support for W3C WebDriver compliant browsers.
The underlying architecture has been completely reworked to use the official selenium-webdriver Node.js library in communicating with the browser drivers. This means better cross-browser integration, more reliable DOM element command handling, and overall more stable and faster tests.
The goal of the alpha release is to gather some feedback, identify, and fix major bugs while at the same time finalize the new APIs and also update the documentation. So it's quite important that you let us know of any major issues encountered so we can make the upgrade from v1.x as smooth as possible. There are a few breaking changes that are mentioned at the end of this post, but they should be relatively small.
Among all the types of tests which make up the pyramid of software testing, the end-to-end UI tests are considered by far the most difficult to manage, slow to execute, unstable, flaky, and sometimes even downright impractical. Just consider this recent post from the ThoughtWorks blog – the author recalls a response from an engineering team that was asked about the state of their UI testing:
"Well, we have a couple of Selenium tests, but they're pretty brittle. They always seem to be broken, so we rarely run them.
Not only that, but just by looking at what the team behind the Cypress project write on their website, it seems that software testing doesn't enjoy a favourable reputation among software developers: “Testing sucks. It’s the part that every developer dreads.”
Welcome to the new Nightwatch engineering blog, which will contain the latest updates and developments around the Nightwatch project. It will also serve as a resource for tutorials and other kinds of related material. The content will be written and curated by the Nightwatch team, but it may also feature occasional guests posts written by our friends and collaborators.
Nightwatch was published at the beginning of 2014 and was created as a complete and integrated framework which would enable engineers to write end-to-end tests quickly and without headaches. While writing it, we were guided by the belief that writing and running automated UI tests should be a straightforward and pleasant task, and should require as little configuration and maintenance as possible.
The task of interacting with browser internals was already handled by the Selenium project and working with the Selenium server via an HTTP based api was a straightforward task. And so Nightwatch was born by bringing together various existing tools and techniques into one easy-to-use integrated solution.