Overview
Healenium is an open-source library for automated testing that leverages the power of machine learning to improve the reliability and resilience of your tests.

Healenium works by automatically detecting and healing test failures caused by changes in the UI, such as element IDs or class names. It uses advanced algorithms to analyse test results and determine the root cause of any failures, then makes the necessary adjustments to ensure that the tests continue to function correctly.

One of the key benefits of Healenium is that it reduces the amount of time and effort required to maintain automated tests. With Healenium, you can spend less time fixing failed tests and more time developing new features and functionality.

Boasting support for an extensive array of testing frameworks and environments, Healenium serves as a versatile, potent instrument for testing web applications. Its ease of installation and configuration, paired with comprehensive reporting and analysis of test results, further enhances its appeal.

It can be used with:

  • findElement/findElements methods
  • using under parent element: parent.findElements()
  • @FindBy and PageFactory
  • using semantic locators like Id, Name, ClassName, LinkText, PartialLinkText, TagName
There are two approaches for using Healenium: Healenium-Proxy and Healenium-Web.

- Healenium-Proxy: It's platform agnostic solution. Therefore, no matter which language you use, it will heal selenium-based test cases at the level of selenium server. This approach involves running a standalone proxy server that sits between the test runner (Selenium server) and the web application being tested. Healenium-Proxy able to use all Selenium supported languages Java/Python/JS/C# and frameworks. Client have to create RemoteWebDriver and connect to Healenium-Proxy instance. That will be described in more detail later.

- Healenium-Web: This approach involves integrating Healenium directly into the test code of a Java application. Healenium-Web compatible only with Java application. In all other cases you have to use Healenium-Proxy. Using Healenium-Web dependancy you have to create WebDriver and wrap it to SelfHealingDriver. That will be described in more detail later as well.
Healenium includes the following services:

  • postgres-db (PostgreSQL database to store reference selector / healing / report / DOM)
  • hlm-proxy (Proxy client betwe Selenium server and application)
  • hlm-backend (CRUD service)
  • selector imitator (Convert healed locator to convenient format)
  • selenoid / selenium-grid (Selenium server)

Overview video in 3 min.

About Healenium
Contacts
  • Anna_Chernyshova@epam.com - Project Manager
  • Dmitriy_Gumeniuk@epam.com - Project Supervisor