OPhone自动化测试技术介绍.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OPhone自动化测试技术介绍

OPhone自动化测试技术介绍   OPhone平台除了为应用程序开发提供了丰富的API外,同时也为开展自动化测试提供了多种途径。本文将对OPhone平台上可采用的几种自动化测试技术进行介绍,并对每种技术的优缺点做简要的总结。   目录:   *? 基于JUnit+Instrumentation框架的自动化测试   *? 基于键盘事件和图像识别的自动化测试   *? 基于OPhone API的自动化测试   *? 总结   正文:   基于JUnit+Instrumentation框架的自动化测试   OPhone平台中整合了JUnit测试框架和Instrumentation机制。图1是JUnit+Instrumentation自动化测试框架的架构图。 (图)OPhone自动化测试技术介绍   JUnit是广泛应用于Java程序开发中的单元测试框架。它定义了特定格式的方法做为测试用例,提供TestSuite测试套件和TestRunner测试执行器分别用于组织测试用例和运行测试用例并反馈测试结果。   Instrumentation 则是一种操作系统和上层应用程序之间的监控机制。当应用程序运行时,若Instrumentation设置为开启,它将在应用程序运行前初始化,与应用程序运行在同一个进程中,监测应用程序与系统之间的交互,并可以对应用程序进行一定的控制,例如,监控应用中各Activity的调用情况,启动和结束 Activity,对Activity生命周期中的各个状态进行切换,甚至可以向Activity发送按键事件和字符。   为了可以更加便捷的进行自动化测试,如图2所示,OPhone平台利用Instrumentation对JUnit框架进行扩展。 (图)OPhone自动化测试技术介绍   经过这样的扩展,框架的易用性得到了提高。举例来说,假设AppActivity是某应用的一个Activity,我们想测试AppActivity界面上的一些功能,可以实现一个ActivitityInstruemtationTestCase2AppActivity的子类,当这个子类运行时,AppActivity就会自动启动,而省去了通过Intent等手动启动的步骤。 更重要的是,扩展后原有的JUnit单元测试被赋予了更多的功能。例如,用 AndroidTestCase.getContext()、Instrumentation.getTargetContext()等方法就可以在测试代码中得到测试程序和被测应用程序的Context,进而访问到资源文件,因此该框架特别适合用来做OPhone应用的单元测试。   如果我们再利用Instrumentation模拟用户从图形界面发起的诸如点击或拖拽屏幕、输入字符、选择菜单项等操作,就可以实现自动化功能测试甚至系统测试。与数据库操作和View操作配合使用后,这种自动化测试能够实现与测试人员的手动测试具有同样的效果。   下面就是一段基于JUnit+Instrumentation框架对记事本应用进行测试的自动化测试代码: ?public void testInsertSaveNum() throws Exception {????? ??????????? String TEST_TITLE = Add-Save Number;????? ??????????? String TEST_NOTE = Note;????? ??????????? //启动NotesList????? ??????????? mNotesList = (NotesList) mInstrumentation.startActivitySync(mIntent);????? ??????? ????? //调用NotesList界面菜单中的“添加”选项????? ??????????? mInstrumentation.invokeMenuActionSync(mNotesList, NotesList.INSERT_ID, 0);????? ??????????? mInstrumentation.waitForIdleSync();????? ??????? ????? //此时转到了NoteEditor界面,利用ActivityMonitor来得到NoteEditor对象????? ??????????? mNoteEditor = (NoteEditor) waitForActivity(mNoteEditorMonitor);???????????????????? ??????????? SystemClock.sleep(waitTime);????? ??????? ????? //在标题栏

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档