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的,以京东钱包app的登陆和转账功能测试为例的第一个测试用例。
小结
本文简单介绍了LazyAndroid框架,后续文章会手把手详解LazyAndroid的入手使用,欢迎继续阅读
APP自动化框架LazyAndroid使用手册(1)--框架简介的更多相关文章
- APP自动化框架LazyAndroid使用手册(2)--元素自动抓取
作者:黄书力 概述 前面的一篇博文简要介绍了安卓自动化测试框架LazyAndroid的组成结构和基本功能,本文将详细描述此框架中元素自动抓取工具lazy-uiautomaterviewer的使用方法. ...
- APP自动化框架LazyAndroid使用手册(3)--核心API介绍
作者:黄书力 概述 在前一篇博文中,简要介绍了一款安卓UI自动化测试框架LazyAndroid (http://blog.csdn.net/kaka1121/article/details/53204 ...
- APP自动化框架LazyAndroid使用手册(4)--测试模板工程详解
概述 前面的3篇博文分别对lazyAndroid的框架简介.元素抓取和核心API进行了说明,本文将基于框架给出的测试模板工程,详细阐述下使用该框架进行安卓UI自动化测试的步骤. 模板工程 先来看一下模 ...
- Koa框架教程,Koa框架开发指南,Koa框架中文使用手册,Koa框架中文文档
我的博客:CODE大全:www.codedq.net:业余草:www.xttblog.com:爱分享:www.ndislwf.com或ifxvn.com. Koa -- 基于 Node.js 平台的下 ...
- APP自动化针对PO模式进行二次封装之basepage
APP自动化跟WEB自动化所使用的框架基本一样,都是采用的PO模式结合pytest框架编写自动化测试脚本,为了提高代码的复用性.稳定性和易维护性,我们针对PO模式进行了二次封装,将日志,等待以及异常截 ...
- Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)
概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...
- App 自动化框架设计思路
最近在整理和学习Appium+Java 自动化框架,对APP自动化框架的部分设想参考了一些文章,先进行整理下: 框架的思路一: 思考引入:https://www.cnblogs.com/yunfeio ...
- Navi.Soft30.框架.WinForm.开发手册
阅读导航 Navi.Soft30.Core类库.开发手册 http://www.cnblogs.com/xiyang1011/p/5709489.html Navi.Soft30.框架.WinForm ...
- 手机APP自动化环境搭建
1 摘要 近年来,随着移动应用从数量上和逻辑复杂程度上的增长,以及产品发布周期的紧缩,使得回归测试迫在眉睫,鉴于此APP自动化测试变得越来流行,当前主流的APP自动化工具有:Appium.Roboti ...
随机推荐
- POJ-3295 Tautology---栈+表达式求值
题目链接: https://vjudge.net/problem/POJ-3295 题目大意: 输入由p.q.r.s.t.K.A.N.C.E共10个字母组成的逻辑表达式WFF 其中 ...
- SQL server2017的操作(练习题)
题目: 假设有教材管理数据库BM,包括3个基本表: 教材(书号,书名,作者,出版社) B(Bno, Bname, Author, pub) 班级(班号,专业,所在系,人数) C(Cno, Spe, D ...
- logback生成多个不同的日志文件
用logback生成日志文件做日志分析,日志写到多个文件中 http://stackoverflow.com/questions/2488558/logback-to-log-different-me ...
- 查看 Secret - 每天5分钟玩转 Docker 容器技术(156)
可以通过 kubectl get secret 查看存在的 secret. 显示有两个数据条目,kubectl describe secret 查看条目的 Key: 如果还想查看 Value,可以用 ...
- c#代码输入图片
Image bgimage = Image.FromFile(flieUrl + bgImg); if (bgimage != null) { Bitmap bmp1 = new Bitmap(bgi ...
- sql serve 数据库游标的使用
什么是游标? 通俗来讲,个人理解,游标是对一个查询结果集,每次取出一条数据进行处理操作. 使用场景: 例如,我们要修改一个表300条数据,且每条数据修改的内容不一样,那么平时用的update ...
- [LeetCode] Parse Lisp Expression 解析Lisp表达式
You are given a string expression representing a Lisp-like expression to return the integer value of ...
- [LeetCode] Output Contest Matches 输出比赛匹配对
During the NBA playoffs, we always arrange the rather strong team to play with the rather weak team, ...
- MySQL 并行复制从库发生自动重启分析
并行复制从库发生自动重启分析 背景 半同步复制从库在晚上凌晨2点半发生自动重启,另一个异步复制从库在第二天凌晨3点也发生了自动重启. 分析 版本mysql 5.7.16 mysql> show ...
- jdk1.7中的常量池
在探究jdk1.7中的常量池,我们可以先看看以下的这段代码 public static void main(String[] args) throws Throwable { List<Stri ...