Archiwa tagu: ios

Pobieranie UDID podłączonego iPhone

Jednym z wymaganych ustawień Appium jest UDID – Unique Device Identifier.

Pobieranie numeru UDID podłączonego urządzenia z systemem iOS (iPhone/iPad…) jest możliwe za pomocą komendy:

udid=$(system_profiler SPUSBDataType | grep "Serial Number: " | tail -c 41)

Oczywiście może różnić się w zależności od systemu. Testowana była na OS X 10.10.

Tak pobraną wartość można przekazać do skryptu uruchamiającego serwer Appium.

Minimalne wymagania ustawień Appium

Dzisiejszy wpis dotyczy konfiguracji Appium do testów aplikacji natywnych.

Aby Appium mogło zostać uruchomione, należy ustawić kilka podstawowych ustawień (capabilities). Można je zapisać w pliku (np. appium.txt) i odczytywać podczas uruchomienia testów lub przekazywać podczas uruchamiania serwera Appium.

Minimalne wymagane ustawienia w części [caps], to:

  1. dla systemu iOS:
    1. podpięty iPhone, aplikacja *.ipa:
      udid = "1234567890abcdefghijklmnopqrstuvwxyz0123" – wartość obowiązkowa, po której Appium rozpoznaje, czy powinno działać na prawdziwym urządzeniu, czy na symulatorze.
      app = "~/builds/ApplicationName.ipa" – wartość obowiązkowa.
    2. podpięty iPhone, aplikacja już zainstalowana na urządzeniu:
      deviceName = "iPhone-name"
      udid = "1234567890abcdefghijklmnopqrstuvwxyz0123"
      bundleId = "com.company.package"
    3. symulator – bez znaczenia, czy aplikacja jest już zainstalowana, czy Appium musi ja dopiero zainstalować – konieczne jest podanie parametru app, samo bundleId nie jest wystarczające.
      deviceName = "iPhone 5 iOS 8.1" – wartość obowiązkowa. Musi być wpisana dokładna nazwa symulatora, bez udid.
      app = "/Users/d9k/Library/Developer/Xcode/DerivedData/ApplicationName-qwertyuiopasdfghjklzxcvbnmqw/Build/Products/Debug-iphonesimulator/ApplicationName.app" – wartość obowiązkowa
      udid – w zasadzie nie można go używać, gdyż parametr ten sugeruje serwerowi Appium, że ma do czynienia z podłączonym urządzeniem.
  2. dla systemu Android:
    1. podpięty telefon z Androidem lub emulator, bez zainstalowanej aplikacji:
      platformName = "Android"
      deviceName ="dev" – wartość obowiązkowa, pomimo że podczas testowania aplikacji Android jest ignorowana (można wpisać cokolwiek).
      app = "someApp.apk" – wartość obowiązkowa.
    2. podpięty telefon z Androidem lub emulator, z zainstalowaną aplikacją:
      platformName = "Android"
      appPackage = "com.company.package"
      appActivity = ".SomeActivity"
      deviceName = "dev" – j.w.