java-appium自动化测试之DesiredCapabilities

一般的测试只需求设置以下几个参数即可:

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