【移动App自动化测试4】---2基于Android系统的自动化测试环境
1.JDK环境
2.Android SDK
SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
下载链接1:https://android-sdk.en.softonic.com/download
下载链接2(网盘较快): http://tools.android-studio.org/index.php/sdk
2.1Android SDK Manager
启动SDK Manager.exe 程序就可以看到Android SDK Mannerger的主界面
Tools目录
Android SDK Tools(必须,只需下载一个版本,一般选最新版本):基础工具包,版本号带rc字样的是预览版。
Android SDK Platform-tools(必须,只需下载一个版本,一般选最新版本):从android2.3开始划出此目录,存放公用开发工具,比如adb、sqlite3等,被划分到了这里。
Android SDK Build-tools(必须,可以安装多个版本):Android项目构建工具。
Android xxx(API xx) 目录(可选的各平台开发工具)
Documentation for AndroidSdk(可选):安卓开发者官网的一些离线文档,不过下载下来打开也很慢,后面会提供另外一个离线版。
SDK Platform(必须):对应平台的开发工具,需要在哪个版本的平台下开发就下载哪个。
Samples for SDK(可选,此项在高版本tools中已不提供,需要在IDE里通过Import Sample引入,当然也可以下载离线版):内置的安卓示例程序,推荐安装。
Sources for Android SDK(可选):安卓API的源代码,推荐安装。
ARM /Intel xxxx Image(可选):各个以Image结尾的东西是支持相应平台的模拟器,我们就把它想象成一个刷机包吧。(使用真机调试或使用其它模拟器的话不需要安装)
Extras目录(可选的扩展):
Android Support Repository(可选):主要是方便在gradle中使用Android Support Libraries,因为Google并没有把这些库发布到maven center或者jcenter去,而是使用了Google自己的maven仓库。
Intel x86 Emulator Accelerator(HAXM installer)(可选):windows平台的Intel x86模拟器加速工具,配合Intel x86 atom/atom_64 System Image使用可加快模拟器的运行速度
2.2Android SDK文件目录
add-ons
这里面保存着附加库,第三方公司为android 平台开发的附加功能系统。比如GoogleMaps,当然你如果安装了OphoneSDK,这里也会有一些类库在里面。
docs
这里面是Android SDKAPI参考文档,所有的API都可以在这里查到。
extras
该文件夹下存放了Android support v4,v7,v13,v17包; 还有google提供额USB驱动、Intel提供的硬件加速等附加工具包, 和market_licensing作为AndroidMarket版权保护组件,一般发布付费应用到电子市场可以用它来反盗版。
platforms
是每个平台的SDK真正的文件,存放了不同版本的android系统。里面会根据APILevel划分的SDK版本。
samples
是Android SDK自带的默认示例工程,里面的apidemos强烈推荐初学者运行学 习,对于SQLite数据库操作可以查看NotePad这个例子,对于游戏开发Snake、LunarLander都是不错的例子,对于Android主 题开发Home则是androidm5时代的主题设计原理。
2.3环境变量设置
- a系统变量里面添加变量名 ANDROID_HOME 路径为实际存放SDk的路径
- b其他几个路径配置到系统环境Path中
- c.配置检测(adb、appt)
3.UIAutomator
3.1说明
Android SDK在4.3中提供了如下工具来支持UI自动化测试:
- uiautomatorviewer – 一个图形界面工具来扫描和分析应用的UI控件。存放在tools目录
- uiautomator – 一个测试的Java库,包含了创建UI测试的各种API和执行自动化测试的引擎。
要使用该工具,需要满足如下条件:
- Android SDK Tools, Revision 21 or higher
- Android SDK Platform, API 18 or higher
3.2使用方法
- 开启真机(或模拟器)的USB调式模式后连接电脑
- 打开设备上的App界面
- 启动UI Automatorviewer
- 获取对应页面的元素(多设备连接时要选择需要获取元素的设备)
3.3常见错误
报错1
Error while parsing UI hierarchy XML file: Invalid ui automator hierarchy file.
一般Andriod 4.X系统会容易出现,换5.X及以上的系统OK
报错2
java.lang.ArrayIndexOutOfBoundsException
一般是设备息屏,导致页面没有元素显示,获取时数组地址越界报错,**设备重启UI Auto即可
报错3
Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!
这个错的原因是因为没有dump下来界面的信息保存到uidump.xml文件中,而该文件保存在/data/local/tmp下,如果没生成该文件,uiautomatorviewer就会报这个错。
解决方案为:重启设备或者重新连接
4.常见模拟器
个人使用:
Genymotion:
中文官网:http://www.genymotion.net/question/
官网:https://www.genymotion.com/
其他:
1、BlueStacks
印度公司研发。对于国内部分流行游戏兼容性没有及时支持。受制于内核技术,虽然推出时间长,但是游戏兼容性,尤其是性能欠佳。
2、靠谱助手
国内最早(2013年开始)基于Bluestacks内核的安卓模拟器,优化了使用界面。但是靠谱缺少属于自己的内核技术,在兼容性和性能方面需要提升,产品不成熟。
3、海马玩
国内首款基于Oracle Virtualbox商业版的安卓模拟器,2014年底产品推出时与Bluestacks内核的安卓模拟器形成鲜明对比,版本与功能更新速度慢,弹出广告插件多,占用资源明显。
4、逍遥安卓(http://www.xyaz.cn/)
2015年中推出的基于Virtualbox深度定制的安卓模拟器。业界首创的一键多开是其亮点。版本更新快,需求响应及时。模拟器性能和兼容性均不错,流畅、口碑好。
5、夜神模拟器(https://www.yeshen.com/)
另一款基于Virtualbox定制的安卓模拟器,直接集成NOVA桌面是它的一大特色。本套教程将基于夜神模拟器来演示讲解。
下一篇: 疯狂的持续集成之路