Protractor is a popular end-to-end test framework designed especially for AngularJS applications. Created by a team at Google in 2013 and made as open source, Protractor has been widely used by developers and testers for automated web application testing. Back then WebDriver APIs were not yet standard, and end-to-end (e2e) tests were hard to write due to a lack of support for async / await. To solve this problem, Protractor wraps a selenium-web driver and abstracts asynchronous operations from developers with the use of Control Flow. Protractor had benefits in testing AngularJS applications. Google recommended it as a primary test framework. Some key benefits were:
- Easy to set up the environment and to start to write the tests
- It supports some of Angular’s linked locators, like ‘by.model’, ‘by.repeater’, etc. Such an approach allows us to quickly find elements with minimum effort on the development part. Meanwhile, native locators like XPath, CSS, etc., are also available, e.g., for some specific cases.
- Protractor has out-of-box waiters and expectations. The development tests were rather easy, especially against Angular v. 1.x.x(AngularJS), without additional pauses, sleeps, etc.
- It supports Jasmine, the same framework people used to write AngularJS unit tests.
Protractor. End of Life:
However, in April 2021, the Angular team announced that they would stop development and support for Protractor by the end of 2022 (in conjunction with Angular v15). As a result, Protractor will reach its end of life in August 2023 and will no longer receive any updates or bug fixes.
Why it happened:
The Angular team explained that the decision to end Protractor was based on several factors, such as:
- The evolution of web development and testing technologies, which have surpassed the capabilities of Protractor. Angular 2 appeared which is rather different from AngularJS.
- The appearance of new testing tools and frameworks, which offer more features and flexibility than Protractor.
- The feedback from the Angular community indicated a preference for other testing solutions over Protractor.
- The support and technical debts of Protractor made it difficult to keep up with the changing needs of the users.
The Angular team also stated that they wanted to focus their efforts on improving the core Angular framework and supporting other testing initiatives, such as component harnesses.
What should you do right now?
If you are currently using Protractor for your end-to-end testing, you may be wondering what the end of life means for you and your projects. Here are some possible scenarios and implications:
- If you are happy with Protractor and do not need any new features or updates, you can try using it. However, you should be aware that Protractor may not work well with newer versions of Angular or other web technologies, and you may encounter bugs or issues that will not be fixed. Meanwhile, the latest Protractor released v 5.4.3 in January 2020.
- If you want to keep using Protractor beyond August 2023, you can try to look for alternative support options, such as third-party providers or community forks. For instance, HeroDevs offers a Never Ending Support service for Protractor, which promises to provide updates, bug fixes, and security patches for Protractor indefinitely.
- In reality, there were some proposals to stop using the Protractor even in 2020. There are many test automation solutions available in the market, each with its advantages and disadvantages. Some of the popular ones include Nighwatch.js, Cypress, Playwright, TestCafe, and WebDriverIO. And this is the better way and time to start to migrate on one of them.
How to Choose a New Testing Tool or Framework?
Choosing a new testing tool or framework can be a daunting prospect, especially if you have a large count of tests written in Protractor. It can take some time. However, some criteria can help you narrow down your choices and find the best fit for your needs. Some of these criteria are:
- Compatibility: The new tool or framework should be compatible with your existing web technologies, such as Angular, TypeScript, Node.js, React, etc. It should also support the browsers and platforms that you need to test on.
- Features: The new tool or framework should offer the features that you need for your end-to-end testing, such as smart element locators, automatic waits, parallel execution, reporting, debugging, etc.
- Ease of use: The new tool or framework should be easy to use and learn. It should have a clear and intuitive syntax and API. It also may have a smooth migration path from Protractor, such as code converters or guides.
- Performance: The new tool or framework should have a fast and reliable performance. It should run your tests quickly and consistently. It should also have a low overhead and resource consumption.
- Support: The new tool should have a community or sustaining team for up-to-date bug fixes or new release versions. Clear documentation.
Protractor is a well-known and widely used end-to-end testing tool for AngularJS applications. Because of Angular’s evolution, it stopped being so convenient. It is known that it will reach its end of life in August 2023 and will no longer receive any development or support from the Angular team. This means that users of Protractor will have to look for alternative support options beyond then or better migrate to a different testing tool or framework. There are many factors to consider when choosing a new testing solution, such as compatibility, features, ease of use, performance, and support. Users should evaluate their options carefully and plan their migration accordingly.