一般的測試只需求設置以下幾個參數即可:
1 public void setup() throws Exception{ 2 DesiredCapabilities capabilities = new DesiredCapabilities(); 3 capabilities.setCapability("platformName", "Android"); 4 capabilities.setCapability("platformVersion", "4.4"); 5 capabilities.setCapability("deviceName","Android Emulator"); 6 capabilities.setCapability("appPackage", "io.appium.unlock"); 7 capabilities.setCapability("appActivity", ".Unlock"); 8 driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 9 }
其它:
Appium的DesiredCapabilities是擴展了webdriver的Desired Capabilities的,下面的一些通用配置是需要指定的:
- automationName:使用哪種自動化引擎。appium(默認)還是Selendroid?
- platformName:使用哪種移動平台。
iOS
,Android
, orFirefoxOS?
- deviceName:啟動哪種設備,是真機還是模擬器?
iPhone Simulator
,iPad Simulator
,iPhone Retina 4-inch
,Android Emulator
,Galaxy S4
, etc... - app:應用的絕對路徑,注意一定是絕對路徑。如果指定了appPackage和appActivity的話,這個屬性是可以不設置的。另外這個屬性和browserName屬性是沖突的。
- browserName:移動瀏覽器的名稱。比如Safari' for iOS and 'Chrome', 'Chromium', or 'Browser' for Android;與app屬性互斥。
- udid:物理機的id。比如1ae203187fc012g。
下面這些屬性是android平台特定的:
- appActivity:待測試的app的Activity名字。比如MainActivity, .Settings。注意,原生app的話要在activity前加個"."。
- appPackage:待測試的app的java package。比如com.example.android.myApp, com.android.settings。
Appium在iOS端自動化測試底層使用的是官方的 UI Autoamtion 。在Android端,4.2以上使用的官方的 Uiautomator ,4.1以下使用的時eBay的 selendroid 。