跨应用的自动化测试方法技术

技术编号:11555502 阅读:83 留言:0更新日期:2015-06-04 04:17
本发明专利技术公开了一种跨应用的自动化测试方法,其中所述应用包括主应用A和一个或多个关联应用B,所述方法包括:设计一个或多个模拟关联应用B',所述一个或多个模拟关联应用B'与所述一个或多个关联应用B对应并且相对于所述主应用A的接口完全相同;以及仅向所述主应用A发送测试指令,而不向所述一个或多个关联应用B发送测试指令,来执行自动化测试,其中,在所述主应用A需要调用所述一个或多个关联应用B时,由所设计的一个或多个模拟关联应用B'代替所述一个或多个关联应用B来与所述主应用A进行通信。

【技术实现步骤摘要】
跨应用的自动化测试方法
本专利技术涉及测试方法,更具体来说,涉及一种跨应用的自动化测试方法。
技术介绍
业界现有支持跨应用自动化测试工具有Android开发工具的UIAutomator、淘宝的Athrun等测试方法。UIAutomator是Android开发工具ADT自带的自动化测试工具,但其仅支持Android4.1版本以上设备的自动化测试,且只能通过adb接口发送测试指令,不能在设备上真实模拟自动化测试的执行。淘宝的Athrun测试方法是基于JUnit的测试方法。它可以脱离PC机通过usb接口向Android设备发送自动化测试指令,但对于跨应用的测试其采用了Android提供的MonkeyRunner方案,致使在测试跨应用时必须使用PC机通过USB接口向Android设备发送自动化测试指令。同时,由于采用MonkeyRunner的方式,脚本的录制采用绝对坐标方式,使其灵活性较差。以上所述的两种方法只能支持PC机通过USB口发送测试指令,不能脱离PC机而在设备上直接发起自动化测试,使得人工干预成本提升,自动化测试的灵活性大大降低。
技术实现思路
为了解决上述问题,根据本专利技术的一个方面,提供了一种跨应用的自动化测试方法,其中所述应用包括主应用A和一个或多个关联应用B,所述方法包括:设计一个或多个模拟关联应用B',所述一个或多个模拟关联应用B'与所述一个或多个关联应用B对应并且相对于所述主应用A的接口完全相同;以及仅向所述主应用A发送测试指令,而不向所述一个或多个关联应用B发送测试指令,来执行自动化测试,其中,在所述主应用A需要调用所述一个或多个关联应用B时,由所设计的一个或多个模拟关联应用B'代替所述一个或多个关联应用B来与所述主应用A进行通信。在上述自动化测试方法中,在向所述主应用A发送测试指令之前,所述方法还包括:在移动存储区或数据库中设置参数,所述参数用于测试执行过程中所述一个或多个模拟关联应用B'返回给所述主应用A的调用返回值。在上述自动化测试方法中,所述一个或多个模拟关联应用B'在代替所述一个或多个关联应用B来与所述主应用A进行通信时配置成:解析所述主应用A调用的输入参数;根据所述输入参数确定返回接口类型;以及根据所述返回接口类型从所述移动存储区或数据库获取调用返回值。在上述自动化测试方法中,所述一个或多个模拟关联应用B'在代替所述一个或多个关联应用B来与所述主应用A进行通信时还配置成:通过接口向所述主应用A返回所述调用返回值;以及杀掉自身的进程并释放活动应用控制权。在上述自动化测试方法中,所述移动存储区为移动设备内存或SD卡。在上述自动化测试方法中,所述数据库为Android操作系统中的SQLite数据库。总结来说,上述自动化测试方法开发了一个模拟关联应用B’来替代原被调用的关联应用B,其中B’和B在相对于主应用A的接口完全相同,当自动化测试过程中主应用A调用B’时,B’根据自动化测试程序C(在一个实施例中C可以是一个独立的应用,它启动A并向其发送自动化测试指令)传递的测试参数返回给A,B’仅做接口数据返回给A,C与B’之间的参数传递通过移动存储区(移动设备内存、SD卡)数据文件或Android操作系统中的SQLite数据库实现。采用上述自动化测试方法的优点如下:第一,把自动化测试聚焦到主应用A上,有效地解耦了多系统间的关联测试,C不需要直接向B发送测试指令;第二,模拟应用B’仅关注接口数据返回,不必象在UIAutomator和Athrun的测试方法中,必须执行B的自动化操作才能返回结果,减少了非必要操作环节,降低了自动化测试程序的非主干流程的失败率,从而可以提升测试效率;第三,C与B’之间的参数传递功能,可以在测试执行过程中实时设置返回给主应用A的接口数据,提升了自动化测试的灵活性,使测试人员可以方便快速的完成测试案例的配置;第四,该方案可以脱离PC机,避免UIAutomator和Athrun在跨应用测试中必须通过USB接口发送测试指令的缺点,使主应用A、模拟管理应用B’、自动化测试程序应用C可以脱离PC控制地在同一个Android设备上运行。附图说明在参照附图阅读了本专利技术的具体实施方式以后,本领域技术人员将会更清楚地了解本专利技术的各个方面。本领域技术人员应当理解的是:这些附图仅仅用于配合具体实施方式说明本专利技术的技术方案,而并非意在对本专利技术的保护范围构成限制。图1是根据本专利技术的一个实施例、跨应用的自动化测试方法的流程图;图2是按照本专利技术的一个实施例、自动化测试应用的内部执行流程图;图3是按照本专利技术的一个实施例、模拟关联应用的执行流程图。具体实施方式下面介绍的是本专利技术的多个可能实施例中的一些,旨在提供对本专利技术的基本了解,并不旨在确认本专利技术的关键或决定性的要素或限定所要保护的范围。容易理解,根据本专利技术的技术方案,在不变更本专利技术的实质精神下,本领域的一般技术人员可以提出可相互替换的其它实现方式。因此,以下具体实施方式以及附图仅是对本专利技术的技术方案的示例性说明,而不应当视为本专利技术的全部或者视为对本专利技术技术方案的限定或限制。在本专利技术的上下文中,跨应用的自动化测试是指:Android设备上存在两个独立应用A和B,A在运行过程中需要调用B(例如美团网客户端应用在支付时需要调用银联支付控件应用的场景,支付完成后再返回美团网客户端确认订单),设备的当前窗口控制权需要在A与B之间切换,为了真实的自动化测试应用A,自动化测试程序就必须向A和B同时发送自动化测试指令。参照图1,它示出了根据本专利技术的一个实施例、跨应用的自动化测试方法的流程图。关联应用B被模拟关联应用B’接管,B’与B具有相同的应用程序包名和对A接口。如图1所示,跨应用的自动化测试方法可以包括如下步骤:第一,C在执行单条自动化测试用例前,首先在移动存储区或数据库中设置参数,该参数用于测试执行过程中B’给A的调用返回值;第二,测试应用C启动主应用A,向其发送测试指令;第三,当主应用A需要调用B时,B’接管了B,即实际启动了B’;第四,B’读取移动存储区或数据库中C设置的返回参数;第五,通过调用接口把该参数返回给A。在返回完后,B’按照Android的进程处理要求,把自己的进程杀掉,释放活动应用控制权。参照图2,它示出了按照本专利技术的一个实施例、自动化测试应用的内部执行流程图。自动化测试应用的执行流程可包括如下步骤:步骤0,开始;步骤1,从自动化测试用例集中读取一条自动化测试用例;步骤2,根据自动化测试用例配置的参数,设置关联模拟应用B’需要返回给A的接口参数,接口参数可为一条或多条;数据可通过移动设备存储区或数据库传递;步骤3,启动主应用A,根据自动化测试用例配置向A发送测试指令;步骤4,待测试执行完后,处理测试结果,包含判断测试执行结论、收集结果数据、记录结果数据;步骤5,判断所有自动化测试用例是否执行完毕,没有则回到步骤1,否则结束。参照图3,它示出了按照本专利技术的一个实施例、模拟关联应用的执行流程图。具体包括如下步骤:步骤0,开始,B’被A调用启动;步骤1,解析主应用A调用时输入参数;步骤2,根据输入参数确定接口类型;步骤3,根据接口类型,到移动设备存储区或数据库获取返回参数;步骤4,通过接口向A返回参数结果;步骤5,B’杀掉自身进程;步骤6,本文档来自技高网...
跨应用的自动化测试方法

【技术保护点】
一种跨应用的自动化测试方法,其中所述应用包括主应用A和一个或多个关联应用B,所述方法包括:设计一个或多个模拟关联应用B',所述一个或多个模拟关联应用B'与所述一个或多个关联应用B对应并且相对于所述主应用A的接口完全相同;以及仅向所述主应用A发送测试指令,而不向所述一个或多个关联应用B发送测试指令,来执行自动化测试,其中,在所述主应用A需要调用所述一个或多个关联应用B时,由所设计的一个或多个模拟关联应用B'代替所述一个或多个关联应用B来与所述主应用A进行通信。

【技术特征摘要】
1.一种跨应用的自动化测试方法,其中所述应用包括主应用A和一个或多个关联应用B,所述方法包括:设计一个或多个模拟关联应用B',所述一个或多个模拟关联应用B'与所述一个或多个关联应用B对应并且相对于所述主应用A的接口完全相同;以及仅向所述主应用A发送测试指令,而不向所述一个或多个关联应用B发送测试指令,来执行自动化测试,其中,在所述主应用A需要调用所述一个或多个关联应用B时,由所设计的一个或多个模拟关联应用B'代替所述一个或多个关联应用B来与所述主应用A进行通信。2.如权利要求1所述的自动化测试方法,其中,在向所述主应用A发送测试指令之前,所述方法还包括:在移动存储区或数据库中设置参数,所述参数用于测试执行过程中所述一个或多个模拟关联应用B'返回给所述主应用A的调用返回...

【专利技术属性】
技术研发人员:尹祥龙
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1