app自动化测试3---appium
appium介绍appium是一个自动化测试的开源工具,支持iOS和安卓平台上的原生应用、web应用、混合应用。
移动原生应用:用iOS或Android sdk写的应用。
移动web应用:使用移动浏览器访问的应用(appium支持iOS的Safari,Android的Chrome)
混合应用:原生代码封装网页视图----原生代码和web代码交互。开发者使用web技术开发应用,
然后用原生代码封装。(做自动化测试时,需要从原生页面切换到web页面,或web页面切换到
原生APP)
appium核心是一个web服务器,它提供了一套rest接口。服务器收到客户端的连接、请求,接
着在移动设备上执行这些命令,然后将执行结果放在http响应中返回给客户端。
appium界面
application path:选择路径,选择一个需要测试的APP在本地的路径。所以事先需要下载一个APP
在本地中。勾选上该选项后,每次启动appium,运行代码都会重新安装APP到设备中,可以不勾
选该选项,在测试设备中事先安装APP,先登录,则脚本可以跳过登录步骤。
package:每个APP都有一个package,而且每个APP的package都是唯一的。在做自动化测试时,
在启动参数中需要添加appPackage,appium服务器才会知道哪个APP进行自动化测试。选择application
path后,会自动生成。
Lanch Activity:启动的activity,选择application path后会自动生成。
Wait for Activity:和Lanch Activity差不多。
Launch Device:标签下面的东西用得相对比较少。
Capabilities:启动参数设置。
Plaform Name:测试APP的类型,安卓选Android。
Aotumation Name:测试引擎,选appium。当测试的app安装的机器时在4.0或之前的版本时那么
这里的引擎你就必须选择Selendroid。
Plaform Version:测试APP安装的设备的版本,Android是几点几的版本。
Device Name:设备的名称,adb devices可以查看。在测试安卓时只连接一台手机,可以不输
入设备名称。iOS则输入错误或不输入是不行的。
Advanced:这个标签是在你想同一台电脑同时控制多台手机的时候才能使用,需要更改Bootstrap
Port的端口号,记住这一点就好。
General Setting
Server address:配置appium的服务地址,一般情况下不需要更改。当需要配置多台手机启动多个
appium服务,name需要配置不同的端口。启动多个appium都是同一个端口是不行的。
Override Existing Session:session覆盖,session是会话的唯一标示。
Log To File:默认状态是没有任何数据,但是在做自动化时建议选择,因为选择之后appium在运
行时产生的日志都会保留到你设置的问题件,这个对后期的bug定位有相当大的帮助。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
开发者设置:(左边第三个按钮)很少用,可以忽略。
关于:(左边第四个按钮),查看当前appium的版本信息。
元素侦测:(右边第二个按钮):这个按钮的功能和firebug的定位工具功能类似,但是他还有一
个功能,他会检测你的各个系统配置是否正确,如果前面各项参数不正确时,使用该功能会报错。
如果你不正常连接手机也不行。还是建议用sdk工具里面自带的uiautomatorviewer。
启动服务(右边第一个按钮):所有参数配置好后你需要做的就是启动appium服务,只有启动之
后你才能够做自动化。
清除日志(右下角):在写脚本、调试过程中会产生很多的日志,但是你可能想看的只是中间
某个时间段的,那么你在这个时候可以将页面的日志清除。
appium工作原理
做Android或iOS自动化测试时,考虑到安全等因素都不是直接去操作APP的,都是借助appium本
身公布出来的工具,Android的是Automator,iOS借助的是UIAutomation。所以我们所做的自动
化测试是使用这些工具去调用他们公布出来的框架的方法,然后再去执行。
appium是基于webdriver协议的:
它可以把你的自动化测试脚本,翻译成UIAutomator能识别的Java语言,然后调用UIAutomator来执
行测试。 -------》Android自动化测试
它也可以把你的自动化测试脚本,翻译成UIAutomation能识别的JavaScript语言,然后调用UIAutomation
来执行测试。-------》iOS自动化测试
它只是一个中间人。
Android:
我们电脑(client)运行已经编写好的自动化测试脚本,这些脚本调用的是webdriver的接口,appium
Server接收到client的发过来的命令后,将这些脚本转化成uiautomator认识的Java语言,然后由由
UIAutomator执行自动化。
iOS:
ios使用的是UIAutomation,首先client发送脚本请求,再到我们的appium服务,这里appium会调用
instruments去启动一个server,然后让他去执行后面的操作来完成自动化。备注:UIAutomation是
instruments下面的一个工具。
:handshake
页:
[1]