0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android 手机自动化测试工具有哪几种

lhl545545 来源:电子发烧友网 2018-02-06 15:35 次阅读

Android 手机自动化测试工具有哪几种

1、Monkey是Android SDK自带的测试工具,在测试过程中会向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试,也有日志输出。实际上该工具只能做程序做一些压力测试,由于测试事件和数据都是随机的,不能自定义,所以有很大的局限性。

2、MonkeyRunner也是Android SDK提供的测试工具。严格意义上来说MonkeyRunner其实是一个Api工具包,比Monkey强大,可以编写测试脚本来自定义数据、事件。缺点是脚本用Python来写,对测试人员来说要求较高,有比较大的学习成本。

3、Instrumentation是早期Google提供的Android自动化测试工具类,虽然在那时候JUnit也可以对Android进行测试,但是Instrumentation允许你对应用程序做更为复杂的测试,甚至是框架层面的。通过Instrumentation你可以模拟按键按下、抬起、屏幕点击、滚动等事件。Instrumentation是通过将主程序和测试程序运行在同一个进程来实现这些功能,你可以把Instrumentation看成一个类似Activity或者Service并且不带界面的组件,在程序运行期间监控你的主程序。缺点是对测试人员来说编写代码能力要求较高,需要对Android相关知识有一定了解,还需要配置AndroidManifest.xml文件,不能跨多个App。

4、UiAutomator也是Android提供的自动化测试框架,基本上支持所有的Android事件操作,对比Instrumentation它不需要测试人员了解代码实现细节(可以用UiAutomatorviewer抓去App页面上的控件属性而不看源码)。基于Java,测试代码结构简单、编写容易、学习成本,一次编译,所有设备或模拟器都能运行测试,能跨App(比如:很多App有选择相册、打开相机拍照,这就是跨App测试)。缺点是只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp。

5、Espresso是Google的开源自动化测试框架。相对于Robotium和UIAutomator,它的特点是规模更小、更简洁,API更加精确,编写测试代码简单,容易快速上手。因为是基于Instrumentation的,所以不能跨App。配合Android Studio来编写测试的简单例子

6、Selendroid:也是基于Instrumentation的测试框架,可以测试Native App、Hybird App、Web App,但是网上资料较少,社区活跃度也不大。

7、Robotium也是基于Instrumentation的测试框架,目前国内外用的比较多,资料比较多,社区也比较活跃。缺点是对测试人员来说要有一定的Java基础,了解Android基本组件,不能跨App。

8、Athrun是淘宝出的一个移动测试框架/平台,同时支持iOS和Android。Android部分也是基于Instrumentation,在Android原有的ActivityInstrumentationTestCase2类基础上进行了扩展,提供一整套面向对象的API。这里有详细介绍。

9、Appium是最近比较热门的框架,社区也很活跃。这个框架应该是是功能最强大的,

它的优点:

开源;

支持Native App、Hybird App、Web App;

支持Android、iOS、Firefox OS;

Server也是跨平台的,你可以使用Mac OS X、Windows或者Linux

它的哲理是:

用Appium自动化测试不需要重新编译App;

支持很多语言来编写测试脚本,Java、Javascript、PHP、Python、C#、Ruby等主流语言;

不需要为了自动化测试来重造轮子,因为扩展了WebDriver。(WebDriver是测试WebApps的一种简单、快速的自动化测试框架,所以有Web自动化测试经验的测试人员可以直接上手);

移动端自动化测试应该是开源的;

它的设计理念:

Client/Server架构,运行的时候Server端会监听Client端发过来的命令,翻译这些命令发送给移动设备或模拟器,然后移动设备或模拟器做出响应的反应。正是因为这种架构,所以Client可以使用Appium client libraries多种语言的测试脚本,而且Server端完全可以部署在服务器上,甚至云服务器。

Session,每个Client连接到Server以后都会有一个Session ID,而且Client发送命令到Server端都需要这个Session ID,因为这个seesion id代表了你所打开的浏览器或者是移动设备的模拟器。所以你甚至可以打开N个Session,同时测试不同的设备或模拟器。

Desired Capabilities,其实就是一个键值对,设置一些测试的相关信息来告诉Server端,我们需要测试iOS、还是Android,或者换是WebApp等信息。

Appium Server是Node.js写的,所以可以直接用NPM来进行安装。

Appium Clients,Mac OS和Win下提供GUI,不需要装Node.js,方便测试人员操作。

相关限制:

如果你在Windows使用Appium,你没法使用预编译专用于OS X的.app文件,因为Appium依赖OS X专用的库来支持iOS测试,所以在Windows平台你不能测试iOS Apps。这意味着你只能通过在Mac上来运行iOS测试。

总结:

在iOS部分是封装了UIAutomation;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是 Instrumentation,也就说Appium同时封装了UiAutomator和Instrumentation。所以Appium拥有了以上几大框架的所有优点:跨App,支持Native App、Hybird App、Web App,还支持N种语言来编写你的测试脚本。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动化测试
    +关注

    关注

    0

    文章

    171

    浏览量

    26777
  • Android
    +关注

    关注

    12

    文章

    3851

    浏览量

    125637
收藏 人收藏

    评论

    相关推荐

    HMDS与BARC一定要除去吗?有哪几种去除的方式?

    HMDS,BARC是光刻工序中比较常用的化学品,但是它们并不能用显影液除去,根据是什么?它们一定要除去吗?有哪几种去除的方式?
    的头像 发表于 12-22 10:29 601次阅读
    HMDS与BARC一定要除去吗?有<b class='flag-5'>哪几种</b>去除的方式?

    为什么要测试回路电阻?常见的回路电阻测试方法有哪几种

    为什么要测试回路电阻?常见的回路电阻测试方法有哪几种测试回路电阻是电气工程中的一项基本检测和分析工作,它在确保电路运行安全和有效的同时,还可以帮助分析和诊断电路存在的问题。在此文章
    的头像 发表于 12-19 15:04 1112次阅读

    mcb是什么开关?有哪几种类型?

    mcb是什么开关?有哪几种类型? MCB是Miniature Circuit Breaker的缩写,翻译过来就是微型断路器。它是用于电气系统中的电路保护设备,用于断开过载电流和短路电流。MCB具有
    的头像 发表于 12-09 17:19 2538次阅读

    什么是步进电机?步进电机分哪几种?

    电子发烧友网站提供《什么是步进电机?步进电机分哪几种?.pdf》资料免费下载
    发表于 11-28 14:21 1次下载
    什么是步进电机?步进电机分<b class='flag-5'>哪几种</b>?

    电容器的补偿方式有哪几种

    电容器在电子领域中使用十分普遍,而在它的使用过程中,为了保证电路可靠性和性能稳定,电容器的补偿就变得尤为重要。那么,电容器的补偿方式有哪几种呢?
    的头像 发表于 11-16 15:12 1678次阅读

    请问MMF103的SPI支持哪几种模式?

    MMF103的SPI支持哪几种模式?
    发表于 11-02 06:38

    硅片有哪几种晶向?有几种定位边?定位边是如何定位的?

    硅片是大多数芯片的载体。但是一块硅片中却隐藏了很多不为人知的细节,比如:硅片有哪几种晶向?有几种定位边?定位边是如何定位的?定位边与定位槽有什么区别?等等。今天就来详细讲解一下。
    的头像 发表于 10-29 10:33 4890次阅读
    硅片有<b class='flag-5'>哪几种</b>晶向?有<b class='flag-5'>几种</b>定位边?定位边是如何定位的?

    数控机床高速电主轴有哪几种工作原理?

    数控机床高速电主轴有哪几种工作原理?|深圳恒兴隆机电
    的头像 发表于 10-17 10:13 853次阅读

    EMI滤波器有哪几种应用和选择?

    EMI滤波器有哪几种应用和选择?|深圳比创达EMC
    的头像 发表于 10-09 10:32 883次阅读
    EMI滤波器有<b class='flag-5'>哪几种</b>应用和选择?

    以太网接口分为哪几种接口?车载以太网接口分为哪几种接口?

    以太网接口有哪些?以太网接口分为哪几种接口?车载以太网接口分为哪几种接口? 以太网接口是计算机网络中最常用的接口类型。它是一种基于局域网(LAN)的标准通信协议,用于在网络中传输数据。由于以太网接口
    的头像 发表于 08-31 16:56 3876次阅读

    充电桩配合使用的变压器有哪几种

    充电桩配合使用的变压器有哪几种 充电桩是对电动汽车进行充电的重要设备,而变压器则是充电桩的配套设备之一。变压器在充电桩的使用中扮演着重要的角色,它可以将高电压转换为适用于电动汽车的低电压,确保充电
    的头像 发表于 08-18 10:54 3102次阅读

    哪几种情况下会造成伺服电机抖动?

    哪几种情况下会造成伺服电机抖动?怎样才能解决这些伺服电机抖动带来的问题?分别是怎么解决的?
    发表于 05-24 09:41 198次阅读

    【鲁班猫创意氛围赛】低成本便携全自动化ECU诊断升级和测试工具

    低成本便携全自动化ECU诊断升级和测试工具 历史回顾:助大学生快速进入编程世界--鲁班猫板 - 野火科技 - 电子技术论坛 - 广受欢迎的专业电子论坛! (elecfans.com)零基础快速实现
    发表于 05-14 15:18

    Spring事务在哪几种情况下会不生效?

    日常开发中,我们经常使用到spring事务。最近星球一位还有去美团面试,被问了这么一道面试题: Spring 事务在哪几种情况下会不生效?
    的头像 发表于 05-10 17:53 564次阅读
    Spring事务在<b class='flag-5'>哪几种</b>情况下会不生效?

    ESD模型有哪几种你知道吗?

    ESD模型有哪几种你知道吗?
    的头像 发表于 05-09 10:00 1170次阅读
    ESD模型有<b class='flag-5'>哪几种</b>你知道吗?