android ui自动化测试框架有哪些,自动化测试框架对比(UIAutomator、Appium、Robotium)...
一、原理
1.UiAutomator——基于UIAutomation的用户界面自动化测试框架,可以跨应用工作,谷歌亲生的。
Android4.3之前:使用inputManager或者更早的WindowsManager来注入KeyEvent
Android4.3之后:使用Accessibility APIs来注入事件。(AccessibilityService本来是做一些辅助功能的,提供了一系列的事件回调,帮助我们指示一些用户及界面的状态变化,主要给残障人群提供帮助。)
2.Robotium——基于Instrumentation开发出来的一套测试框架
Instrumentation可以把测试包和目标测试应用加载到同一个进程中进行。既然各个控件和测试代码都运行在同一个进程中了,测试代码当然就可以调用这些控件的方法了,同时修改和验证这些控件的一些项就不在话下了。
Instrumentation的运行原理:InstrumentationTestRunner会在目标应用代码运行之前调用onCreate方法建立一个新的线程并为这个线程添加一个消息队列,这个线程循环处理其他线程发过来的消息事件,并与之进行交互。
跨应用:Android4.3之后Instrumentation引入了getUiAutomation接口的实例进行跨应用测试。
3.Appium——跨平台,允许采用同一套API在不同的平台(IOS,Android)上编写测试代码,让测试套件在IOS和Android平台上实现代码复用成为可能。
Appium的核心是一个暴露了REST API的网络服务器。这个服务器接收客户端过来的连接,监听客户端过来的命令,在移动设备上运行命令,然后把代表命令运行结果的HTTP响应包发送回客户端。
二、优缺点对比
UiAutomator
Robotium
Appium
是否支持设备无源码测试(黑盒测试)
是
是
是
能否进行跨应用测试
能
不能
能
是否是谷歌原生
是
不是
不是
支持编程语言
Java
Java
几乎所有语言
是否有签名一致的问题
否
是
否
是否需要解决中文输入问题
是
否
是
建议开发团队增加的控件信息
Content Description
resource-id
Content Description
是否需要API17及以上
是
否
否
Junit支持版本
Junit4
Junit3
Junit3/Junit4
是否支持webview
否
是
是
支持平台
Android
Android
IOS
三、补充内容——Android三种注入事件的方式
1、使用内部APIs(内部API是谷歌没有对外开放的代码,存在一定的风险)
通过获得WindowManager的一个实例来访问injectKeyEvent/injectPointerEvent这两个事件注入方法。
在应用内可正常工作,在应用外不能正常工作(INJECT_EVENTS是需要系统权限的)。
2、使用instrumentation对象(开放的API,比内部API干净)
通过instrumentation的一个实例来访问injectEvent,同上面的内部APIs的方法。
所以在应用内部可以正常的工作,在应用外部不嫩正常的工作。
3、直接注入事件到设备 /dev/input/eventX
linux以系统设备的方式向用户暴露了一套统一的事件注入接口 /dev/input/eventX(其中X代表一个整数)。我们可以直接调用。
需要rooted过的设备,如:
adb shell
su
http://blog.csdn.net/lv18092081172/article/details/52123470
chmod 666 /dev/input/event3
android ui自动化测试框架有哪些,自动化测试框架对比(UIAutomator、Appium、Robotium)...相关推荐
- MAC中在eclipse luna上搭建移动平台自动化测试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
这几天因为原来在用的hp laptop的电池坏掉了,机器一不小心就断电,所以只能花时间在自己的mackbook pro上重新搭建整套环境,大家都知道搭建环境是个很琐碎需要耐心的事情,特别是当你搭建的安 ...
- 华为python自动化测试框架_10个自动化测试框架,测试工程师用起来
摘要:快速实现质量是必要的,因此质量保证得到了很多关注.为了满足卓越的质量和更快的上市时间的需求,自动化测试将被优先考虑.对于微型.小型和中型企业(SMEs)来说,自动化自身的测试过程是非常必要的,而 ...
- 修改pom文件_自动化测试基础篇:Selenium 框架设计(POM)
(给Python开发者加星标,提升Python技能) 来源: 叁藏法师 https://www.cnblogs.com/sanzangTst/p/8376550.html [导语]Selenium是 ...
- web自动化测试有哪些工具和框架?
Web自动化测试在测试领域里面用得比较多的工具或者框架有Selenium, robotframework, Cucumber等. Selenium是一个开源的Web自动化测试框架,主要用于做HTML页 ...
- 【自动化测试】一位自动化测试工程师居然不会封装框架?神秘自动化测试框架......
目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...
- XCoreRedux框架:Android UI组件化与Redux实践
XCoreRedux框架:Android UI组件化与Redux实践 @author: 莫川 https://github.com/nuptboyzhb/ XCoreRedux源码+Demo:http ...
- 乐玩自动化测试模块_五大测试框架介绍,附带全套黑马自动化测试视频教程(完结)...
这个框架需要开发数据表和关键字,这些数据表和关键字独立于执行它们的测试自动化工具,并可以用来"驱动"待测应用程序和数据的测试脚本代码,关键宇驱动测试看上去与手工测试用例很类似. 概述 在自动 ...
- Android UI 测试框架Espresso详解
Android UI 测试框架Espresso详解 1. Espresso测试框架 2.提供Intents Espresso 2.1.安装 2.2.为Espresso配置Gradle构建文件 2.3. ...
- GitHub标星5.6K,2020腾讯又一力作开源的Android UI框架——QMUI Android
各位同学,早上好,我是你们的老朋友D_clock爱吃葱花,前些天忙着发版本,最近也在看各种各样的新知识,有好多东西想写啊啊啊啊啊.嗯,先冷静捋一下,卖个关子.扯回正题,今天继续为大家推荐一个Githu ...
最新文章
- 下面算法中,不属于公开密钥加密算法的是()。D
- Nginx 负载均衡 - linux下nginx加载配置文件异常处理,提示invalid PID number in “/run/nginx.pid“问题解决
- 507. Perfect Number(Python)
- 修改Linux系统默认语言
- JS 获取链接(url)参数以及锚链接(anchor)结合富ajax的应用(ajax前进/后退的问题)...
- 删除苹果自带软件后果_ghost explorer工具怎么删除ghost自带软件【详细教程】
- 移动硬盘拒绝访问找到数据的法子
- arcgis的numpy模块_数据分析之numpy模块
- 利用Gabor变换法分析纹理图像 matlab代码实现
- interop.cdo 发送邮件乱码_手把手教你用 Java 发送邮件,不用框架
- TF2.0-tf.keras.callbacks.ModelCheckpoint
- eclipse中文乱码解决_Stata15:一次性转码,解决中文乱码问题
- 去掉重复值php,php多维数组去掉重复值
- 如何在eclipse中使用Struts2框架
- 第三方支付和代付区别在哪?
- C#学习笔记8 事件
- 微信网页授权登入--laravel组件 laravel-wechat调用
- 【科研小技巧】Word(2016)绘制三线表样式
- 计算机网络协议(二)——从二层到三层
- 【面试概率题连载2】轻率的陪审团