Skip to content

Latest commit

 

History

History
137 lines (100 loc) · 3.94 KB

File metadata and controls

137 lines (100 loc) · 3.94 KB

Desired Capabilities

As Desired Capabilities são um conjunto de configurações que informam ao servidor Appium como iniciar a sessão de teste: qual plataforma, qual dispositivo, qual app, qual driver usar, entre outros.

No Appium 2.x, o modo recomendado é usar as classes de Options (UiAutomator2Options, XCUITestOptions), mas a API de DesiredCapabilities ainda funciona.

Capabilities Essenciais

Capability Descrição
platformName Sistema operacional: Android ou iOS
appium:deviceName Nome ou ID do dispositivo/emulador
appium:automationName Driver: UiAutomator2 (Android) ou XCUITest (iOS)
appium:app Caminho absoluto para o APK/IPA
appium:appPackage Package do app (Android)
appium:appActivity Activity inicial (Android)
appium:bundleId Bundle ID do app (iOS)
appium:udid ID único do dispositivo físico
appium:platformVersion Versão do OS (ex: 13.0)

Android — UiAutomator2Options

import io.appium.java_client.android.options.UiAutomator2Options;

UiAutomator2Options options = new UiAutomator2Options();

// Plataforma e dispositivo
options.setPlatformName("Android");
options.setDeviceName("emulator-5554");
options.setPlatformVersion("13.0");

// App
options.setApp("/caminho/absoluto/para/meuapp.apk");
// Ou, se o app já estiver instalado:
options.setAppPackage("com.meuapp.android");
options.setAppActivity("com.meuapp.android.MainActivity");
options.setNoReset(true); // não reinstala o app a cada sessão

// Comportamento
options.setNewCommandTimeout(Duration.ofSeconds(60));
options.setAutoGrantPermissions(true); // aceita permissões automaticamente

iOS — XCUITestOptions

import io.appium.java_client.ios.options.XCUITestOptions;

XCUITestOptions options = new XCUITestOptions();

// Plataforma e dispositivo
options.setPlatformName("iOS");
options.setDeviceName("iPhone 14");
options.setPlatformVersion("16.0");
options.setUdid("00008101-XXXX"); // para dispositivo físico

// App
options.setApp("/caminho/para/meuapp.app");
// Ou, se o app já estiver instalado:
options.setBundleId("com.meuapp.ios");

// Comportamento
options.setAutoAcceptAlerts(true); // aceita alertas do sistema automaticamente
options.setWdaLaunchTimeout(Duration.ofSeconds(60));

Conectando a um App Já Instalado

Quando o app já está instalado e você não quer reinstalá-lo a cada teste:

Android

options.setAppPackage("com.meuapp.android");
options.setAppActivity("com.meuapp.android.SplashActivity");
options.setNoReset(true);

iOS

options.setBundleId("com.meuapp.ios");
options.setNoReset(true);

Conectando a um Dispositivo Físico

Android (via USB)

# Ative o Modo Desenvolvedor e Depuração USB no dispositivo
adb devices
# Copie o serial do dispositivo (ex: R58M11XXXXX)
options.setDeviceName("R58M11XXXXX");
options.setUdid("R58M11XXXXX");

iOS (via USB)

# Descobrir o UDID
idevice_id -l
# Ou via Xcode: Window > Devices and Simulators
options.setUdid("00008101-000XXXXXXXXXX");

Capabilities para Web Mobile

Para testar o browser do dispositivo:

UiAutomator2Options options = new UiAutomator2Options();
options.setPlatformName("Android");
options.setDeviceName("emulator-5554");
options.setBrowserName("Chrome"); // ou "Safari" no iOS

AndroidDriver driver = new AndroidDriver(new URL("http://localhost:4723"), options);
driver.get("https://meusite.com");

Boas Práticas

  • Use setNoReset(true) para testes que não precisam de estado limpo — acelera a inicialização
  • Use setAutoGrantPermissions(true) no Android para evitar que alertas de permissão quebrem os testes
  • Armazene as capabilities em um arquivo config.properties para facilitar a troca entre ambientes
  • Prefira as classes tipadas (UiAutomator2Options) em vez de DesiredCapabilities genérico

Ir para: Gestos Avançados