Healenium with Appium
Healenium is an open-source test automation tool that helps you to test your mobile applications as well. It uses LSC algorithms to identify and solve problems in your mobile app. Appium is an open-source test automation framework that allows you to test your mobile applications on different platforms. With Appium, you can write test scripts in your favourite programming language, such as Java, Python, Ruby, and more.
Requirements:

  • Appium
  • Device
    Install Healenium with Docker
    1. Make sure you have the recent Docker version installed.
    2. Download latest version or clone Healenium repository:
    Structure of archive:

    • docker-compose-appium.yaml - compose file to use Healenium with mobile Appium framework.
    • /db/init/init.sql - init sql file for PostgreSQL
    • docker-compose.yaml - compose file to use Healenium with Solenoid as server.
    • docker-compose-selenium-grid.yaml - compose file to use Healenium with Selenium Grid as server.
    • docker-compose-web.yaml - compose file to use Healenium with web approach.
    • /shell-installation/ - directory for install Healenium without docker. That will be described in more detail later.
    Healenium-proxy is a component of Healenium that helps you to integrate Healenium with Appium. It acts as a proxy server between your mobile app and Appium and captures the necessary information to perform self-healing.

    The 'SELENIUM_SERVER_URL' environment variable is used to set the URL of the Appium server that Healenium-proxy should connect to. By using this environment variable, you can easily configure Healenium-proxy to work with your Appium server.
    - SELENIUM_SERVER_URL=http://host.docker.internal:4723/wd/hub

    The default behavior is to connect to the local Appium server.
    Run Healenium with Appium
    docker-compose -f docker-compose-appium.yaml up -d
    Install Healenium without Docker
    The setup instructions for Healenium-Appium without Docker are the same as for Healenium-Proxy
    Init driver instance of AppiumWebDriver

    Create a AppiumWebDriver with the address of the Healenium-Proxy server. Example in Python.
    from appium import webdriver
    
    # Healenium-Proxy URL
    nodeURL = "http://localhost:8085"
    
    # Example desired capabilities
    desired_caps = {
        'platformName': 'Android',
        'platformVersion': '11',
        'deviceName': 'Android Emulator'
        ...
    }
    
    driver = webdriver.Remote(nodeURL, desired_caps)
    
    String nodeURL = "http://localhost:8085";
    
    DesiredCapabilities capabilities = new DesiredCapabilities();    
    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");       
    capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11");       
    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");        
    ...
    
    AppiumDriver driver = new AppiumDriver(new URL(nodeURL), capabilities);
    
    const { remote } = require('webdriverio');
    
    const options = {
      capabilities: {
        platformName: 'Android',
        platformVersion: '11',
        ...
      },
      hostname: 'localhost',  // Replace with the IP address of your Appium server
      port: 8085,
      path: '/',
      logLevel: 'error'
    };
    
    (async () => {
      const driver = await remote(options);
    })();
    String nodeURL = "http://localhost:8085";
    
    AppiumOptions options = new AppiumOptions();
    options.AddAdditionalCapability("platformName", "Android");
    options.AddAdditionalCapability("platformVersion", "11");
    options.AddAdditionalCapability("deviceName", "Android Emulator");
    ...
    
    Uri serverUri = new Uri("nodeURL");  // Replace with the URL of your Appium server
    
    AndroidDriver<AndroidElement> driver = new AndroidDriver<AndroidElement>(serverUri, options);
    
    Configuration
    Evirovemend variables of Healenium-proxy (docker-compose-appium.yaml):
    Evirovemend variables of Healenium-backend (docker-compose-appium.yaml):

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