本文共 1532 字,大约阅读时间需要 5 分钟。
Appium是一个开源、跨平台的测试框架,基于webdriver(又名Selenium 2,集成了 Selenium 1.0 以及以前的WebDriver,既支持 Selenium API 也支持 WebDriver API)测试框架添加对移动设备自动化api扩展而成,可以用来测试原生APP以及混合的移动端应用,支持iOS、Android及Firefox OS等终端平台。
对APP进行黑盒的自动化测试,提供了模拟各种手势操作(点击、滑动、长按等)、查找和断言机制的API,能够对各种UI控件进行操作。
UI层的自动化测试的本质都是让工具帮人实现点击、输入或等长按操作,怎么让工具做到这些操作了,当然就是依靠页面元素的定位,无论Web端还是APP端都是这样的。在Android平台上通常都是使用由Android SDK自带的工具uiautomatorviewer.bat帮助识别UI控件的布局和属性。
Appium是以c/s模式的,Appium就是服务器端,移动设备就是客户端。
Appium启动后会在PC端默认开启并监听4723端口;启动测试后会先调用adb完成一些基本的系统操作,比如检查当前可连接设备,然后会把Bootstrap.jar注入到移动设备中,这样Appium服务器就与移动设备之间建立起一个Socket通信管道;服务器端通过这个管道把测试脚本以json数据的形式向客户端POST指令,bootstrap接受到指令就会驱动uiautomator库或者uiautomation框架(是基于uiautomator框架实现查找注入事件,iOS是基于uiautomation框架实现查找注入事件)执行这些命令,此时在移动设备上就可以看见被测APP自动化的操作了;某个测试用例完成之后,客户端同样会通过管道返回一段json数据给服务器端,用以判断该case是否通过。
第一步、Android测试开发环境。使用的是集成式的ADT,步骤见《Android测试开发.docx》。
第二步、安装node.js。因为服务器端是依靠nodes.js,因为appium是依赖node来解释的,
安装后一般会自动添加到环境变量PATH中,可以按如下方式验证:
第三步、安装Appium。下载地址是http://appium.io/,安装完成之后把{安装目录}\node_modules\.bin\配置到PATH中,可以按如下方式验证:
第一步、准备一个设备,可以是真机也可以是模拟器,本次演示Android原生的模拟器。创建一个AVD,版本是4.4.2,启动且解除锁定。
第二步、准备jar包。Java测试工程中需要的API都定义在这些包中,有三个:selenium-java-*.jar、selenium-server-standalone-*.jar和java-client-*.jar。
第三步、启动Eclipse,创建Java工程中,具体见截图。
第四步、启动Appium。有两个启动文件,一是{安装}\Appium.exe,会启动一个Appium专用的控制台;而是{安装}\node_modules\.bin\appium.cmd,会占用DOS窗口作为自己的控制台。这两种方式其实是一样的,本次演示就使用第一种方式。
第五步、以JUnit Test方式run这个工程。
运行过程中,Appium的日志
运行过程中以及运行结束后,可在JUnit中查看过程和结果