Skip to content

healenium/healenium-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Healenium-Proxy

Docker Pulls License @healenium

Table of Contents

Overall information

Healenium installation

Healenium installation without Docker

Language Examples

Overall information

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.

Docker-compose includes the following services:

  • postgres-db (PostgreSQL database to store etalon selector / healing / report)
  • hlm-proxy (Proxying client requests to the Selenium server.)
  • hlm-backend (CRUD service)
  • selector imitator (Convert healed locator to convenient format)
  • selenoid/selenium-grid (Selenium server)

img.png

Healenium installation

Clone Healenium repository:

git clone https://github.com/healenium/healenium.git

Run Healenium with Selenium-Grid:

docker-compose up -d

Run Healenium with Selenoid:

docker-compose -f docker-compose-selenoid.yaml up -d

Run Healenium with Appium only

docker-compose -f docker-compose-appium.yaml up -d

More details about integration Healenium with Appium here

Healenium installation without Docker

Go to shell-installation:

cd shell-installation

There are web and remote options to run healenium.

  1. Start PostgeSql server.
  • Create user (healenium_user/YDk2nmNs4s9aCP6K) (example data)
  • Set attribute 'Can Login' (true) to user
  • Create database (healenium) and set owner healenium_user
  • Create schema (healenium) and set owner healenium_user
  1. Specify your db user and password data in the bash script 'start_healenium.sh'.

  2. Setup selenium server (selenium-grid)

Download healenium services

download_services.sh

Run shell command to launch healenium components

start_healenium.sh

Language examples

    /**
    * "http://127.0.0.1:8085" OR "http://localhost:8085" if you are using locally running proxy server
    *
    * if you want to use a remote proxy server,
    * specify the ip address of this server - "http://remote_ip_address:8085"
    */
Java:
    String nodeURL = "http://localhost:8085";

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--no-sandbox");
    options.addArguments("--disable-dev-shm-usage");

    WebDriver driver = new RemoteWebDriver(new URL(nodeURL), options);
Python
    nodeURL = "http://localhost:8085"
    
    options = webdriver.ChromeOptions()
    options.add_argument('--no-sandbox')
    
    current_webdriver = webdriver.Remote(
        command_executor=nodeURL,
        options=options,
    )
C#
    String nodeURL = "http://localhost:8085";

    ChromeOptions optionsChrome = new ChromeOptions();
    optionsChrome.AddArguments("--no-sandbox");
    
    RemoteWebDriver driverChrome = new RemoteWebDriver(new Uri(nodeURL), optionsChrome);
JavaScript
    const NODE_URL = "http://localhost:8085";

    let args = [
        "--no-sandbox"
    ];

    let chromeCapabilities = selenium.Capabilities.chrome()
        .set('chromeOptions', { args });

    let builder = new selenium.Builder()
        .forBrowser('chrome')
        .withCapabilities(chromeCapabilities);

    let driver = await builder.usingServer(NODE_URL).build();

Community / Support