产品体验中心 下载与支持 产品社区 合作代理 |  咨询电话:400-035-7887/021-6072 5088
当前位置:泽众软件测试网- 技术文章 -正文

移动APP自动化测试主流框架

发布时间:2021-03-31

1. Instrumentation 
 
Instrumentaion 是Android自带的一个测试框架,是很多其它测试框架的基础,可以在同进程中加载被测组件。它有很多丰富的高层封装,使用者可以使用基于instrumentation的其他框架,避免过多二次开发量。但Instrumentation不支持跨应用,导致基于instrumentation的框架都继承了这个缺点。
 
2.MobileRunner
 
MobileRunner是国内专业的支持IOS及Android上App、小程序、H5应用的自动化测试工具,实现7*24小时的自动化回归测试功能测试兼容性测试,让测试更简单。
 
3. Robotium 
 
Robotium是基于Instrumentation框架开发的一个更强的框架. 对常用的操作进行了易用性的封装. 用于开发功能性、系统和验收测试场景。它运行时绑定到GUI组件。它安装了一个测试用例套件作为在Android设备或仿真器上的应用程序,并提供用于执行测试的真实环境。
 
优点: 容易在最短的时间内编写测试脚本,易用性高。自动跟随当前activity。 由于运行时绑定到GUI组件,所以相比Appium,它的测试执行更快,更强大。 不访问代码或不了解app实现,也可以工作。 支持Activities、Dialogs、Toasts、Menus、Context Menus和其他Android SDK控件。
 
缺点: 不能处理flash和web组件。在旧设备上会变得很慢。 由于不支持iOS设备,当自动化测试同时覆盖 android与iOS的情况时,测试会被中断。没有内置的记录和回放功能.,使用记录功能需要 TestDroid 和 Robotium Recorder 这样的收费工具。
 
4. UIAutomator
 
UIAutomator是由谷歌提供的测试框架,它提供了原生Android app和游戏的高级UI测试。这是一个包含API的Java库,用来创建功能性UI测试,还有运行测试的执行引擎。该库自带Android SDK。
 
优点:它在运行访问不同的进程时,会给JUnit测试案例特权。库由谷歌社区支持和维护。
 
缺点:仅支持android4.1(API level 16)及以上。 不支持脚本记录。 支持的重点是Java。 你不能获得当前活动或仪表化。目前不支持web视图。 库仅支持使用Java,因此很难和使用Ruby的cucumber混合。如想支持BDD框架,建议使用Java自己的BDD框架,例如Jbehave。
 
5. Espresso
 
Espresso是Google的开源自动化测试框架。相对于Robotium和UIAutomator,它的特点是规模更小、更简洁、API更加精确、编写测试代码简单、容易快速上手。因为是基于Instrumentation的,所以不能跨App。
 
6. Calabash
 
Calabash是一个适用于iOS和Android开发者的跨平台app测试框架,可用来测试屏幕截图、手势和实际功能代码。Calabash开源免费并支持Cucumber语言,Cucumber能让你用自然的英语语言表述app的行为,实现BDD(Behavior Driven Development,行为驱动开发)。 Cucumber中的所有语句使用Ruby定义。
 
优点: 有大型社区支持。列表项 简单,类似英语表述的测试语句支持在屏幕上的所有动作,如滑动,缩放,旋转,敲击等。 跨平台开发支持(同样的代码在Android和iOS设备中都适用)。
 
缺点:测试步骤失败后,将跳过所有的后续步骤,这可能会导致错过更严重的产品问题。测试耗费时间,因为它总是默认先安装app。 需要Calabash框架安装在ios的ipa文件中, 因此测试人员必须要有iOS的app源码。 除了Ruby,对其他语言不友好。
 
7. Appium
 
Appium是一个开源的、跨平台的自动化测试工具,支持IOS、Android和FirefoxOS平台。 通过Appium,开发者无需重新编译app或者做任何调整,就可以测试移动应用,可以使测试代码访问后端API和数据库。它是通过驱动苹果的UIAutomation和Android的UiAutomator框架来实现的双平台支持,同时绑定了Selenium WebDriver用于老的Android平台测试。开发者可以使用WebDriver兼容的任何语言编写测试脚本,如Java, OC, JS, PHP,Python, Ruby, C#,Clojure 和Perl语言。
 
8. Selendroid
 
Selendroid 是一个基于Instrumentation的一个框架. 完全兼容Webdriver协议。 Selendroid 可以在模拟器和实际设备上使用,也可以集成网格节点作为缩放和并行测试。
 
9. Robolectric
 
Robolectric 是一款Android单元测试框架,但它并不依赖于Android提供的测试功能,它通过实现一套JVM能运行的Android代码,然后在unit test运行的时候去截取android相关的代码调用,然后转到Robolectric实现的代码(shadow objects)去执行这个调用的过程。因此它不像模拟器或设备需要dexing(Android dex编译器将类文件编译成Android设备上的Dalvik VM使用的格式)、打包、部署和运行的过程,大大减少了测试执行的时间。Pivotal实验室声称使用Robolectric可以在28秒内运行1047个测试。
 
除了实现Android里面的类的现有接口,Robolectric还给每个Shadow类额外增加了很多接口,可以读取对应的Android类的一些状态。比如它为ImageView提供了getImageResourceId()方法,测试者可以通过getImageResourceId()接口来确定是不是正确显示了期望的Image。
 
10. RoboSpock
 
RoboSpock是一个开源的Android测试框架,它提供了简单的编写BDD行为驱动开发规范的方法,使用Groovy语言,支持Google Guice库。RoboSpock合并了Robolectic和Spock的功能。
 
11. Cafe
 
Cafe是百度出品的一个基于Robotium的测试框架,它提供了跨进程的测试解决方案
 
12. Athrun
 
Athrun 是taobao出的一个移动测试框架,它支持Android和IOS。Android部分是基于Instrumentation,在Android原有的ActivityInstrumentationTestCase2类基础上进行了扩展,提供了一整套面向对象的API。 IOS上的自动化测试包括注入式自动化框架AppFramework,和基于录制的自动化框架Athrun_IOS, InstrumentDriver。
 
13. 其他
 
其他自动化框架还有应用于稳定性测试的Monkey系列(Monkey, Monkeyrunner, MonkeyTalk), 其中MonkeyTalk 支持iOS 和 Android,它可以为应用进行真实的,功能性交互测试。MonkeyTalk 提供简单的 “smoke tests”,复杂数据驱动的测试套件。MonkeyTalk 支持原生,移动和混合应用,真实设备或者模拟器。MonkeyTalk 使得场景捕获非常容易,可以记录高级别,可读的测试脚本。还有适用于浏览器自动测试的Selenium WebDriver,可以真实测试用户行为,用户交互如触摸、手指滚动、长按等,还支持HTML5的一些特性,比如本地存储、session存储、应用缓存等。而CTS则是应用于兼容性测试的自动化工具, CTS大部分是基于Junit和仪表盘技术编写的。还扩展了自动化测试过程,可以自动执行用例,自动收集和汇总测试结果。CTS采用XML配置文件的方式将这些测试用例分组成多个测试计划(plan),第三方也可以创建自己的plan。
 
推荐阅读:
 
 
 
 
 
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-60725088-8054),我们将立即处理,马上删除。
沪ICP备07036474号 2003-2023 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨询

添加客服微信 欢迎咨询测试工具和测试服务

微信客服
问题
反馈
产品
画册

扫描二维码下载泽众软件企业宣传册

产品画册
返回
顶部

方案咨询

×
提交信息

电话咨询,400-035-7887,安排专业技术售前给您解答(产品试用、技术交流、服务咨询和商务报价)。

您的信息已成功提交!

我们的客服人员稍后会与您联系