安卓设备的跨进程自动化测试方法和装置的制造方法

文档序号:9887540阅读:232来源:国知局
安卓设备的跨进程自动化测试方法和装置的制造方法
【技术领域】
[0001]本发明实施例涉及计算机技术,尤其涉及一种安卓(英文:Android)设备的跨进程自动化测试方法和装置。
【背景技术】
[0002]当前常见的Android设备的模拟按键和触屏事件的自动化测试方法有Monkey,MonkeyRunner, Adb shell 脚本,Robotium 等方式。
[0003]具体的,Monkey方法的本质是使用Adb shell命令,随机模拟按键或触屏事件,需要USB连接Android设备。Monkeyrunner是一个应用程序编程接口(英文!Applicat1nProgramming Interface,简称:API)工具包,可以基于Python模块和程序开发一整套系统,以此来控制Android设备,需要USB连接Android设备进行测试。Adb shell脚本是将设备通过USB连接在电脑上,模拟按键和触屏事件进行自动化测试。Robotium,对Android设备的每个应用程序的进行黑盒自动化、模拟操作和手势进行测试。
[0004]然而,现存的测试方法,或者需要独占USB,将Android设备连接在测试设备上,或者只能对每个Android设备的应用程序一一进行测试,使对于Android设备的测试场景比较局限,并且测试稳定性较低。

【发明内容】

[0005]本发明实施例提供的安卓设备的跨进程自动化测试方法和装置,解决了现有技术中对安卓设备的测试方法中需要独占USB、或者只能对每个应用程序进行单独测试,导致的测试稳定性较低的问题。
[0006]本发明实施例第一方面提供一种安卓设备的跨进程自动化测试方法,包括:
[0007]根据预先设置待测设备的测试用例,调用所述待测设备的应用程序编程接口 API,将所述测试用例分解为与每个按键触屏事件对应的动作组成的动作序列;
[0008]根据测试需求和所述动作序列,定制至少一个按键触屏事件序列;其中,每个按键触屏事件序列中包括至少一个按键触屏事件对应的动作;
[0009]获取所述待测设备的访问权限,并根据预先设置的测试次数,重复执行所述至少一个按键触屏事件序列中每个按键触屏事件对应的动作并记录每个按键触屏事件的日志。
[0010]本发明实施例第二方面提供一种安卓设备的跨进程自动化测试装置,包括:
[0011]处理模块,用于根据预先设置待测设备的测试用例,调用所述待测设备的应用程序编程接口 API,将所述测试用例分解为与每个按键触屏事件对应的动作组成的动作序列;
[0012]所述处理模块还用于根据测试需求和所述动作序列,定制至少一个按键触屏事件序列;其中,每个按键触屏事件序列中包括至少一个按键触屏事件对应的动作;
[0013]获取模块,用于获取所述待测设备的访问权限;
[0014]所述处理模块还用于根据所述访问权限、预先设置的测试次数,重复执行所述至少一个按键触屏事件序列中每个按键触屏事件对应的动作并记录每个按键触屏事件的日
ο
[0015]本发明实施例提供的安卓设备的跨进程自动化测试方法和装置,通过根据之前对设备测试经验来设置测试用例,调用待测设备隐藏的API将测试用例分解为与按键触屏事件对应的多个动作的序列,然后根据测试需求以及动作序列定制对待测设备用于测试的按键触屏事件序列,获取待测设备的触屏操作权限并执行按键触屏事件序列中的事件,完成对待测设备的测试,该测试过程不需要连接USB,且由于按键和按键触屏事件是独立于被控制程序的,所以可以同时跨进程控制多个应用程序,有效提高了自动化测试的稳定性。
【附图说明】
[0016]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本发明安卓设备的跨进程自动化测试方法实施例一的流程图;
[0018]图2为本发明安卓设备的跨进程自动化测试方法实施例二的流程图;
[0019]图3为本发明安卓设备的跨进程自动化测试装置实施例一的结构示意图。
【具体实施方式】
[0020]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021]本发明实施例提供的技术方案可以用于对安卓系统的各类终端设备进行模拟按键和按键触屏事件的自动化测试,该类设备包括:手机、平板、智能终端等,也可以参照该方式对其他系统类型的设备进行测试。
[0022]图1为本发明安卓设备的跨进程自动化测试方法实施例一的流程图,如图1所示,本实施例提供的安卓设备的跨进程自动化测试方法的具体步骤为:
[0023]SlOl:根据预先设置待测设备的测试用例,调用所述待测设备的应用程序编程接口 API,将所述测试用例分解为与每个按键触屏事件对应的动作组成的动作序列。
[0024]在本实施例中,针对Android设备,可以使用Android隐藏API调用,将Android设备的测试用例分解为一组独立连续的动作序列,将动作序列映射为按键或者按键触屏事件。
[0025]S102:根据测试需求和所述动作序列,定制至少一个按键触屏事件序列;其中,每个按键触屏事件序列中包括至少一个按键触屏事件对应的动作。
[0026]在本实施例中,按键或按键触屏事件序列,可以根据测试需求进行任意的定制:按键事件可以通过事件行为(按下,抬起,长按),以及Androd系统的待测设备提供的键值进行定制。
[0027]S103:获取所述待测设备的访问权限,并根据预先设置的测试次数,重复执行所述至少一个按键触屏事件序列中每个按键触屏事件对应的动作并记录每个按键触屏事件的日志。
[0028]在本实施例中,在序列定制中,可加入自动化测试常用的重复次数,以及模拟事件之间的等待时间,待测设备根据重复次数或者等待时间,按顺序执行按键触屏事件序列中的每个动作,并根据现有的记录方式,记录下执行动作的日志,以供测试人员根据该日志确定待测设备的情况。
[0029]本实施例提供的安卓设备的跨进程自动化测试方法,通过根据之前对设备测试经验来设置测试用例,调用待测设备隐藏的API将测试用例分解为与按键触屏事件对应的多个动作的序列,然后根据测试需求以及动作序列定制对待测设备用于测试的按键触屏事件序列,获取待测设备的触屏操作权限并执行按键触屏事件序列中的事件,完成对待测设备的测试,该测试过程不需要连接USB,且由于按键和按键触屏事件是独立于被控制程序的,所以可以同时跨进程控制多个应用程序,有效提高了自动化测试的稳定性。
[0030]图2为本发明安卓设备的跨进程自动化测试方法实施例二的流程图,如图2所示,在上述实施例一的基础上,该安卓设备的跨进程自动化测试方法的具体实现步骤为:
[0031]S201:根据所述待测设备的系统平台版本,获取所述待测设备的系统平台源代码,完成所述API调用。
[0032]S202:获取所述待测设备的按键和触屏的控制权限。
[0033]在本实施例中,根据Android系统的待测设备所使用的Android平台版本,获取相应Android平台源代码,完全编译获得classes, jar,我们使用jar包中IWindowManager接口(自Android V4.2后,接口改为IInputManager),在待测设备的应用程序中使用该接口的方法,获得对按键和触屏的控制权。
[0034]S203:根据预先设置待测设备的测试用例,调用所述待测设备的应用程序编程接口 API,将所述测试用例分解为与每个按键触屏事件对应的动作组成的动作序列。
[0035]在本实施例中,可以使用Android隐藏API调用,将Android设备的测试用例分解为一组独立连续的动作序列,将动作序列映射为按键或者触屏事件,即该按键触屏事件既包括按键事件也包括触屏事件。
[0036]S204:根据测试需求查询所述动作序列,获取所述测试需求对应的至少一个动作。
[0037]S205:根据所述测试需求对应的至少一个动作和所述待测设备的触屏的X轴和Y轴的像素点,获取所述测试需求对应的每个动作对应的像素点集合。
[0038]在本实施例中,按键触屏事件可以通过触屏行为(按下,抬起,移动,长按),以及屏幕的X轴和Y轴的像素点进行定制。
[0039]S206:将所述测试需求对应的所述每个动作对应的像素点集合按照所述测试需求定制生成至少一个按键触屏事件序列;其中,每个所述按键触屏事件序列包括至少一个按键触屏事件的动作对应的像素点集合。
[0040]在本实施例中,按键或按键触屏事件序列,可以根据测试需求进行任意的定制:按键事件可以通过事件行为(按下,抬起,长按),以及Androd设备提供的键值进行定制;在序列定制中,可加入自动化测试常用的重复次数,以及模拟事件之间的等待时间。一组按键和触屏决定的按键触屏事件序列的组合可以进一步抽象为一个动作原语。比如一个组呼的操作可以由一组固定的按键和按键触屏事件序列组合而成。
[0041]S207:根据所述待测设备的系统平台版本,获取所述待测设备的系统平台签名。
[0042]在本实施例中,为了获得对相应平台的底层设备访问权限,还需要获得平台的签名。
[0043]S208:根据所述待测设备的系统平台签名进行平台签名操作,获取所述待测设备的访问权限。
[0044]在本实施例中,测试中使用了模拟按键和触屏事件接口,Android规定如果应用使用了该接口,就必须对应用进行Android平台签名,签名后的测试程序才能够安装到Android设备中。
[0045]所述待测设备的访问权限
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1