一种Android自动测试跨应用的装置及方法

文档序号:6373705阅读:139来源:国知局
专利名称:一种Android自动测试跨应用的装置及方法
技术领域
本发明涉及一种测试应用程序的装置及方法,尤其涉及一种Android自动测试跨应用的装置及方法。
背景技术
Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备中,目前Android中有一种叫Instrumentation的测试框架,它是一种没有图形界面,具有启动能力的,用于监控其它被测应用的自动测试工具。其主要通过命令行(adb shell)来启动一组测试,并且通过命令行的形式给出结果。其主要原理当应用程序运行的时候Instrumentation处于开启,Instrumentation将在任何应用程序运行前初始化,可以
通过它监测系统与应用程序之间的交互。Instrumentation通过命令行(adb shell)来启动测试,如果被测应用程序已启动存在,则先杀掉该被测应用,然后重新启动被测应用,Instrumentation会使其与测试程序在同一个进程中,从而达到操作和监控被测应用程序的目的。虽然在Instrumentation框架下,测试应用程序可以精确控制应用程序, 但是,当被测主应用程序测试中调起次应用程序时,次应用程序启动后在另外一个进程中,与主应用程序不在同一个进程中,从而Instrumentation对象就不能操作或监控次应用程序,即不支持跨应用测试。

发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种Android自动测试跨应用的装置及方法,实现Android平台上基于Instrumentation框架的跨应用自动测试和交互复杂的测试场景。从被测主应用触发多个次应用,实现在多个应用之间交互切换。为实现上述目的,本发明提供的一种Android自动测试跨应用的装置,包括,主应用程序测试单元、触发监听单元、次应用程序测试控制单元、次应用程序测试单元、次应用程序测试结果记录单元、库文件存储单元、主应用程序测试检查单元、测试结果处理单元,以及测试结果输出单元,其中,
所述主应用程序测试单元,其用于对主应用程序进行测试、收集主应用程序的测试结果,并在测试过程中触发启动次应用程序;
所述触发监听单元,其用于监听主应用程序测试进程中次应用程序的触发启动;
所述次应用程序测试控制单元,其用于控制次应用程序的测试进程;
所述次应用程序测试单元,用于对次应用程序、下一级应用程序进行测试,并收集应用程序的测试结果;
所述次应用程序测试结果记录单元,其用于记录保存次应用程序或下一级应用程序的测试结果;
所述库文件存储单元,其用于存储跨应用的测试管理器增强框架开放创新层的方法库;
所述主应用程序测试检查单元,其用于检查次应用程序或下一级应用程序记录下的测试结果;
所述测试结果处理单元,用于对主应用程序的测试结果进行处理;
所述测试结果输出单元,其用于将所述主应用程序测试单元收集的主应用程序的测试结果形成测试报告进行输出。其中,所述次应用程序测试控制单元,当所述触发监听单元监听到在主应用程序测试进程中有次应用程序触发启动时,控制所述次应用程序测试单元对次应用程序进行测试。其中,所述跨应用的测试管理器增强框架开放创新层的方法库,对外提供测试管理器增强框架开发创新层的接口,实现触发监听单元、次应用程序测试控制单元、次应用程 序测试单元以及次应用程序测试结果记录单元的功能。为实现上述目的,本发明提供一种Android自动测试跨应用的方法,包括以下步骤
1)监听主应用程序测试过程中次应用程序的启动;
2)对次应用程序进行测试,收集次应用程序的测试结果并进行处理;
3)如果次应用程序的测试成功,继续主应用程序的测试;
4)重复上述步骤,直至主应用程序测试结束;
5)如果次应用程序的测试超时或失败,结束主应用程序的测试。果用程序hingxunyuannanng ;;
其中,所述步骤I)是通过命令行启动测试管理器增强框架开放创新层的进程,监听主应用程序测试过程中次应用程序的启动。其中,所述步骤2)中对次应用程序进行测试,进一步包括以下步骤
次应用程序被注入至测试管理器增强框架开放创新层,实现测试管理器增强框架开放创新层对次应用程序的全程状态跟踪;
启动线程增强框架测试管理器,获取次应用的Activity对象及测试管理器增强框架开放创新层的测试环境,并收集次应用的测试结果;
创建增强框架的基础测试管理器对象,运行次应用的测试用例;
在增强框架测试用例中,将次应用的测试管理器增强框架开放创新层测试环境传递至次应用的测试用例;
次应用的测试完成,并记录下次应用的测试结果,继续主应用程序的测试。其中,所述步骤2)中收集次应用程序的测试结果并进行处理,包括以下步骤
如果在规定时间内,次应用程序的测试结果未生成,则主应用程序的测试结束,输出测试结果为超时,结束主应用程序的测试;
如果在规定时间内,次应用程序的测试结果为失败,结束主应用程序的测试。本发明针对Android平台活动窗口(Activity)的启动机制以及活动窗口(Activity)、Instrumentation 的绑定关系,由 TrefoilInstrumentation 框架监听被测应用的实时状态,当被测应用启动时,截获当前应用的活动窗口(Activity)对象,实现对被测应用界面的自动化操作,同时,将TrefoilInstrumentation管理的活动窗口(Activity)对象传入测试用例(Test Case)对象,并将整个操作流程封装在测试套件(Test Suite)中,由测试管理平台(Test Runner)统一控制,实现Android平台上基于Instrumentation框架的跨应用自动测试和交互复杂的测试场景。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中
图I为根据本发明的Android自动测试跨应用的装置原理框 图2为根据本发明的Android自动测试跨应用的方法流程 图3为根据本发明的次应用测试流程图。
具体实施例方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。图I为根据本发明的Android自动测试跨应用的装置原理框图,如图I所示,本发明的Android自动测试跨应用的装置,包括,主应用程序测试单元101、触发监听单元102、次应用程序测试控制单元103、次应用程序测试单元104、次应用程序测试结果记录单元105、库文件存储单元106、主应用程序测试检查单元107、测试结果处理单元108,以及测试结果输出单元109,其中,
主应用程序测试单元101,其通过命令行启动Instrumentation进程,对主应用程序进行测试,收集主应用程序的测试结果,并在测试过程中触发启动次应用程序;
触发监听单元102,其用于监听主应用程序测试单元101在主应用程序测试进程中次应用程序的触发启动,并将触发启动信息发送给次应用程序测试控制单元103 ;同时,触发监听单元102也可以监听次应用程序测试单元104的测试进程中下一级应用程序的触发启动,并将启动信息发送给次应用程序测试控制单元103 ;
次应用程序测试控制单元103,接收触发监听单元102发送的触发启动信息,并控制次应用程序测试单元104的应用程序测试进程;
次应用程序测试单元104,其接受次应用程序测试控制单元103的控制,对次应用程序、下一级应用程序进行测试,并将收集的应用程序的测试结果通过次应用程序测试结果记录单元105记录保存;
库文件存储单元106,其用于存储跨应用的trefoil, jar库文件,trefoil, jar(TestRunner Enhancement Framework Open Innovative Layout)库文件(测试管理器增强框架开放创新层的方法库),该库文件对外提供测试管理器增强框架开发创新层的接口,实现触发监听单元102、次应用程序测试控制单元103、次应用程序测试单元104以及次应用程序测试结果记录单元105的功能;
主应用程序测试检查单元107,其用于检查次应用程序测试结果记录单元105是否生成次应用的测试结果,并将测试结果提交给测试结果处理单元108,测试结果处理单元108,用于对次应用程序测试检查单元107提交的测试结果进行处理;主应用的测试程序在规定的超时时间内,定期去检查是否生成应用的测试结果,如果次应用的测试结果在规定的超时时间内已生成,则主应用的测试继续进行,如果在规定时间内,次应用的测试结果未生成,则主应用的测试结束,当前测试用例执行失败,结果为超时;
测试结果输出单元109,其用于将主应用程序测试单元101收集的主应用程序的测试结果形成测试报告进行输出。图2为根据本发明的Android自动测试跨应用的方法流程图,下面将参考图2,对本发明的Android自动测试跨应用的方法进行详细描述。首先,在步骤201,命令行启动测试次应用程序的TrefoilInstrumentation测试命令,启动TrefoilInstrumentation进程,监听次应用程序的启动; 在步骤202,命令行启动测试主应用程序的Instrumentation测试命令,启动主应用程序的测试,并在测试过程中触发次应用程序;
在步骤203,触发监听单元102监听到主应用程序测试过程中触发次应用程序,次应用程序测试控制单元103控制次应用程序测试单元104启动,对次应用程序进行测试,将收集的应用程序的测试结果,保存到次应用程序测试结果记录单元105 ;
在步骤204,主应用程序测试检查单元107,在规定的超时时间内,定期去检查是否生成次应用程序的测试结果,并将检查结果传送给测试结果处理单元108 ;
在步骤205,测试结果处理单元108判断是否生成次应用程序的测试结果,如果生成次应用程序的测试结果,则进行下一步骤,如果没有生成次应用程序的测试结果,则转到步骤207 ;
在步骤206,测试结果处理单元108对测试结果进行成功与否的判断,如果测试结果为成功,则转到步骤209,否则进入下一步骤;
在步骤207,主应用程序测试检查单元107在规定的超时时间内没有检查到次应用程序测试结果的生成,则测试结果处理单元108输出测试结果为超时,进入步骤210 ;
在步骤208,主应用程序测试检查单元107检查到次应用程序的测试结果为失败,则测试结果处理单元108输出测试结果为失败,进入步骤210 ;
在步骤209,测试结果处理单元108通知主应用程序测试单元101继续主应用程序的测
试;
在步骤210,主应用程序测试结束,测试结果输出单元109输出相应的测试报告。图3为根据本发明的次应用测试流程图,下面将参考图3,对本发明的次应用测试流程进行详细描述。首先,在步骤301,触发监听单元102监听到主应用程序测试过程中触发次应用程序,次应用程序测试控制单元控制次应用程序测试单元启动,次应用程序被注入至TrefoilInstrumentation (增强框架的测试设备方法库),从而实现TrefoilInstrumentation对次应用程序的全程状态跟踪;
在步骤302,启动线程TrefoilTestRunner (增强框架的测试管理器),获取次应用的Activity对象及TrefoilIstrumentation的测试环境,收集次应用的测试结果发送给次应用程序测试检查单元106 ;在步骤303,创建TrefoilBaseTestRunner (增强框架的基础测试管理器)对象,运行次应用的测试用例;
在步骤304,在TrefoilTestCase (增强框架的测试用例)中,将次应用的TrefoilIstrumentation测试环境传递至次应用的测试用例;
在步骤305,次应用的测试完成,并记录下次应用的测试结果,继续主应用程序的测试。采用本发明的Android自动测试跨应用的装置及方法,可以跨多应用测试,即次应用程序可以触发启动下一级应用程序,再通过TrefoilInstrumentation进程来启动下一级应用程序的测试全过程,依次递推。例如测试场景中需要实现从短信中收到一条电话号码,保存该号码至通讯录,并从通讯录拨打该号码,这个测试场景一共涉及了三个应用短信、通讯录、电话。
·
启动电话和通讯录的TrefoilInstrumentation进程,启动之后这两个应用被注入到各自的TrefoilInstrumentation中,由TrefoilInstrumentation监听这两个应用的状态。启动短信应用的测试程序,在测试过程中触发启动通讯录应用,通讯录的TrefoilInstrumentation进程监听到通讯录应用被触发,立即启动通讯录应用的测试程序,此时短信应用的测试进程进入等待状态,直至通讯录应用的测试进程返回测试结果,或者通讯录应用的测试结果在规定超时时间内未生成,则测试超时失败;同理,通讯录的测试过程中触发启动电话应用,电话应用的TrefoilInstrumentation进程将启动电话应用的测试程序。当通讯录和电话应用的测试进程生成测试结果,短信应用的测试进程停止等待,测试步骤继续执行,直至全部测试步骤结束。本领域普通技术人员可以理解以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种Android自动测试跨应用的装置,包括,主应用程序测试单元、触发监听单元、次应用程序测试控制单元、次应用程序测试单元、次应用程序测试结果记录单元、库文件存储单元、主应用程序测试检查单元、测试结果处理单元,以及测试结果输出单元,其特征在于, 所述主应用程序测试单元,其用于对主应用程序进行测试、收集主应用程序的测试结果,并在测试过程中触发启动次应用程序; 所述触发监听单元,其用于监听主应用程序测试进程中次应用程序的触发启动; 所述次应用程序测试控制单元,其用于控制次应用程序的测试进程; 所述次应用程序测试单元,用于对次应用程序、下一级应用程序进行测试,并收集应用程序的测试结果; 所述次应用程序测试结果记录单元,其用于记录保存次应用程序或下一级应用程序的测试结果; 所述库文件存储单元,其用于存储跨应用的测试管理器增强框架开放创新层的方法库; 所述主应用程序测试检查单元,其用于检查次应用程序或下一级应用程序记录下的测试结果; 所述测试结果处理单元,用于对主应用程序的测试结果进行处理; 所述测试结果输出单元,其用于将所述主应用程序测试单元收集的主应用程序的测试结果形成测试报告进行输出。
2.根据权利要求I所述的Android自动测试跨应用的装置,其特征在于,所述次应用程序测试控制单元,当所述触发监听单元监听到在主应用程序测试进程中有次应用程序触发启动时,控制所述次应用程序测试单元对次应用程序进行测试。
3.根据权利要求I所述的Android自动测试跨应用的装置,其特征在于,所述跨应用的测试管理器增强框架开放创新层的方法库,对外提供测试管理器增强框架开发创新层的接口,实现触发监听单元、次应用程序测试控制单元、次应用程序测试单元以及次应用程序测试结果记录单元的功能。
4.一种实现Android自动测试跨应用的方法,包括以下步骤 1)监听主应用程序测试过程中次应用程序的启动; 2)对次应用程序进行测试,收集次应用程序的测试结果并进行处理; 3)如果次应用程序的测试成功,继续主应用程序的测试; 4)重复上述步骤,直至主应用程序测试结束; 5)如果次应用程序的测试超时或失败,结束主应用程序的测试。
5.果用程序hingxunyuannanng ;; 根据权利要求4所述的实现Android自动测试跨应用的方法,其特征在于,所述步骤I)是通过命令行启动测试管理器增强框架开放创新层的进程,监听主应用程序测试过程中次应用程序的启动。
6.根据权利要求4所述的实现Android自动测试跨应用的方法,其特征在于,所述步骤2)中对次应用程序进行测试,进一步包括以下步骤 次应用程序被注入至测试管理器增强框架开放创新层,实现测试管理器增强框架开放创新层对次应用程序的全程状态跟踪; 启动线程增强框架测试管理器,获取次应用的Activity对象及测试管理器增强框架开放创新层的测试环境,并收集次应用的测试结果; 创建增强框架的基础测试管理器对象,运行次应用的测试用例; 在增强框架测试用例中,将次应用的测试管理器增强框架开放创新层测试环境传递至次应用的测试用例; 次应用的测试完成,并记录下次应用的测试结果,继续主应用程序的测试。
7.根据权利要求4所述的实现Android自动测试跨应用的方法,其特征在于,所述步骤2)中收集次应用程序的测试结果并进行处理,包括以下步骤 如果在规定时间内,次应用程序的测试结果未生成,则主应用程序的测试结束,输出测试结果为超时,结束主应用程序的测试; 如果在规定时间内,次应用程序的测试结果为失败,结束主应用程序的测试。
全文摘要
一种Android自动测试跨应用的装置及方法,包括,主应用程序测试单元、触发监听单元、次应用程序测试控制单元、次应用程序测试单元、次应用程序测试结果记录单元、库文件存储单元、主应用程序测试检查单元、测试结果处理单元,以及测试结果输出单元,在对应用程序进行测试时,首先,监听主应用程序测试过程中次应用程序的启动;对次应用程序进行测试,收集次应用程序的测试结果并进行处理;如果次应用程序的测试成功,继续主应用程序的测试;重复上述步骤,直至主应用程序测试结束。如果次应用程序的测试超时或失败,结束主应用程序的测试。本发明的装置及方法,实现了Android平台上基于Instrumentation框架的跨应用自动测试和交互复杂的测试场景,从被测主应用触发多个别的应用,实现在多个应用之间交互切换。
文档编号G06F11/36GK102855184SQ20121025671
公开日2013年1月2日 申请日期2012年7月24日 优先权日2012年7月24日
发明者吴瑾, 赵慧, 丁玮 申请人:北京播思软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1