You might already know that Google is going to stop the development of Protractor soon. Here, in this article, we will discuss what is protractor, why it was used, why it is being discontinued, and what are some of its alternatives that you can use now. So, without further ado, let’s begin.
What is Protractor?
Protractor is an end-to-end test framework made for angular and angularJS applications. It uses angular-specific locator strategies to make it easier to automate the end-to-end test cases on these applications.
The biggest challenge that is aimed to solve was the inclusion of automatic waits, such that tests would work without the need of adding waits in the code to make the tests wait for a particular element.
The Angular team plans to end the development of Protractor at the end of 2022 (in conjunction with Angular v15).
Why?
Protractor was created in 2013 when WebDriver APIs were not yet a standard and end-to-end (e2e) tests were hard to write due to lack of support for async / await. To solve this problem, Protractor wraps selenium-webdriver and abstracted asynchronous operations from developers with the use of Control Flow.
Since then, the JavaScript standard and ecosystem advanced considerably, providing modern syntax and much better development tools. Nonetheless, Protractor is not able to leverage such technology without forcing users to rewrite their tests.
Meanwhile, robust alternatives have emerged in the web testing space. Developers will see more benefits from adopting a more modern testing tool than from updating to a breaking version of Protractor which does not provide additional functionality or developer ergonomic improvements.
We would like to hear from the community on
- the deprecation timeline
- what we can do to provide reliable integration with third-party solutions
- how users can transition by following migration guidelines
- additional concerns that would ensure a smooth transition
Protractor is an end-to-end test framework that was made for angular and angularJS applications in 2013. It was different from the other end-to-end test frameworks at that time because it used angular-specific locator strategies for the automation of end-to-end test cases.
Angular, a Javascript-based framework for developing mobile and web applications, was first introduced by Google in 2009. Because of its increasing popularity and usage, Google rewrote and rereleased it in 2016.
Angular is still one of the most used Javascript-based frameworks for high traffic websites. Example of some such sites includes Udemy.com, Hdfcbank.com, Springer.com, freelancer.com, etc.
Protractor, also introduced by google, thus has quite a lot of users worldwide. These people use it to automate tests for their angular websites.
But, is Protractor relevant still? Angular is still being used hence protractor too can be used. But there is a reason why Google decided to end its development at the end of 2022. They also mention the reason in their related post here. They say:
Protractor was created in 2013 when WebDriver APIs were not yet a standard and end-to-end (e2e) tests were hard to write due to lack of support for async / await. To solve this problem, Protractor wraps selenium-webdriver and abstracted asynchronous operations from developers with the use of Control Flow.
Since then, the JavaScript standard and ecosystem advanced considerably, providing modern syntax and much better development tools. Nonetheless, Protractor is not able to leverage such technology without forcing users to rewrite their tests.
Meanwhile, robust alternatives have emerged in the web testing space. Developers will see more benefits from adopting a more modern testing tool than from updating to a breaking version of Protractor which does not provide additional functionality or developer ergonomic improvements.
In this post, we will compare some of the robust alternatives for the automation of your angular website
Testsigma
Testsigma is a cloud-based test automation tool that lets you automate your end-to-end testing for web as well as mobile applications from the same place easily. It also readily integrates with multiple cross-browser testing cloud labs.
1. Who can use it? Developers, Coders as well as Testers with limited coding knowledge. Only basic HTML knowledge is required to be able to work with it.
2. Can other/non-technical team members use it? Yes
3. Automation of web browsers? Yes
4. Responsive Testing? Yes
5. Testing on mobile web browsers? Yes
6. Testing on Native Mobile Applications? Yes
7. Open Source? No
8. Premium? Yes
9. Needs Infrastructure to host? No
10. Cloud-based? Yes
11. Community support? No, but 24×7 support by the team
12. Supported Integrations? Readily integrates with all popular CI-CD tools
13. Supported languages? Test cases are written in simple English
14. Supported frameworks for automation? Anything that runs on the web
15. Supported browsers? All browsers
16. Possibility of cross-browser testing? Yes
17. Need Infrastructure for cross-browser testing? No
Get Testsigma for easy and simplified cross-browser testing of your application
Cypress
Cypress is a Javascript-based end-to-end testing framework for websites. Any type of website can be automated in cypress.
1. Who can use it? Developers or Coders, Some development knowledge needed because it requires NPM installation and all.
2. Can other/non-technical team members use it? No
3. Automation of web browsers? Yes
4. Responsive Testing? Yes
5. Testing on mobile web browsers? No
6. Testing on Native Mobile Applications? No
7. Open Source? No
8. Premium? Yes
9. Needs Infrastructure to host? Yes
10. Cloud-based? No
11. Community support? Yes
12. Supported Integrations? Mostly can integrate with all supported CI-CD tools/ will need coding knowledge
13. Supported languages? Javascript only
14. Supported frameworks for automation? Anything that runs on web
15. Supported browsers? Canary, Chrome, Chromium, Edge, Edge Beta, Edge Canary, Edge Dev, Electron, Firefox, Firefox Developer Edition, Firefox Nightly
16. Possibility of cross-browser testing? Yes
17. Need Infrastructure for cross-browser testing? Yes
PlayWright
The playwright is a Nodejs based open-source web automation library that is built on similar architecture as that of the Puppeteer. It is developed by the authors of Puppeteer and maintained by Microsoft.
Playwright can test web apps across multiple browsers: Chromium-based browsers like Google Chrome and the new Microsoft Edge, WebKit-based Apple Safari, and the Gecko-based Mozilla Firefox.
1. Who can use it? Developers or Coders, Some development knowledge needed because it requires NPM installation and all.
2. Can other/non-technical team members use it? No
3. Automation of web browsers? Yes
4. Responsive Testing? Yes, via device emulation
5. Testing on mobile web browsers? No
6. Testing on Native Mobile Applications? No
7. Open Source? Yes
8. Premium? No
9. Needs Infrastructure to host? Yes
10. Cloud-based? No
11. Community support? Yes
12. Supported Integrations? Mostly can integrate with all supported CI-CD tools/ will need coding knowledge
13. Supported Languages? JavaScript and TypeScript, Python, Java, C#
14. Supported frameworks for automation? Anything that runs on the web
15. Supported browsers? Chrome and the new Microsoft Edge, WebKit-based Apple Safari, and the Gecko-based Mozilla Firefox
16. Possibility of cross-browser testing? Yes
17. Need Infrastructure for cross-browser testing? Yes
Puppeteer
Puppeteer is an open-source Node.js library developed by Google. Puppeteer supports automation of actions on Google’s Chrome and Chromium.
1. Who can use it? Developers or Coders, Some development knowledge needed because it requires NPM installation and all.
2. Can other/non-technical team members use it? No
3. Automation of web browsers? Yes, but only Chrome or Chromium
4. Responsive Testing? Yes, via device emulation
5. Testing on mobile web browsers? No
6. Testing on native mobile applications? No
7. Open Source? Yes
8. Premium? No
9. Needs Infrastructure to host? Yes
10. Cloud-based? No
11. Community support? Yes
12. Supported Integrations? When integrated with Puppetry – can integrate with CI/CD tools, record, and playback
13. Supported Languages? Node.js
14. Supported frameworks for automation? Anything that runs on the web
15. Supported browsers? Chrome or Chromium
16. Possibility of cross-browser testing? No
17. Need Infrastructure for cross-browser testing? Cross-browser testing not possible
TestCafe
TestCafe is a Node.js based end-to-end test automation framework. This is not a Selenium-based framework and can be used for automating web applications as well as native mobile applications.
1. Who can use it? Developers or Coders.
2. Can other/non-technical team members use it? when using record and playback via Testcafe studio, non-technical team members can use too.
3. Automation of web browsers? Yes
4. Responsive Testing? Yes
5. Testing on mobile web browsers? Yes
6. Testing on native mobile applications? No
7. Open Source? Yes
8. Premium? No
9. Needs Infrastructure to host? Yes
10. Cloud-based? No
11. Community support? Yes
12. Supported Integrations? Integrate with most popular CI/CD tools
13. Supported Languages? Node.js
14. Supported frameworks for automation? Anything that runs on web
15. Supported browsers? All
16. Possibility of cross-browser testing? Yes
17. Need Infrastructure for cross-browser testing? Yes
Webdriver IO
WebDriverIO is a javascript-based end-to-end test automation framework for both mobile and test automation. It is a custom implementation of Selenium’s WebDriver API. It is written in Node.js.
1. Who can use it? Developers or Coders.
2. Can other/non-technical team members use it? No
3. Automation of web browsers? Yes
4. Responsive Testing? Yes
5. Testing on mobile web browsers? Yes
6. Testing on native mobile applications? Yes, via appium
7. Open Source? Yes
8. Premium? No
9. Needs Infrastructure to host? Yes
10. Cloud-based? No
11. Community support? Yes
12. Supported Integrations? Chrome DevTools , Google LightHouse,@wdio/devtools-service
13. Supported Languages? Node.js
14. Supported frameworks for automation? modern web frameworks such as React, Angular, Polymeror Vue.js as well as native mobile applications for Android and iOS.
15. Supported browsers? All
16. Possibility of cross-browser testing? Yes
17. Need Infrastructure for cross-browser testing? Yes
Here, we put the comparisons down as a summary for you:
FeaturesTestsigmaCypressPlaywrightPuppeteerTestCafeWebdriver IO
Who can use it?Developers, Coders as well as TestersDevelopers or CodersDevelopers or Coders, Developers or CodersDevelopers or Coders.Developers or Coders.
Can other/non-technical team members use it?Yes
No
NoNo
when using record and playback via Testcafe studio, non-technical team members can use too.
No
Automation of web browsers?YesYesYesYes, but only Chrome or Chromium
YesYes
Responsive Testing?YesYesYes, via device emulationYes, via device emulationYesYes
Testing on mobile web browsers? YesNo
NoNoYesYes
Testing on native mobile applications?YesNoNoNoNoYes, via appium
Open Source? NoNo
YesYesYesYes
Premium?YesYes
NoNoNoNo
Needs Infrastructure to host?NoYes
YesYesYesYes
Cloud-based?YesNoNoNoNoNo
Community support?No, but 24×7 support by the teamYesYesYesYesYes
Supported Integrations?Readily integrates with all popular CI-CD tools
Mostly can integrate with all supported CI-CD tools/ will need coding knowledge
Mostly can integrate with all supported CI-CD tools/ will need coding knowledgeWith Puppetry – can integrate with CI/CD tools, record, and playback
Integrates with most popular CI/CD toolsChrome DevTools , Google LightHouse,@wdio/devtools-service
Supported Languages?Test cases are written in simple EnglishJavascript onlyJavaScript and TypeScript, Python, Java, C#Node.jsNode.js Node.js
Supported frameworks for automation?Anything that runs on the webAnything that runs on webAnything that runs on the webAnything that runs on the webAnything that runs on webmodern web frameworks such as React, Angular, Polymeror Vue.js as well as native mobile applications for Android and iOS.
Supported browsers?All browsers
Canary, Chrome, Chromium, Edge, Edge Beta, Edge Canary, Edge Dev, Electron, Firefox, Firefox Developer Edition, Firefox Nightly
Chrome and the new Microsoft Edge, WebKit-based Apple Safari, and the Gecko-based Mozilla FirefoxChrome or ChromiumAllAll
Possibility of cross-browser testing?YesYesYesNoYesYes
Need Infrastructure for cross-browser testing?No
YesYesCross-browser testing not possibleYesYes
Thus, even though Protractor is soon to stop getting further updates, the options are plenty. You just need to decide which automation tool/framework works best for you.
Sports vector created by starline – www.freepik.com