首页 > 代码库 > APP自动化框架LazyAndroid使用手册(1)--框架简介
APP自动化框架LazyAndroid使用手册(1)--框架简介
作者:cryanimal QQ:164166060
APP自动化简介
APP自动化,即通过自动化的方式,对APP施行一系列的仿按键输入、触摸屏输入、手势输入等操作,以达到对APP的功能进行自动化测试的目的。
其一般过程如下图所示:
APP自动化常用工具简介
Monkey
Monkey 是Android SDK 自带的自动化测试工具,可以运行在模拟器里或实际设备中,它向系统发送随机的用户事件流,如按键输入、触摸屏输入、手势输入、Sensor 事件等, 实现对正在开发的应用程序进行表现或者压力测试。
如其名,Monkey主要用于验证app在不同的机器中,随机的事件中,是否有报错、崩溃、闪退等问题,严格上来说,不属于功能测试范畴,更多测的是兼容性、稳定性、性能表现等。
具体可参见:http://blog.csdn.net/yafeng_0306/article/details/7283075
Robotium
Robotium主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。
具体可参见:http://blog.csdn.net/luckyyulin/article/details/19044979
Appium
Appium一款开源自动化测试工具,可以非常快捷的为iOS和Android移动平台创建功能自动化测试用例。相比其他的移动自动化测试工具,Appium测试由于调用了Selenium的client库使其可以使用任意的语言,包括Python、Ruby、Node.js,Objective,java等。具体可参见: http://blog.csdn.net/kaka1121/article/details/51732920
其主要工作流程如下:
这里附上一个对比图
APP自动化难点分析
-
一定的编码能力门槛。搭建测试框架、熟悉Appium API、成功启动APP、熟悉adb,往往会把新人拦在门槛外;
-
控件(元素)获取*工作量大、繁杂*。APP自动化大量工作集中在“获取测试所需页面元素的Xpath”,以及“校验获取Xpath是否能唯一定位元素”;
-
测试用例稳定性低。因Android操作系统不同、APP UI的多变导致的XPATH不稳定等因素,导致测试用例也不稳定,测试用例本身问题多于发现的bug,维护成本高;
LazyAndroid框架简介
LazyAndroid致力于解决以上三个难点,降低入门门槛和学习成本,简化元素获取&编码工作,提高测试用例运行稳定性,从而达到快速简洁地完成原生APP(Android)自动化工作的目的。
LazyAndroid基于appium,由三部分组成:
1.元素获取插件:LazyUiAutomatorViewer
window应用程序,基于UiAutomatorViewer,用于抓取原生APP页面上的常用控件(可批量或单个抓取),生成基于LazyAndroid框架的Java代码,解决繁杂的元素的获取问题。
获取地址:http://download.csdn.net/detail/kaka1121/9685936
使用方法:将通过上述地址下载的jar包放到安卓安装目录的lib下面 (\Android\android-sdk\tools\lib) ,替换掉原来的同名jar包,再双击安卓安装目录的tools目录下的uiautomatorviewer.bat (\Android\android-sdk\tools\uiautomatorviewer.bat),即可启动 LazyUiAutomatorViewer进行元素抓取。
2.APP操作API:LazyAndroid-API
提供安卓基本控件的使用和手机的滑动、按键等基本操作,增加了元素查找的重试机制、异常处理截屏等功能。结合LazyUiautomaterViewer工具自动生成的bean层Java代码,更可以使QA可以无需亲自动手完成具体页面中控件的抓取,无需关心appium api的使用,即可轻松完成测试逻辑代码的书写。
3.模板工程:LazyAndroid-template
提供Maven管理的,基于Spring+Testng的,包含???的,方便连接各种数据库的java模板工程,并提供以京东钱包app的登陆和转账功能测试为例的第一个测试用例。
小结
本文简单介绍了LazyAndroid框架,后续文章会手把手详解LazyAndroid的入手使用,欢迎继续阅读
APP自动化框架LazyAndroid使用手册(1)--框架简介