作者: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库使其可以使用任意的语言,包括PythonRuby、Node.js,Objective,java等。

具体可参见: http://blog.csdn.net/kaka1121/article/details/51732920

其主要工作流程如下:

这里附上一个对比图

APP自动化难点分析

  1. 一定的编码能力门槛。搭建测试框架、熟悉Appium API、成功启动APP、熟悉adb,往往会把新人拦在门槛外;

  2. 控件(元素)获取*工作量大、繁杂*。APP自动化大量工作集中在“获取测试所需页面元素的Xpath”,以及“校验获取Xpath是否能唯一定位元素”;

  3. 测试用例稳定性低。因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)--框架简介的更多相关文章

  1. APP自动化框架LazyAndroid使用手册(2)--元素自动抓取

    作者:黄书力 概述 前面的一篇博文简要介绍了安卓自动化测试框架LazyAndroid的组成结构和基本功能,本文将详细描述此框架中元素自动抓取工具lazy-uiautomaterviewer的使用方法. ...

  2. APP自动化框架LazyAndroid使用手册(3)--核心API介绍

    作者:黄书力 概述 在前一篇博文中,简要介绍了一款安卓UI自动化测试框架LazyAndroid (http://blog.csdn.net/kaka1121/article/details/53204 ...

  3. APP自动化框架LazyAndroid使用手册(4)--测试模板工程详解

    概述 前面的3篇博文分别对lazyAndroid的框架简介.元素抓取和核心API进行了说明,本文将基于框架给出的测试模板工程,详细阐述下使用该框架进行安卓UI自动化测试的步骤. 模板工程 先来看一下模 ...

  4. Koa框架教程,Koa框架开发指南,Koa框架中文使用手册,Koa框架中文文档

    我的博客:CODE大全:www.codedq.net:业余草:www.xttblog.com:爱分享:www.ndislwf.com或ifxvn.com. Koa -- 基于 Node.js 平台的下 ...

  5. APP自动化针对PO模式进行二次封装之basepage

    APP自动化跟WEB自动化所使用的框架基本一样,都是采用的PO模式结合pytest框架编写自动化测试脚本,为了提高代码的复用性.稳定性和易维护性,我们针对PO模式进行了二次封装,将日志,等待以及异常截 ...

  6. Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)

    概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...

  7. App 自动化框架设计思路

    最近在整理和学习Appium+Java 自动化框架,对APP自动化框架的部分设想参考了一些文章,先进行整理下: 框架的思路一: 思考引入:https://www.cnblogs.com/yunfeio ...

  8. Navi.Soft30.框架.WinForm.开发手册

    阅读导航 Navi.Soft30.Core类库.开发手册 http://www.cnblogs.com/xiyang1011/p/5709489.html Navi.Soft30.框架.WinForm ...

  9. 手机APP自动化环境搭建

    1 摘要 近年来,随着移动应用从数量上和逻辑复杂程度上的增长,以及产品发布周期的紧缩,使得回归测试迫在眉睫,鉴于此APP自动化测试变得越来流行,当前主流的APP自动化工具有:Appium.Roboti ...

随机推荐

  1. POJ-3295 Tautology---栈+表达式求值

    题目链接: https://vjudge.net/problem/POJ-3295 题目大意: 输入由p.q.r.s.t.K.A.N.C.E共10个字母组成的逻辑表达式WFF      其中      ...

  2. SQL server2017的操作(练习题)

    题目: 假设有教材管理数据库BM,包括3个基本表: 教材(书号,书名,作者,出版社) B(Bno, Bname, Author, pub) 班级(班号,专业,所在系,人数) C(Cno, Spe, D ...

  3. logback生成多个不同的日志文件

    用logback生成日志文件做日志分析,日志写到多个文件中 http://stackoverflow.com/questions/2488558/logback-to-log-different-me ...

  4. 查看 Secret - 每天5分钟玩转 Docker 容器技术(156)

    可以通过 kubectl get secret 查看存在的 secret. 显示有两个数据条目,kubectl describe secret 查看条目的 Key: 如果还想查看 Value,可以用  ...

  5. c#代码输入图片

    Image bgimage = Image.FromFile(flieUrl + bgImg); if (bgimage != null) { Bitmap bmp1 = new Bitmap(bgi ...

  6. sql serve 数据库游标的使用

      什么是游标? 通俗来讲,个人理解,游标是对一个查询结果集,每次取出一条数据进行处理操作.   使用场景: 例如,我们要修改一个表300条数据,且每条数据修改的内容不一样,那么平时用的update ...

  7. [LeetCode] Parse Lisp Expression 解析Lisp表达式

    You are given a string expression representing a Lisp-like expression to return the integer value of ...

  8. [LeetCode] Output Contest Matches 输出比赛匹配对

    During the NBA playoffs, we always arrange the rather strong team to play with the rather weak team, ...

  9. MySQL 并行复制从库发生自动重启分析

    并行复制从库发生自动重启分析 背景 半同步复制从库在晚上凌晨2点半发生自动重启,另一个异步复制从库在第二天凌晨3点也发生了自动重启. 分析 版本mysql 5.7.16 mysql> show ...

  10. jdk1.7中的常量池

    在探究jdk1.7中的常量池,我们可以先看看以下的这段代码 public static void main(String[] args) throws Throwable { List<Stri ...