`
m635674608
  • 浏览: 5001857 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

自动化测试框架对比(UIAutomator、Appium、Robotium)

 
阅读更多

转载自:http://www.cnblogs.com/liuyuxuan/p/5614923.html

 

 

 

 

 

自动化测试框架对比(UIAutomator、Appium、Robotium)

 

 

 

一、原理

1.UiAutomator——基于UIAutomation的用户界面自动化测试框架,可以跨应用工作,谷歌亲生的。

UIAutomation在Android4.3发布时有了新版本,官方简介:http://blog.csdn.net/zhubaitian/article/details/40504827

Android4.3之前:使用inputManager或者更早的WindowsManager来注入KeyEvent

Android4.3之后:使用Accessibility APIs来注入事件。(AccessibilityService本来是做一些辅助功能的,提供了一系列的事件回调,帮助我们指示一些用户及界面的状态变化,主要给残障人群提供帮助。)

2.Robotium——基于Instrumentation开发出来的一套测试框架

Instrumentation的官方简介:http://blog.csdn.net/zhubaitian/article/details/39578915

Instrumentation可以把测试包和目标测试应用加载到同一个进程中进行。既然各个控件和测试代码都运行在同一个进程中了,测试代码当然就可以调用这些控件的方法了,同时修改和验证这些控件的一些项就不在话下了。

Instrumentation的运行原理:InstrumentationTestRunner会在目标应用代码运行之前调用onCreate方法建立一个新的线程并为这个线程添加一个消息队列,这个线程循环处理其他线程发过来的消息事件,并与之进行交互。

跨应用:Android4.3之后Instrumentation引入了getUiAutomation接口的实例进行跨应用测试。

3.Appium——跨平台,允许采用同一套API在不同的平台(IOS,Android)上编写测试代码,让测试套件在IOS和Android平台上实现代码复用成为可能。

Appium的核心是一个暴露了REST API的网络服务器。这个服务器接收客户端过来的连接,监听客户端过来的命令,在移动设备上运行命令,然后把代表命令运行结果的HTTP响应包发送回客户端。

 

二、优缺点对比

 
UiAutomator
Robotium
Appium
是否支持设备无源码测试(黑盒测试) 能否进行跨应用测试 是否是谷歌原生 支持编程语言 是否有签名一致的问题 是否需要解决中文输入问题 建议开发团队增加的控件信息 是否需要API17及以上 Junit支持版本 是否支持webview 支持平台
不能
不是 不是
Java Java

几乎所有语言

Content Description resource-id Content Description
Junit4 Junit3 Junit3/Junit4
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 自动化测试框架

    本文将详细介绍几个常用的Android自动化测试框架,包括Monkey、MonkeyRunner、UIAutomator、Robotium和Appium。 1. **Monkey** Monkey是Android SDK自带的一个命令行工具,主要用于压力测试。它通过向系统发送随机...

    Android自动化测试之Robotium--基础操作

    最后,对于Android自动化测试的全系列课程,包括了多个内容方向,例如系统级白盒测试及自动化测试集成、Monkey、MonkeyRunner、UiAutomator和appium等,从核心理念、操作指南到实战技巧,再到电量测试、弱网测试和...

    appium 移动端自动化测试入门

    3. **Appium Android自动化框架** - **简介**:Appium是一个开源的移动应用自动化测试框架,适用于iOS和Android平台。它支持多种编程语言,如Java、Python、Ruby等,并且能够测试原生、混合以及Web应用。 - **特点...

    一种安卓人机对战测试的框架及评价方法.docx

    人工编写代码测试需要按照框架编写测试代码,使用 UIAutomator、Robotium 和 Appium 等框架进行测试。自动化工具测试则使用随机探索策略、基于模型的探索策略和系统的探索策略等方法来生成测试用例。 二、安卓UI...

    自动化测试

    4. Robotium是一个测试自动化框架,它适用于安卓应用的黑盒和白盒测试,可以独立于应用的源代码和界面,实现对UI组件的操作。 5. UiAutomator是安卓提供的一个自动化测试框架,它允许开发者创建跨多个应用组件的UI...

    Android自动化测试工具及方法

    除了Robotium,还有许多其他的Android自动化测试工具,如Appium(支持多种移动平台)、Espresso(专为Android UI设计的测试框架)、UIAutomator(用于设备上的UI组件测试)等。选择合适的工具取决于项目的具体需求,...

    深入浅出Android 自动化测试1

    Robotium、Selendroid、Appium和Calabash支持跨平台测试,其中Appium是目前最受欢迎的黑盒测试框架,而Athrun则是淘宝提供的自动化测试解决方案,支持iOS和Android。 测试可以按照不同标准分类。黑盒测试和白盒测试...

    Android自动化测试

    然后,我们关注UIAutomator,这是Google官方推出的一个UI测试框架,特别适用于进行UI层面的自动化测试。UIAutomator可以跨应用操作,识别并操作屏幕上的任意UI元素,不受应用层级的影响。它支持多种UI组件的查找和...

    跨多端测试自动化实践.pptx

    为了解决这些问题,提出了自研自动化框架QT4A(Quality Testing for Android)。QT4A的目标是支持从Android 2.1及以上的版本,并实现跨进程、跨应用、跨端的自动化测试。该框架由两部分组成:QTA用例框架和QT4A自动...

    移动增值业务自动化测试实现.rar

    1. **测试框架选择**:选择适合的自动化测试框架是成功实施自动化测试的第一步。例如,Appium、Robotium、JUnit、 Espresso等都是广泛使用的移动应用测试框架,它们支持跨平台测试,能够与多种编程语言(如Java、...

    APP自动化总结.docx

    5. **Selendroid**:针对Android的自动化测试框架,适用于原生应用和混合UI测试。 6. **Oracle's MonkeyTalk**:付费工具,支持Android和iOS的功能测试自动化。 7. **Testdroid**:商业化平台,提供多设备、多平台...

    Android-利用深度优先算法(DFS)对Android应用UI进行自动化探索测试

    - 使用如Robotium、UiAutomator等自动化测试框架,可以方便地实现基于DFS的UI测试脚本编写。 - Android Studio自带的UI测试工具如 Espresso,提供API支持深度遍历和递归操作,便于实现DFS。 6. **优化与注意事项*...

    蘑菇街 · 小创(邹勇) 关于 Android 单元测试的一切 ·.pdf

    Robotium和Appium是第三方工具,支持UI自动化测试。不涉及这些可能意味着将重点放在更基础的单元测试上,而不是UI测试。 4. Mock的使用:文档提到了Mock(模拟对象),这通常是在单元测试中用来替代实际对象的假...

    软件测试资源:常见的测试工具,包含详细介绍

    appium是目前较为流行的基于app的自动化测试框架,支持iOS和Android平台。uiautomator是Android平台的自动化测试框架,支持模拟各种设备操作。Monkey是Android自带的简单测试工具,MonkeyRunner是它的改进版本,支持...

    移动自动化

    在实际项目中,可能涉及Appium、Robotium、Selendroid、UIAutomator等跨平台的自动化测试工具,它们支持多种编程语言,如Java、Python、Ruby等,使得测试脚本的编写更加灵活。 “源码”标签提示我们关注代码层面的...

    我们将常用的测试工具分为10类.docx

    6. Robotium:简单易用的Android自动化测试框架。 **Web安全测试工具**检测Web应用的安全漏洞: 1. AppScan:广泛应用的扫描工具,可识别多数漏洞。 2. Netsparker Community Edition:SQL注入和XSS检测,提供解决...

    android-automation,安卓系统.zip

    - **Robotium**:早期的Android自动化测试框架,适用于深度集成测试。 5. **测试实践**: - **单元测试**:针对应用程序的最小可测试单元,如方法或类,通常使用JUnit进行。 - **集成测试**:测试多个组件协同...

Global site tag (gtag.js) - Google Analytics