1.Appium介绍
1,appium是开源的移动端自动化测试框架;
2,appium可以测试原生的、混合的、以及移动端的web项目;
3,appium可以测试ios,android应用(当然了,还有firefoxos);
4,appium是跨平台的,可以用在osx,windows以及linux桌面系统上;
2.Appium基本原理
在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调?
用UiAutomator的命令,实现App的自动化测试。
UiAutomator测试框架是AndroidSDK自带的AppUI自动化测试Java库。
另外由于UiAutomator对H5的支持有限,appium引入了chromedriver以及
safaridriver等来实现基于H5的自动化。
2.1.appium在android端工作流
1.client端也就是我们testscript是我们的webdriver测试脚本。
2.中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),
跟seleniumWebdriver测试框架类似,Appium?持标准的WebDriver
JSONWireProtocol。在这里提供它提供了一套REST的接口,AppiumServer接
收webdriverclient标准rest请求,解析请求内容,调?用对应的框架响应
操作。
3.appiumserver会把请求转发给中间件Bootstrap.jar,它是用java写的,安装
在手机上.Bootstrap监听4724端口并接收appium的命令,最终通过调?用
UiAutomator的命令来实现。
4.最后Bootstrap将执行的结果返回给appiumserver。
5.appiumserver再将结果返回给appiumclient。
3.Appium安装配置
3.1.限制
如果你在windows上安装appium,你没法使用预编译专用于OSX的.app文件,
你也将不能测试IOSapps,因为appium依赖OSX专用的库来支持IOS测试。这
意味着你只能通过在mac上来运行IOS的app测试。这点限制挺大。
3.2.傻瓜式安装node.js
3.2.1.查看是否安装成功
nodejs安装完毕后,需要配置环境变量
在PATH中添加:D:\ProgramFiles\nodejs;
3.3.傻瓜式安装Appium
3.3.1.成功界面
3.4.配置appium环境变量
D:\Appium\node_modules\.bin
3.5.打开控制台,查看appium环境
3.5.1.appium-doctor
3.6.配置Android—环境变量
D:\androidSDK
3.7.Python中配置appium环境(联网)
进入:D:\python\Scripts
打开控制台:
pipinstallAppium-Python-client
3.8.总结:
1) androidsdk安装完毕后,需要配置环境变量
新建ANDROID_HOME
在PATH中添加:%ANDROID_HOME%:\.....
2) nodejs安装完毕后,需要配置环境变量
在PATH中添加:D:\ProgramFiles\nodejs;
3) appium安装完毕后,需要配置环境变量
D:\ProgramFiles(x86)\Appium\node_modules\.bin;
4) 配置好后,启动cmd,
输入node-v,查看node安装版本
输入appium-doctor检查appium的安装环境是否成功,
5) 安装Python,配置环境变量
4.第一个脚本示例
4.1.首先通过eclpse启动android模拟器
4.2.启动Appium
4.3.点击左上角有“机器人”的按钮:
选择你的android版本
4.4.点击右上角的“三角”按钮启动Appium。
4.5.通过Python编写自动化测试脚本。
desired_caps是一个字典,用于在appiumserver与手机端建立会话关系时,手
机端需要告诉服务端设备相关的一些参数,根据这些参数服务端可以做出相应的
处理。
4.6.画出来的这三个,是需要在脚本中正确填写的
4.7.执行效果
5.Appium界面内容解析
5.1.整体介绍
主页面顶部从左到右依次是:
1、AndroidSettings:android相关的设置
2、GeneralSettings:全局设置,设置appium相关的内容
3、DeveloperSettings:开发者设置,一般不用需要关心
4、About:appium相关信息,不需要关心
5、Inspector:查找元素用的,windows无法使用,MAC可以使用,windows可
以不用关心。
6、LaunchAppium:启动appium按钮
7、右下角清除日志按钮。
5.2.AndroidSettings
此页面分为Application、La、、四部分,先看图
之后分析分别有什么作用
5.2.1.1、Application
本模块设置被测试app信息,如安装包路径、包名、activity等
ApplicationPath:选择要测试的apk,选择他后与全局设置中的
Pre-LaunchApplication配合,启动appium时会先把apk安装到手机(或模拟器)
再启动app。
Package:根据apk生成的app包名,之前提到过的,我们这个包的身份证,我
们需要通过这个去找到包,不然我们安装后我们通过什么去辨别这些包呢?
WaitforPackage:等待包名。
LaunchActivityactivityActivity
就是其中的一个个网页,我们启动app时需要去运行的activity,这里我们填写
首次启动页面的activity。我们选择第一启动的activity与aapt命令生成的
launchable-activity:name一致
WaitforActivity:和上面的差不多,意思是等待某个Activity打开,用的时间不是
很多,做了解。
UseBrowser:测试浏览器选择这项,与前五项互逆。及选择了他前五个就不可以
选择。
FullReset:将所有设置复位。即将手机(模拟器)恢复到启动到appium前的状
态
NoReset:不需要重置手机(模拟器)中的app
6.2.2.LaunchDevice
本模块是模拟器设置,针对的是SDK创建的模拟器,不是genymotion等其
他模拟器。
LaunchAVD:要启动的模拟器名称。
DeviceReadyTimeout:等待模拟器启动时间。
Arguments:启动模拟器时需要的参数。
6.2.3.Capabilities
运行测试的相关信息。
PlatformName:测试平台,可以选择Android、FireFoxOS、MAC版的还可以选择
IOS。
PlatformVersion:被测试手机(模拟器)版本。
DeviceName:设备名称,手机连接电脑后打开cmd输入adbdevices可获取。
Language:被测试手机(模拟器)使用语言。
Locale:被测试手机(模拟器)所属区域。
5.4.元素侦测:
这个按钮的功能和firebug的定位工具功能类似,但是他还有一个功能,他会检
测你的各个系统配置是否正确,如果前面各项参数不正确时,使用该功能会报错。
如果你不正常连接手机也不行。还是建议用sdk工具里面自带的
uiautomatorviewer。
5.5.启动服务
所有参数配置好后你需要做的就是启动appium服务,只有启动之后你才能够做
自动化。
5.6.清除日志(右下角):
在写脚本、调试过程中会产生很多的日志,但是你可能想看的只是中间某个时间
段的,那么你在这个时候可以将页面的日志清除。