Appium简介
Appium is an open source, cross-platform test automation tool for native, hybrid and mobile web apps, tested on simulators (iOS), emulators (Android), and real devices (iOS, Android, Windows).
优缺点
优点显而易见,支持webview、hybrid、native App自动化,跨平台(Windows,Linux,Mac),支持多种语言(Java、Python、Ruby、C#等),免费开源等。
架构图
安装
具体安装过程略过;
如果是通过dmg包安装的话,可以直接打开APP启动Appium或者通过node命令行启动appium;
安装成功后,通过appium-doctor可以检查安装是否完整。
启动配置项
public static void appiumStart() throws MalformedURLException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "O74DT4CY7S7P4HB6");
capabilities.setCapability("platformVersion", "5.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("appPackage", "com.koudai.weishop");
capabilities.setCapability("appActivity", ".launch.ui.activity.SplashScreenActivity");
AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}
这里介绍一下启动Appium经常会用到的几个DesiredCapabilities参数。
DesiredCapabilities参数
概念:
启动参数,即DesiredCapabilities,代表启动Appium时的参数属性,参数会随着session带入。为的是告诉appium server启动App的name和activity,platformName:以Android还是IOS方式启动,deviceName:启动浏览器还是启动移动设备等信息。
详细说明:
automationName:使用哪种自动化引擎。appium(默认)还是Selendroid(API17以下使用)
platformName:使用哪种移动平台。iOS, Android, or FirefoxOS?
platformVersion:手机操作系统版本|例如: 7.1
, 4.4
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属性互斥。
appActivity:待测试的app的Activity名字。比如MainActivity, .Settings。注意,原生app的话要在activity前加个”.”。
appPackage:待测试的app的java package。比如com.example.android.myApp, com.android.settings。
newCommandTimeout:设置命令超时时间,单位:秒。
达到超时时间仍未接收到新的命令时 Appium 会假设客户端退出然后自动结束会话。
noReset:不要在会话前重置应用状态。默认值false
。
至此,Appium的driver就启动起来了。下篇具体介绍Appium API。