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#.
PATH
.adb
(inclus avec Android SDK).npm install -g appium
npm install -g appium-doctor
appium-doctor
:
appium-doctor
appium
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"
}
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();
}
}
Compilez et exécutez votre test avec un IDE comme IntelliJ IDEA ou Eclipse.
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();
}
}
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();
}
}
appium-doctor
avant d'exécuter les tests.