- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android自动化测试工具简介
Android自动化测试工具简介
随着Android的流行和发展,基于Android的应用开发越来越多,相应的测试方法和测试工具也越来越多,掌握好这些测试工具对测试团队提高工作效率有很大的帮助,本文将就Android平台上的几款常用的测试工具进行简单介绍。
Instrumentation
Instrumentation是Android系统提供的基于junit的自动化单元测试框架,它提供了对Android系统API和对象的访问接口,可以控制和检查应用程序、模拟用户操作、获取系统状态,实现对应用程序或系统的功能、性能、UI、API等的自动化测试。Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。
图1:引用自:/guide/topics/testing/testing_android.html
1) 测试类型
要对Android应用程序进行单元测试有三种方法:
第一,基于Junit的单元测试,这个测试运行在JDK下,测试一些和android无关的东西,比如业务逻辑,数据封装,数值计算等等。
第二,基于AndroidTestCase,不使用Instrumentation框架,但可以访问系统对象如Context,通过Context可以访问到资源,文件,数据库等。
第三,基于InstrumentationTestCase,使用Instrumentation框架,入口是InstrumentationTestRunner,这是一个没有图形界面的,具有启动能力的,用于监控其他类的工具类。
2) 主要测试类
Android系统的单元测试框架位于包android.test中,其核心类图具有如下结构:
图2: Instrumentation单元测试类结构
1. Android的测试用例组织形式是和junit一样的,也是由TestSuite和TestCase组成,其中TestSuite的实现是InsturmentationTestSuite,而所有测试类都继承了两个类:AndroidTestCase和InstrumentationTestCase。
ApplicationTestCase用于测试应用程序,允许注入一个模拟的Context到应用程序中。
ProviderTestCase2 用于测试ContentProvider,要求使用MockContentResolver,并注入一个IsolatedContext,因此Provider的测试是与OS孤立的。
ServiceTestCase 用于测试Service,可以注入一个模拟的Context或模拟的Application。
ActivityTestCase 对Activity测试的基类
ActivityUnitTestCase对单个Activity进行测试。可以注入模拟的Context或Application,不能注入模拟的Intent。
ActivityInstrumentationTestCase2在正常的系统环境中测试单个Activity,不能注入一个模拟的Context,但你可以注入一个模拟的Intent。可以在UI线程运行测试方法,给UI发送按键和触屏事件。
2. Instrumentation在Assert的基础上提供了两个新的断言类:MoreAsserts和ViewAsserts。
MoreAsserts类包含更多强大的断言方法,如assertContainsRegex(String, String),可以作正则表达式的匹配。
ViewAsserts类包含关于Android View的有用断言方法,如assertHasScreenCoordinates(View, View, int, int),可以测试View在可视区域的特定X、Y位置。
3. Instrumentation有一些类可以方便的创建模拟的系统对象,如MockApplication,MockContext,MockPackageManager,MockResources等等。
4. 在android.test.annotation包里定义了几个annotation,包括@LargeTest,@MediumTest,@SmallTest,@Smoke,和@Suppress。你可以根据自己的需要用这些annotation来对自己的测试分类。在执行单元测试命令时,可以在-e参数后设置“sizelarge”/“sizemedium”/“sizesmall”来执行具有相应标记的测试。
3) 执行方法
要运行Instrumentation测试需要在Manifest文件里加入下面代码(A
文档评论(0)