Hi Vanshu,

Thanks for starting this thread!



I would also like to bring Playwright into the discussion - 
https://playwright.dev/ and https://github.com/microsoft/playwright



  *   Playwright has gained a lot of traction over the last few years and is a 
modern tool for UI automation of web apps. It is backed by Microsoft and has a 
fairly regular release cadence
  *   Supports APIs in Node.js, Java, Python, .NET
  *   Browser support includes Chromium, Firefox, WebKit (Safari), Chrome and 
Edge
  *   Supports headless and headed modes on all browsers and platforms: 
Windows, Linux, Mac
  *   It can hook easily with Test Runners like JUnit, TestNG, thereby enabling 
features of test runners like Before/After annotations, parallel tests, ability 
to rerun failed tests
  *   Provides debugging capabilities such as traceviewer to check sequence of 
test actions, state of the page before and after the action



Thanks,

Vivek Sharma



On 14/07/23, 1:52 PM, "Hassija, Vanshu" <vhass...@visa.com.inva 
<mailto:vhass...@visa.com.inva>LID> wrote:





Hello all,





During our ongoing efforts to upgrade libraries to their latest versions, we 
have discovered that ambari-web currently relies on PhantomJS as the testing 
framework. However, we have encountered a significant issue: PhantomJS has been 
deprecated, and the last available version lacks support for ES6 features. As 
this package is no longer maintained, it is unlikely to receive future updates 
that introduce new JavaScript functionalities.





To address this concern, we have evaluated various alternatives and have 
determined that transitioning from PhantomJS to Puppeteer would be the most 
beneficial course of action.





* Puppeteer is a powerful Node.js library developed by the Chrome team at 
Google. It offers a high-level API for automating headless Chrome or Chromium 
instances, enabling seamless interaction with web pages, automated testing, and 
data scraping.

* By embracing Puppeteer, we can leverage a modern and actively maintained tool 
that fully supports ES6 and provides a wide range of features.

* Some notable advantages include:





Full ES6 Support: Puppeteer enables the use of the latest JavaScript updates, 
ensuring compatibility with future updates and language enhancements.





Robust Feature Set: Puppeteer offers powerful debugging capabilities, 
screenshot generation, and PDF rendering, making it a versatile choice for web 
automation tasks.





Extensive Documentation and Community Support: Puppeteer benefits from 
comprehensive documentation and a thriving community, providing reliable 
resources and assistance for developers.









While Puppeteer offers numerous benefits, we also want to address some 
potential challenges and limitations associated with it:





* Increased Code Complexity: Transitioning to Puppeteer may require significant 
code changes and a learning curve for developers unfamiliar with the library.

* Performance Impact: Running Puppeteer tests can be resource-intensive and may 
have an impact on overall test execution time.









On the other hand, we have also considered another popular testing framework 
called Cypress, which offers the following advantages:





* Simplified API: Cypress provides a clean and intuitive API that simplifies 
test creation and maintenance.

* Real-Time Reloads: Cypress offers real-time reloads while editing tests, 
making the development and debugging process more efficient.





However, based on our experimentation and evaluation, we have found Puppeteer 
to be particularly well-suited for our requirements and the future of 
ambari-web.





To ensure we make an informed decision, we welcome your input and suggestions. 
If you have any alternative frameworks in mind or insights about Puppeteer, 
Cypress, or any other relevant tools, please feel free to share them with us. 
We value your expertise and contributions to the open source community.





Thanks

Vanshu Hassija












Reply via email to