应用程序的测试方法、设备及系统的制作方法

文档序号:6639661阅读:199来源:国知局
应用程序的测试方法、设备及系统的制作方法
【专利摘要】本发明公开了一种应用程序的测试方法、设备及系统。所述应用程序的测试方法包括:向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序;循环获取所述待测试应用程序的显示界面的图片;识别所述显示界面图片,获得所述显示界面图片相应的操作指令;向所述待测试设备发送所述操作指令,使所述待测试应用程序的显示界面跳转。采用本发明实施例,能够提高待测试设备上应用程序的测试效率。
【专利说明】应用程序的测试方法、设备及系统

【技术领域】
[0001]本发明涉及移动通信【技术领域】,尤其涉及一种应用程序的测试方法、设备及系统。

【背景技术】
[0002]在现有技术中,测试应用程序采用的是Monkey工具。Monkey工具是Android中的一个命令行工具,可以运行在模拟器或实际设备中。Monkey工具的测试方法是向手机系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序的压力测试。但是,Monkey工具测试时使用的用户事件流数据流是随机的,不能进行自定义。而由于其用户事件流的随机性,可能导致测试聚集在应用程序的单个显示界面上,使其测试效率不高。
[0003]还有一些应用程序的测试采用的是MonkeyRunner工具。MonkeyRunner工具提供一个API,使用该API写出的程序可以在Android代码之外控制测试设备和模拟器。MonkeyRunner工具还可以执行测试人员编写的测试脚本,从而达到对应用程序进行安装、运行、发送模拟击键、截取显示界面图片的操作。但是,MonkeyRunner工具测试时,需要测试人员编写测试脚本,测试过程较为繁琐。同时,测试脚本的执行过程是固定的,当应用程序的结构发生变化或测试设备发生变化时,测试脚本往往不能适应新的测试环境,从而需要针对不同的测试设备定制不同的测试脚本,使得测试脚本的可重用性较低。而且,MonkeyRunner工具提供的多设备支持功能在具有不同分辨率的测试设备中,表现差强人意,没有从真正意义上支持多设备。


【发明内容】

[0004]本发明实施例提出一种应用程序的测试方法、设备及系统,能够提高待测试设备上应用程序的测试效率。
[0005]本发明实施例提供一种应用程序的测试方法,包括:
[0006]向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序;
[0007]循环获取所述待测试应用程序的显示界面的图片;
[0008]识别所述显示界面图片,获得所述显示界面图片相应的操作指令;
[0009]向所述待测试设备发送所述操作指令,使所述待测试应用程序的显示界面跳转。
[0010]进一步地,所述识别所述显示界面图片,获得所述显示界面图片相应的操作指令,具体包括:
[0011]根据图片识别算法,判断预先生成的层次结构图中是否存在与所述显示界面图片相似的控件视图;所述层次结构图为具有跳转关系的各个显示界面的控件视图;
[0012]若所述层次结构图中存在与所述显示界面图片相似的控件视图,则根据所述控件视图中的控件,获得所述显示界面图片相应的操作指令;
[0013]若所述层次结构图中不存在与所述显示界面图片相似的控件视图,则查询预先建立的弹窗库,获得与所述显示界面图片相似的弹窗特征图;所述弹窗库为存储各个弹窗特征图及其处理逻辑的数据库;
[0014]根据所述弹窗特征图的处理逻辑,获得所述显示界面图片相应的操作指令。
[0015]优选地,所述控件视图包括控件的位置、图片和类型;
[0016]所述若所述层次结构图中存在与所述显示界面图片相似的控件视图,则根据所述控件视图中的控件,获得所述显示界面图片相应的操作指令,具体包括:
[0017]若所述层次结构图中存在与所述显示界面图片相似的控件视图,则根据所述控件视图中控件的位置和图片,识别出所述显示界面图片中的控件;
[0018]根据所述控件视图中控件的类型,获得触发所述显示界面图片中的控件的操作指令。
[0019]进一步地,在所述向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序之前,还包括:
[0020]接收客户端发送的所述待测试应用程序的图片素材;所述图片素材包括显示界面图片素材和控件图片素材;
[0021]根据控件图片素材,识别出每个显示界面图片素材上控件的位置、图片和类型;
[0022]将每个显示界面图片素材转换为每个显示界面的控件视图;
[0023]向运行设备发送启动指令,使所述运行设备运行所述待测试应用程序;
[0024]根据所述待测试应用程序运行时显示界面的跳转关系,建立各个显示界面的控件视图的跳转关系,获得具有跳转关系的控件视图;所述具有跳转关系的控件视图即为层次结构图。
[0025]进一步地,在所述向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序之前,还包括:
[0026]接收客户端发送的待测试应用程序的安装包,以及待测试设备列表;
[0027]向所述待测试设备列表中的待测试设备发送所述安装包,使所述待测试设备安装所述待测试应用程序。
[0028]进一步地,所述应用程序的测试方法还包括:
[0029]实时获取所述待测试设备的性能数据;
[0030]在所述待测试应用程序运行结束时,根据获取的所述显示界面图片和所述性能数据,生成测试报告;
[0031]将所述测试报告发送给客户端。
[0032]本发明还提供了另外一种测试设备,包括:
[0033]第一启动模块,用于向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序;
[0034]显示界面图片获取模块,用于循环获取所述待测试应用程序的显示界面的图片;
[0035]显示界面图片识别模块,用于识别所述显示界面图片,获得所述显示界面图片相应的操作指令;以及,
[0036]操作指令发送模块,用于向所述待测试设备发送所述操作指令,使所述待测试应用程序的显示界面跳转。
[0037]进一步地,所述显示界面图片识别模块具体包括:
[0038]判断单元,用于根据图片识别算法,判断预先生成的层次结构图中是否存在与所述显示界面图片相似的控件视图;所述层次结构图为具有跳转关系的各个显示界面的控件视图;
[0039]第一操作指令获取单元,用于在所述判断单元判定所述层次结构图中存在与所述显示界面图片相似的控件视图时,根据所述控件视图中的控件,获得所述显示界面图片相应的操作指令;
[0040]弹窗特征图获取单元,用于在所述层次结构图中不存在与所述显示界面图片相似的控件视图时,查询预先建立的弹窗库,获得与所述显示界面图片相似的弹窗特征图;所述弹窗库为存储各个弹窗特征图及其处理逻辑的数据库;以及,
[0041]第二操作指令获取单元,用于根据所述弹窗特征图的处理逻辑,获得所述显示界面图片相应的操作指令。
[0042]优选地,所述控件视图包括控件的位置、图片和类型;
[0043]所述第一操作指令获取单元具体包括:
[0044]控件识别子单元,用于在所述判断单元判定所述层次结构图中存在与所述显示界面图片相似的控件视图时,根据所述控件视图中控件的位置和图片,识别出所述显示界面图片中的控件;以及,
[0045]操作指令获取子单元,用于根据所述控件视图中控件的类型,获得触发所述显示界面图片中的控件的操作指令。
[0046]进一步地,所述测试设备还包括:
[0047]第一接收模块,用于接收客户端发送的所述待测试应用程序的图片素材;所述图片素材包括显示界面图片素材和控件图片素材;
[0048]控件识别模块,用于根据所述控件图片素材,识别出每个显示界面图片素材上控件的位置、图片和类型;
[0049]转换模块,用于将每个显示界面图片素材转换为每个显示界面的控件视图;
[0050]第二启动模块,用于向运行设备发送启动指令,使所述运行设备运行所述待测试应用程序;以及,
[0051]层次结构图获取模块,用于根据所述待测试应用程序运行时显示界面的跳转关系,建立各个显示界面的控件视图的跳转关系,获得具有跳转关系的控件视图;所述具有跳转关系的控件视图即为层次结构图。
[0052]进一步地,所述测试设备还包括:
[0053]第二接收模块,用于接收客户端发送的待测试应用程序的安装包,以及待测试设备列表;以及,
[0054]安装包发送模块,用于向所述待测试设备列表中的待测试设备发送所述安装包,使所述待测试设备安装所述待测试应用程序。
[0055]进一步地,所述测试设备还包括:
[0056]性能数据获取模块,用于实时获取所述待测试设备的性能数据;
[0057]测试报告生成模块,用于在所述待测试应用程序运行结束时,根据获取的所述显示界面图片和所述性能数据,生成测试报告;以及,
[0058]测试报告发送模块,用于将所述测试报告发送给客户端。
[0059]本发明还提供了一种应用程序的测试系统,包括客户端、测试设备和待测试设备;
[0060]所述测试设备是上述测试设备。
[0061]实施本发明实施例,具有如下有益效果:
[0062]本发明实施例提供的应用程序的测试方法、设备及系统,能够获取待测试应用程序的显示界面的图片,识别其相应的操作指令,使待测试应用程序的显示界面自动跳转,适用于各种类型的应用程序的测试,同时,提高应用程序的测试效率;根据待测试应用程序显示界面的控件视图和跳转关系,自动生成层次结构图,并利用该层次结构图使各种类型的应用程序的测试统一化,有效提高测试效率;建立弹窗库,设置弹窗特征图及其处理逻辑,用于处理应用程序中的弹窗事件,提高测试的成功率;客户端只需提供待测试应用程序的图片素材,无需测试人员编写测试脚本,即可进行全自动化的测试,节约人力资源,降低学习成本;支持多设备并发测试,有效提高测试效率,节省测试时间。

【专利附图】

【附图说明】
[0063]图1是本发明提供的应用程序的测试方法的第一个实施例的流程示意图;
[0064]图2是本发明提供的显示界面的一个实施例的结构示意图;
[0065]图3是本发明提供的具有弹窗事件的显示界面的一个实施例的结构示意图;
[0066]图4是本发明提供的应用程序的测试方法的第二个实施例的部分流程示意图;
[0067]图5是本发明提供的图片素材的一个实施例的结构示意图;
[0068]图6是本发明提供的层次结构图的一个实施例的结构示意图;
[0069]图7是本发明提供的任务调度表的一个实施例的结构示意图;
[0070]图8是本发明提供的应用程序的测试设备的第一个实施例的结构示意图;
[0071]图9是本发明提供的应用程序的测试设备的第二个实施例的部分结构示意图;
[0072]图10是本发明提供的应用程序的测试系统的第一个实施例的结构示意图;
[0073]图11是本发明提供的应用程序的测试系统的第二个实施例的结构示意图。

【具体实施方式】
[0074]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0075]参见图1,是本发明提供的应用程序的测试方法的第一个实施例的流程示意图。
[0076]本发明实施例提供的应用程序的测试方法包括步骤S101至S104,具体如下:
[0077]S101、向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序。
[0078]具体的,通过ADB命令使待测试设备启动所述待测试应用程序。
[0079]S102、循环获取所述待测试应用程序的显示界面的图片。
[0080]具体的,待测试应用程序的显示界面每跳转一次,都会对显示界面进行截图,获取显不界面图片。
[0081]S103、识别所述显示界面图片,获得所述显示界面图片相应的操作指令。
[0082]S104、向所述待测试设备发送所述操作指令,使所述待测试应用程序的显示界面跳转。
[0083]其中,在步骤S103中,所述识别所述显示界面图片,获得所述显示界面图片相应的操作指令,具体包括:
[0084]根据图片识别算法,判断预先生成的层次结构图中是否存在与所述显示界面图片相似的控件视图;所述层次结构图为具有跳转关系的各个显示界面的控件视图;
[0085]若所述层次结构图中存在与所述显示界面图片相似的控件视图,则根据所述控件视图中的控件,获得所述显示界面图片相应的操作指令;
[0086]若所述层次结构图中不存在与所述显示界面图片相似的控件视图,则查询预先建立的弹窗库,获得与所述显示界面图片相似的弹窗特征图;所述弹窗库为存储各个弹窗特征图及其处理逻辑的数据库;
[0087]根据所述弹窗特征图的处理逻辑,获得所述显示界面图片相应的操作指令。
[0088]优选地,所述控件视图包括控件的位置、图片和类型。
[0089]具体的,所述若所述层次结构图中存在与所述显示界面图片相似的控件视图,则根据所述控件视图中的控件,获得所述显示界面图片相应的操作指令,具体包括:
[0090]若所述层次结构图中存在与所述显示界面图片相似的控件视图,则根据所述控件视图中控件的位置和图片,识别出所述显示界面图片中的控件;
[0091]根据所述控件视图中控件的类型,获得触发所述显示界面图片中的控件的操作指令。
[0092]需要说明的是,在识别显示界面中的控件时,先根据控件视图中控件的坐标来进行识别,若坐标错位,则采用图片识别技术,根据控件的图片来进行识别,使测试具有较高的执行效率和兼容性。
[0093]具体的,控件的类型包括图像(Image)控件、文本(Textarea)控件和按钮(Button)控件。在识别出显示界面中的按钮控件时,根据该按钮控件,获得触发该按钮控件所需的操作指令,如点击指令、滑动指令等。其中,操作指令是根据层次结构图中控件视图的跳转关系进行发送的,使待测试应用程序的显示界面按照层次结构图中控件视图的跳转关系进行跳转。若显示界面图片上具有多个按钮控件,查询该显示界面图片在层次结构图中的状态信息,根据该状态信息,获取触发相应按钮控件所需的操作指令,从而使测试过程更具规划性和可控性,避免盲目地向显示界面图片中不同的按钮控件发送操作指令,使测试的效率更高。
[0094]如图2所示,在识别出显示界面图片中的按钮控件时,根据层次结构图,向显示界面21中的按钮控件22发送点击指令,显示界面21中按钮控件22处出现手指形状图标23,使手指形状图标23点击按钮控件22,显示界面21跳转,从而实现全自动化的测试。
[0095]另外,在根据层次结构图进行显示界面跳转的同时,记录所有跳转节点的访问状态和正在访问的路径信息,在测试遍历到一个已访问的跳转节点时,执行回溯操作,使测试最终遍历所有可以到达的跳转节点,提高测试的执行效率。
[0096]在测试过程中,还会出现一些特殊的弹窗事件,而弹窗事件是难以预测的,如在游戏应用程序的测试过程中,会出现临时活动的推送界面,消息提示界面等。当出现这些弹窗事件时,如果不对其进行处理,则会对测试造成阻碍,甚至导致测试的失败。因此,可预先建立弹窗库,用来存储各个弹窗特征图及其处理逻辑,同时还存储有各个弹窗特征图处理后的目标显示界面图片。其中,弹窗特征图为特殊的显示界面图片,处理逻辑为客户端自定义处理过程,如输入、点击、等待等。
[0097]若测试中获得未知的显示界面图片,即层次结构图中不存在与显示界面图片相似的控件视图,则说明测试中出现了弹窗事件。测试设备查询弹窗库中的弹窗特征图,找到与显示界面相近似的弹窗特征图,从而获得该弹窗特征图的处理逻辑,使待测试应用程序执行该处理逻辑,将显示界面跳转到目标显示界面,并继续进行正常测试。
[0098]如图3所示,在测试过程中,显示界面31中出现弹窗事件32,测试设备在获得该显示界面31的图片时,未从层次结构图中找出与该图片相似的控件视图,则调用弹窗库,从弹窗库中找到与该图片相似的弹窗特征图,并根据弹窗特征图的处理逻辑,向显示界面31发送点击指令,使显示界面31跳转到目标显示界面。
[0099]需要说明的是,本实施例的应用程序的测试方法由测试设备实现,所述测试设备部署在计算机上,通过与待测试设备连接,实现对待测试设备上应用程序的测试。所述待测试设备为移动终端。
[0100]参见图4,是本发明提供的应用程序的测试方法的第二个实施例的流程示意图。
[0101]与上述第一实施例相比,第二实施例提供的应用程序的测试方法的不同点在于:
[0102]在所述向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序之前,还包括步骤S401至步骤S405,具体如下:
[0103]S401、接收客户端发送的所述待测试应用程序的图片素材;所述图片素材包括显示界面图片素材和控件图片素材。
[0104]需要说明的是,在接收待测试应用程序的图片素材的同时,还接收客户端发送的待测试应用程序安装包,并向运行设备发送安装包,通过ADB (Android Debug Bridge)命令使该运行设备安装所述待测试应用程序。其中,运行设备是用于生成层次结构图的任意一个移动终端。
[0105]在接收到的图片素材中,显示界面图片素材为待测试应用程序各个显示界面的截图。控件图片素材为各个显示界面中的按钮图片素材、图像图片素材和文本图片素材。
[0106]S402、根据所述控件图片素材,识别出每个显示界面图片素材上控件的位置、图片和类型。
[0107]具体的,米用SIFT (Scale-1nvariant feature transform,尺度不变特征变换匹配算法)图片识别技术,根据按钮图片素材、图像图片素材和文本图片素材分别识别出每个显示界面图片素材上的按钮控件、图像控件和文本控件,并记录每个显示界面图片素材上的每个控件的位置、图片和类型。其中,控件的位置为控件的坐标。
[0108]S403、将每个显示界面图片素材转换为每个显示界面的控件视图。
[0109]具体的,测试设备循环识别每个显示界面图片素材中的控件,从而将每个显示界面图片素材转换为其对应的控件视图。
[0110]如图5所示,根据控件图片素材中的按钮图片素材51、图像图片素材52和文本图片素材53分别识别出显示界面图片素材54上的按钮控件55、图像控件56和文本控件57,从而将显示界面图片素材54转换为控件视图。测试设备不断循环转换,直到将所有显示界面图片素材转换为控件视图为止。
[0111]S404、向运行设备发送启动指令,使所述运行设备运行所述待测试应用程序。
[0112]具体的,通过ADB命令使安装有待测试应用程序的运行设备启动所述待测试应用程序。
[0113]S405、根据所述待测试应用程序运行时显示界面的跳转关系,建立各个显示界面的控件视图的跳转关系,获得具有跳转关系的控件视图;所述具有跳转关系的控件视图即为层次结构图。
[0114]具体的,在待测试应用程序运行时,测试设备对当前显示界面进行截图,识别出当前显示界面的控件视图,并根据该控件视图,向运行设备发送操作指令,如点击或滑动等,使运行设备中的待测试应用程序执行操作。测试设备对运行设备执行操作后的显示界面再进行截图、识别和发送操作指令,不断循环获得待测试应用程序各个显示界面之间完整的跳转关系。根据该跳转关系,建立各个显示界面的控件视图的跳转关系,输出具有跳转关系的控件视图,从而获得层次结构图。其中,层次结构图为待测试应用程序的测试用例。
[0115]如图6所示,待测试应用程序的显示界面具有第一控件视图61、第二控件视图62和第三控件视图63。对待测试应用程序的当前显示界面进行截图,并识别出该截图相似的控件视图为第一控件视图61,根据第一控件视图61中的第一按钮控件611向待测试应用程序发送操作指令,使待测试应用程序的显示界面跳转。测试设备继续对跳转后的显示界面截图,识别出跳转后的显示界面截图相似的控件视图为第二控件视图62,再根据第二控件视图62中的第三按钮控件621向待测试应用程序发送操作指令,使待测试应用程序的显示界面继续跳转。如此循环,使待测试应用程序的显示界面完成全部跳转,获得各个控件视图的完整跳转关系:触发第一控件视图61上的第一按钮控件611,第一控件视图61跳转到第二控件视图62 ;触发第二控件视图62上的第三按钮控件621,第二控件视图62跳转到第三控件视图63 ;触发第三控件视图63的第五按钮控件631,第三控件视图63跳转到第二控件视图62 ;触发第二控件视图62上的第四按钮控件622,第二控件视图62跳转到第一控件视图61 ;触发第一控件视图61上的第二按钮控件612,第一控件视图61跳转到第三控件视图63。输出具有跳转关系的控件视图,即可获得层次结构图。其中,层次结构图以文件的形式保存,例如可保存为xml文件。
[0116]另外,待测试应用程序的层次结构图只需生成一次,测试设备将生成的层次结构图分发到不同的测试设备上,使不同的测试设备能够直接测试待测试设备上的该应用程序,从而减少网络数据传输量,且可避免重复计算。
[0117]需要说明的是,在1S和Android系统的原生应用中,现有的测试设备可以直接从应用程序的显示界面中获取控件的位置和类型,但是对于使用了第三方引擎(如C0C0S2dX、Unity3D等)的应用程序,其显示界面被渲染成了一张完整的图片,现有的测试设备不能直接从显示界面中获取控件。因此,本发明提供的实施例采用预先生成待测试应用程序的层次结构图的方法来进行测试,适用于各种类型的应用程序的测试,有效提高测试效率。
[0118]本发明还提供应用程序的测试方法的第三个实施例。
[0119]与上述第一实施例和第二实施例相比,第三实施例提供的应用程序的测试方法的不同点在于:
[0120]在所述向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序之前,还包括:
[0121]接收客户端发送的待测试应用程序的安装包,以及待测试设备列表;
[0122]向所述待测试设备列表中的待测试设备发送所述安装包,使所述待测试设备安装所述待测试应用程序。
[0123]需要说明的是,客户端还可以通过服务器向测试设备发送测试请求。其中,测试请求包括待测试应用程序的安装包和待测试设备列表。具体的,客户端将测试请求发送给服务器,服务器根据待测试设备列表中的待测试设备,向不同测试设备分发测试任务。若待测试设备处于本地局域网中,则服务器将测试任务标识为本地任务,并将其发送给连接该待测试设备的本地测试设备上;若待测试设备不在本地局域网中,则服务器将该测试任务标识为远程任务,并将其发送到连接该待测试设备的远程测试设备上。其中,服务器与远程测试设备通过Socket进行通讯。
[0124]其中,待测试列表中可包含多个待测试设备,测试设备可多线程并发执行多个测试任务。优选地,一个测试设备上最多启动与其CPU核心数相同的测试任务。如果测试设备当前的测试任务较多,则将测试任务放入任务队列中,并生成待测试设备的状态表,记录待测试设备的状态信息,在待测试设备空闲时进行测试。
[0125]如图7所示,测试设备同时在待测试设备A1、待测试设备A2……和待测试设备An上对待测试应用程序进行测试时,生成任务调度表71,将测试设备具有的测试任务B1、测试任务B2……和测试任务Bn放入任务调度表71中的任务队列72中。其中,测试设备可以为本地测试设备或远程测试设备,待测试应用程序可以为待测试应用程序C1、待测试应用程序C2……和待测试应用程序Cn。在任务队列72中,测试任务B1包含待测试设备A1和待测试应用程序C1的信息;测试任务B2包含待测试设备A2和待测试应用程序C1的信息;测试任务Bn包含待测试设备An和待测试应用程序Cn的信息。同时,任务调度表71中还具有待测试设备状态表73,用于记录待测试设备A1、待测试设备A2……和待测试设备An的状态信息,在待测试设备空闲时对其进行测试。
[0126]本发明还提供应用程序的测试方法的第四个实施例。
[0127]与上述第一实施例、第二实施例和第三实施例相比,第四实施例提供的应用程序的测试方法的不同点在于:
[0128]所述应用程序的测试方法还包括:
[0129]实时获取所述待测试设备的性能数据;
[0130]在所述待测试应用程序运行结束时,根据获取的所述显示界面图片和所述性能数据,生成测试报告;
[0131]将所述测试报告发送给客户端。
[0132]具体的,在待测试应用程序运行过程中,实时获取待测试设备的性能数据,如CPU、内存的占用信息等。在所述待测试应用程序运行结束时,将每张显示界面图片与获取每张显示界面图片时的待测试设备性能数据相对应的生成测试报告,使测试人员能够查看测试过程中出现的问题,且方便发现应用程序的性能瓶颈。同时,实时监控测试过程,使测试人员可实时查询测试进度,也使测试过程可以重现。
[0133]本发明实施例提供的应用程序的测试方法,能够获取待测试应用程序的显示界面的图片,识别其相应的操作指令,使待测试应用程序的显示界面自动跳转,适用于各种类型的应用程序的测试,同时,提高应用程序的测试效率;根据待测试应用程序显示界面的控件视图和跳转关系,自动生成层次结构图,并利用该层次结构图使各种类型的应用程序的测试统一化,有效提高测试效率;建立弹窗库,设置弹窗特征图及其处理逻辑,用于处理应用程序中的弹窗事件,提高测试的成功率;客户端只需提供待测试应用程序的图片素材,无需测试人员编写测试脚本,即可进行全自动化的测试,节约人力资源,降低学习成本;支持多设备并发测试,有效提高测试效率,节省测试时间。
[0134]相应地,本发明还提供一种应用程序的测试设备和测试系统,能够实现上述实施例中的应用程序的测试方法的所有流程。
[0135]参见图8,是本发明提供的应用程序的测试设备的第一个实施例的结构示意图,包括:
[0136]第一启动模块81,用于向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序;
[0137]显示界面图片获取模块82,用于循环获取所述待测试应用程序的显示界面的图片;
[0138]显示界面图片识别模块83,用于识别所述显示界面图片,获得所述显示界面图片相应的操作指令;以及,
[0139]操作指令发送模块84,用于向所述待测试设备发送所述操作指令,使所述待测试应用程序的显示界面跳转。
[0140]其中,所述显示界面图片识别模块83具体包括:
[0141]判断单元,用于根据图片识别算法,判断预先生成的层次结构图中是否存在与所述显示界面图片相似的控件视图;所述层次结构图为具有跳转关系的各个显示界面的控件视图;
[0142]第一操作指令获取单元,用于在所述判断单元判定所述层次结构图中存在与所述显示界面图片相似的控件视图时,根据所述控件视图中的控件,获得所述显示界面图片相应的操作指令;
[0143]弹窗特征图获取单元,用于在所述层次结构图中不存在与所述显示界面图片相似的控件视图时,查询预先建立的弹窗库,获得与所述显示界面图片相似的弹窗特征图;所述弹窗库为存储各个弹窗特征图及其处理逻辑的数据库;以及,
[0144]第二操作指令获取单元,用于根据所述弹窗特征图的处理逻辑,获得所述显示界面图片相应的操作指令。
[0145]优选地,所述控件视图包括控件的位置、图片和类型。
[0146]具体的,所述第一操作指令获取单元具体包括:
[0147]控件识别子单元,用于在所述判断单元判定所述层次结构图中存在与所述显示界面图片相似的控件视图时,根据所述控件视图中控件的位置和图片,识别出所述显示界面图片中的控件;以及,
[0148]操作指令获取子单元,用于根据所述控件视图中控件的类型,获得触发所述显示界面图片中的控件的操作指令。
[0149]参见图9,是本发明提供的应用程序的测试设备的第二个实施例。
[0150]与上述第一实施例相比,第二实施例提供的应用程序的测试设备的不同点在于:
[0151]所述应用程序的测试设备还包括:
[0152]第一接收模块91,用于接收客户端发送的所述待测试应用程序的图片素材;所述图片素材包括显示界面图片素材和控件图片素材;
[0153]控件识别模块92,用于根据所述控件图片素材,识别出每个显示界面图片素材上控件的位置、图片和类型;
[0154]转换模块93,用于将每个显示界面图片素材转换为每个显示界面的控件视图;
[0155]第二启动模块94,用于向运行设备发送启动指令,使所述运行设备运行所述待测试应用程序;以及,
[0156]层次结构图获取模块95,用于根据所述待测试应用程序运行时显示界面的跳转关系,建立各个显示界面的控件视图的跳转关系,获得具有跳转关系的控件视图;所述具有跳转关系的控件视图即为层次结构图。
[0157]本发明还提供应用程序的测试设备的第三个实施例。
[0158]与上述第一实施例和第二实施例相比,第三实施例提供的应用程序的测试设备的不同点在于:
[0159]所述应用程序的测试设备还包括:
[0160]第二接收模块,用于接收客户端发送的待测试应用程序的安装包,以及待测试设备列表;以及,
[0161]安装包发送模块,用于向所述待测试设备列表中的待测试设备发送所述安装包,使所述待测试设备安装所述待测试应用程序。
[0162]本发明还提供应用程序的测试设备的第四个实施例。
[0163]与上述第一实施例、第二实施例和第三实施例相比,第四实施例提供的应用程序的测试设备的不同点在于:
[0164]所述应用程序的测试设备还包括:
[0165]性能数据获取模块,用于实时获取所述待测试设备的性能数据;
[0166]测试报告生成模块,用于在所述待测试应用程序运行结束时,根据获取的所述显示界面图片和所述性能数据,生成测试报告;以及,
[0167]测试报告发送模块,用于将所述测试报告发送给客户端。
[0168]本发明实施例提供的应用程序的测试设备,能够获取待测试应用程序的显示界面的图片,识别其相应的操作指令,使待测试应用程序的显示界面自动跳转,适用于各种类型的应用程序的测试,同时,提高应用程序的测试效率;根据待测试应用程序显示界面的控件视图和跳转关系,自动生成层次结构图,并利用该层次结构图使各种类型的应用程序的测试统一化,有效提高测试效率;建立弹窗库,设置弹窗特征图及其处理逻辑,用于处理应用程序中的弹窗事件,提高测试的成功率;客户端只需提供待测试应用程序的图片素材,无需测试人员编写测试脚本,即可进行全自动化的测试,节约人力资源,降低学习成本;支持多设备并发测试,有效提高测试效率,节省测试时间。
[0169]参见图10,是本发明提供的应用程序的测试系统的第一个实施例的结构示意图,包括客户端101、测试设备102和待测试设备103 ;
[0170]所述测试设备102是上述应用程序的测试设备,在此不再详细描述。
[0171]参见图11,是本发明提供的应用程序的测试系统的第二个实施例的结构示意图。
[0172]本实施例提供的应用程序的测试系统包括客户端111、服务器112、第一测试设备113、第二测试设备114、第三测试设备115和多个待测试设备。其中,测试设备配置在计算机上,待测试设备为移动终端。客户端111接入服务器112,向服务器112发送测试请求;第一测试设备113和第二测试设备114为本地测试设备,分别接入服务器112,接收服务器112发送的本地测试任务;第三测试设备115为远程测试设备,通过Socket与服务器112进行通讯,接收服务器112发送的远程任务;每个测试设备接入待测试设备A1、待测试设备A2……和待测试设备An,实现在待测试设备A1、待测试设备A2……和待测试设备An上对待测试应用程序的测试。本发明实施例通过服务器来分发任务,提高测试设备的使用率。
[0173]服务器分别与本地测试设备和远程测试设备连接,可以将本地测试任务分发给本地测试设备,将远程测试任务分发给远程测试设备进行测试,提高测试设备的使用率,同时降低测试设备的购置成本。每个测试设备分别与待测试设备A1、待测试设备A2……和待测试设备An连接,支持多个待测试设备的并发测试,节约测试时间,同时,测试设备可适应对不同分辨率的待测试设备的测试。
[0174]需要说明的是,本发明实施例仅以测试系统包括一个服务器,且该服务器分别与两个本地测试设备和一个远程测试设备连接为例进行描述,但在具体实施当中,测试设备可以包括一个或多个服务器,每个服务器可与一个或多个本地测试设备连接,也可与一个或多个远程测试设备连接,其服务器和测试设备的数量可以根据实际应用来配置。
[0175]本发明实施例提供的应用程序的测试系统,能够获取待测试应用程序的显示界面的图片,识别其相应的操作指令,使待测试应用程序的显示界面自动跳转,适用于各种类型的应用程序的测试,同时,提高应用程序的测试效率;根据待测试应用程序显示界面的控件视图和跳转关系,自动生成层次结构图,并利用该层次结构图使各种类型的应用程序的测试统一化,有效提高测试效率;建立弹窗库,设置弹窗特征图及其处理逻辑,用于处理应用程序中的弹窗事件,提高测试的成功率;客户端只需提供待测试应用程序的图片素材,无需测试人员编写测试脚本,即可进行全自动化的测试,节约人力资源,降低学习成本;支持多设备并发测试,有效提高测试效率,节省测试时间。
[0176]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0177]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0178]在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0179]专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能宄竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0180]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0181]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种应用程序的测试方法,其特征在于,包括: 向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序; 循环获取所述待测试应用程序的显示界面的图片; 识别所述显示界面图片,获得所述显示界面图片相应的操作指令; 向所述待测试设备发送所述操作指令,使所述待测试应用程序的显示界面跳转。
2.如权利要求1所述的应用程序的测试方法,其特征在于,所述识别所述显示界面图片,获得所述显示界面图片相应的操作指令,具体包括: 根据图片识别算法,判断预先生成的层次结构图中是否存在与所述显示界面图片相似的控件视图;所述层次结构图为具有跳转关系的各个显示界面的控件视图; 若所述层次结构图中存在与所述显示界面图片相似的控件视图,则根据所述控件视图中的控件,获得所述显示界面图片相应的操作指令; 若所述层次结构图中不存在与所述显示界面图片相似的控件视图,则查询预先建立的弹窗库,获得与所述显示界面图片相似的弹窗特征图;所述弹窗库为存储各个弹窗特征图及其处理逻辑的数据库; 根据所述弹窗特征图的处理逻辑,获得所述显示界面图片相应的操作指令。
3.如权利要求2所述的应用程序的测试方法,其特征在于,所述控件视图包括控件的位置、图片和类型; 所述若所述层次结构图中存在与所述显示界面图片相似的控件视图,则根据所述控件视图中的控件,获得所述显示界面图片相应的操作指令,具体包括: 若所述层次结构图中存在与所述显示界面图片相似的控件视图,则根据所述控件视图中控件的位置和图片,识别出所述显示界面图片中的控件; 根据所述控件视图中控件的类型,获得触发所述显示界面图片中的控件的操作指令。
4.如权利要求2或3所述的应用程序的测试方法,其特征在于,在所述向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序之前,还包括: 接收客户端发送的所述待测试应用程序的图片素材;所述图片素材包括显示界面图片素材和控件图片素材; 根据所述控件图片素材,识别出每个显示界面图片素材上控件的位置、图片和类型; 将每个显示界面图片素材转换为每个显示界面的控件视图; 向运行设备发送启动指令,使所述运行设备运行所述待测试应用程序; 根据所述待测试应用程序运行时显示界面的跳转关系,建立各个显示界面的控件视图的跳转关系,获得具有跳转关系的控件视图;所述具有跳转关系的控件视图即为层次结构图。
5.如权利要求1所述的应用程序的测试方法,其特征在于,在所述向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序之前,还包括: 接收客户端发送的待测试应用程序的安装包,以及待测试设备列表; 向所述待测试设备列表中的待测试设备发送所述安装包,使所述待测试设备安装所述待测试应用程序。
6.如权利要求1所述的应用程序的测试方法,其特征在于,所述应用程序的测试方法还包括: 实时获取所述待测试设备的性能数据; 在所述待测试应用程序运行结束时,根据获取的所述显示界面图片和所述性能数据,生成测试报告; 将所述测试报告发送给客户端。
7.—种应用程序的测试设备,其特征在于,包括: 第一启动模块,用于向待测试设备发送启动指令,使所述待测试设备运行待测试应用程序; 显示界面图片获取模块,用于循环获取所述待测试应用程序的显示界面的图片; 显示界面图片识别模块,用于识别所述显示界面图片,获得所述显示界面图片相应的操作指令;以及, 操作指令发送模块,用于向所述待测试设备发送所述操作指令,使所述待测试应用程序的显示界面跳转。
8.如权利要求7所述的应用程序的测试设备,其特征在于,所述显示界面图片识别模块具体包括: 判断单元,用于根据图片识别算法,判断预先生成的层次结构图中是否存在与所述显示界面图片相似的控件视图;所述层次结构图为具有跳转关系的各个显示界面的控件视图; 第一操作指令获取单元,用于在所述判断单元判定所述层次结构图中存在与所述显示界面图片相似的控件视图时,根据所述控件视图中的控件,获得所述显示界面图片相应的操作指令; 弹窗特征图获取单元,用于在所述层次结构图中不存在与所述显示界面图片相似的控件视图时,查询预先建立的弹窗库,获得与所述显示界面图片相似的弹窗特征图;所述弹窗库为存储各个弹窗特征图及其处理逻辑的数据库;以及, 第二操作指令获取单元,用于根据所述弹窗特征图的处理逻辑,获得所述显示界面图片相应的操作指令。
9.如权利要求8所述的应用程序的测试设备,其特征在于,所述控件视图包括控件的位置、图片和类型; 所述第一操作指令获取单元具体包括: 控件识别子单元,用于在所述判断单元判定所述层次结构图中存在与所述显示界面图片相似的控件视图时,根据所述控件视图中控件的位置和图片,识别出所述显示界面图片中的控件;以及, 操作指令获取子单元,用于根据所述控件视图中控件的类型,获得触发所述显示界面图片中的控件的操作指令。
10.如权利要求8或9所述的应用程序的测试设备,其特征在于,所述应用程序的测试设备还包括: 第一接收模块,用于接收客户端发送的所述待测试应用程序的图片素材;所述图片素材包括显示界面图片素材和控件图片素材; 控件识别模块,用于根据所述控件图片素材,识别出每个显示界面图片素材上控件的位置、图片和类型; 转换模块,用于将每个显示界面图片素材转换为每个显示界面的控件视图; 第二启动模块,用于向运行设备发送启动指令,使所述运行设备运行所述待测试应用程序;以及, 层次结构图获取模块,用于根据所述待测试应用程序运行时显示界面的跳转关系,建立各个显示界面的控件视图的跳转关系,获得具有跳转关系的控件视图;所述具有跳转关系的控件视图即为层次结构图。
11.如权利要求7所述的应用程序的测试设备,其特征在于,所述应用程序的测试设备还包括: 第二接收模块,用于接收客户端发送的待测试应用程序的安装包,以及待测试设备列表;以及, 安装包发送模块,用于向所述待测试设备列表中的待测试设备发送所述安装包,使所述待测试设备安装所述待测试应用程序。
12.如权利要求7所述的应用程序的测试设备,其特征在于,所述应用程序的测试设备还包括: 性能数据获取模块,用于实时获取所述待测试设备的性能数据; 测试报告生成模块,用于在所述待测试应用程序运行结束时,根据获取的所述显示界面图片和所述性能数据,生成测试报告;以及, 测试报告发送模块,用于将所述测试报告发送给客户端。
13.—种应用程序的测试系统,其特征在于,包括客户端、测试设备和待测试设备; 所述测试设备是如权利要求7至12中任一项所述的应用程序的测试设备。
【文档编号】G06F11/36GK104484273SQ201410805289
【公开日】2015年4月1日 申请日期:2014年12月19日 优先权日:2014年12月19日
【发明者】翟煦 申请人:广州博冠信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1