Appium Tutorial

Introduction à Appium

Appium est un outil open-source conçu pour automatiser les tests sur des applications mobiles natives, hybrides et web. Il prend en charge plusieurs langages de programmation, notamment Java, Python, JavaScript, et C#.

Caractéristiques principales

Installation et Configuration

Prérequis

Étapes d'installation

  1. Installez Appium via NPM :
    npm install -g appium
  2. Installez l'interface utilisateur d'Appium Inspector :
    npm install -g appium-doctor
  3. Vérifiez la configuration avec appium-doctor :
    appium-doctor
  4. Lancez Appium :
    appium

Créer votre premier test Appium

Étape 1 : Configurer les capacités désirées

Les capacités désirées spécifient les paramètres nécessaires pour communiquer avec le périphérique ou l'émulateur.

{
  "platformName": "Android",
  "platformVersion": "11",
  "deviceName": "Pixel_4",
  "app": "/path/to/your-app.apk",
  "automationName": "UiAutomator2"
}

Étape 2 : Créer un script de test

Exemple de script en Java :

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.net.URL;

public class AppiumTest {
    public static void main(String[] args) throws Exception {
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setCapability("platformName", "Android");
        caps.setCapability("platformVersion", "11");
        caps.setCapability("deviceName", "Pixel_4");
        caps.setCapability("app", "/path/to/your-app.apk");
        caps.setCapability("automationName", "UiAutomator2");

        AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), caps);

        // Exemple : Interagir avec un élément
        MobileElement el = driver.findElementById("com.example:id/button");
        el.click();

        // Fermer le test
        driver.quit();
    }
}

Étape 3 : Exécuter le test

Compilez et exécutez votre test avec un IDE comme IntelliJ IDEA ou Eclipse.

Utilisation du Page Object Model (POM)

Classe représentant une page

import io.appium.java_client.MobileElement;
import io.appium.java_client.pagefactory.AndroidFindBy;

public class LoginPage {
    @AndroidFindBy(id = "com.example:id/username")
    private MobileElement usernameField;

    @AndroidFindBy(id = "com.example:id/password")
    private MobileElement passwordField;

    @AndroidFindBy(id = "com.example:id/loginButton")
    private MobileElement loginButton;

    public void enterUsername(String username) {
        usernameField.sendKeys(username);
    }

    public void enterPassword(String password) {
        passwordField.sendKeys(password);
    }

    public void clickLogin() {
        loginButton.click();
    }
}

Classe de test

import org.openqa.selenium.remote.DesiredCapabilities;

public class LoginTest {
    public static void main(String[] args) throws Exception {
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setCapability("platformName", "Android");
        caps.setCapability("deviceName", "Pixel_4");
        caps.setCapability("app", "/path/to/your-app.apk");

        AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), caps);

        LoginPage loginPage = new LoginPage(driver);
        loginPage.enterUsername("admin");
        loginPage.enterPassword("password123");
        loginPage.clickLogin();

        driver.quit();
    }
}

Bonnes pratiques

Ressources complémentaires

Retour à l'accueil