应用的测试方法及装置与流程

文档序号:18213982发布日期:2019-07-19 22:30阅读:144来源:国知局
应用的测试方法及装置与流程

本发明涉及计算机领域,具体而言,涉及一种应用的测试方法及装置。



背景技术:

传统的应用自动化测试中,经常会遇到各种异常情况,尤其是预期外的各种弹框(如手机系统弹框、应用内的运营活动弹框等)及未知界面,通常脚本难以处理,除非人为干预,否则无法自动地返回到测试过程中继续执行测试,不得不退出原有的测试任务。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种应用的测试方法及装置,以至少解决相关技术中应用的测试效率较低的技术问题。

根据本发明实施例的一个方面,提供了一种应用的测试方法,包括:

在终端上对目标应用的当前运行界面进行测试时,检测到在所述终端上出现未标注界面,其中,所述未标注界面用于使得无法对所述当前运行界面执行测试操作,所述未标注界面不同于预先标注的界面,所述预先标注的界面用于对所述目标应用进行测试;

在所述未标注界面中识别具有目标图形的第一对象,其中,所述第一对象为允许被执行第一操作的对象,所述第一操作用于使所述未标注界面跳转至下一界面;

在识别出所述第一对象的情况下,对所述第一对象执行所述第一操作;

在检测到所述下一界面为所述当前运行界面的情况下,确定所述当前运行界面处于被允许执行所述测试操作的状态,在所述终端上对所述当前运行界面执行所述测试操作。

根据本发明实施例的另一方面,还提供了一种应用的测试装置,包括:

第一检测模块,用于在终端上对目标应用的当前运行界面进行测试时,检测到在所述终端上出现未标注界面,其中,所述未标注界面用于使得无法对所述当前运行界面执行测试操作,所述未标注界面不同于预先标注的界面,所述预先标注的界面用于对所述目标应用进行测试;

第一识别模块,用于在所述未标注界面中识别具有目标图形的第一对象,其中,所述第一对象为允许被执行第一操作的对象,所述第一操作用于使所述未标注界面跳转至下一界面;

第一执行模块,用于在识别出所述第一对象的情况下,对所述第一对象执行所述第一操作;

第一确定模块,用于在检测到所述下一界面为所述当前运行界面的情况下,确定所述当前运行界面处于被允许执行所述测试操作的状态,在所述终端上对所述当前运行界面执行所述测试操作。

可选地,所述装置还包括:

第二识别模块,用于在未识别出所述第一对象的情况下,在所述未标注界面中识别第二对象,其中,所述第二对象为运行所述目标应用的系统携带的原生控件上的对象,所述第二对象为允许被执行第二操作的对象,所述第二操作用于使所述未标注界面跳转至所述下一界面;

第二执行模块,用于在识别出所述第二对象的情况下,对所述第二对象执行所述第二操作。

可选地,所述装置还包括:

第三识别模块,用于在未识别出所述第二对象的情况下,在所述未标注界面中识别具有目标文字的第三对象,其中,所述第三对象为允许被执行第三操作的对象,所述第三操作用于使所述未标注界面跳转至所述下一界面;

第三执行模块,用于在识别出所述第三对象的情况下,对所述第三对象执行所述第三操作。

可选地,所述装置还包括:

第四识别模块,用于在未识别出所述第三对象的情况下,在所述未标注界面中识别第四对象,其中,所述第四对象为所述预先标注的界面中的可操作对象;

第四执行模块,用于在识别出所述第四对象的情况下,对所述第四对象执行第四操作,其中,所述第四操作为在对所述目标应用进行测试的过程中对所述第四对象所执行的操作。

可选地,所述未标注界面包括多个界面,其中,所述第四识别模块包括:

第一确定单元,用于确定所述多个界面中每个界面所对应的预先标注的界面,其中,所述每个界面所对应的预先标注的界面为与所述每个界面之间的相似度最高的预先标注的界面;

识别单元,用于按照所述每个界面所对应的预先标注的界面的操作优先级由高到低的顺序,识别所述多个界面中的所述第四对象,其中,在对所述目标应用进行测试的过程中优先对所述操作优先级高的预先标注的界面执行操作。

可选地,所述识别单元包括:

第一识别子单元,用于按照所述每个界面所对应的预先标注的界面的操作优先级由高到低的顺序,识别所述多个界面中除了最底层界面之外的其他界面中的所述第四对象,其中,所述最底层界面为所对应的操作优先级最低的界面;

第二识别子单元,用于根据所述最底层界面的数量,识别所述最底层界面中的所述第四对象。

可选地,所述第二识别子单元用于:

在所述最底层界面的数量不低于目标阈值的情况下,按照所述最底层界面与预先标注的界面之间的最高相似度对所述最底层界面进行聚类,得到多个界面集合,其中,所述多个界面集合中的每个界面集合包括一个或者多个所述最底层界面;

按照所述多个界面集合中每个界面集合所包括的所述最底层界面的数量由高到低的顺序,识别所述每个界面集合所包括的所述最底层界面中的所述第四对象。

可选地,所述第一识别模块包括:

提取单元,用于从获取到的所述未标注界面的界面截图中提取关键轮廓,得到轮廓图;

检测单元,用于从所述轮廓图中检测符合所述目标图形的目标轮廓;

第二确定单元,用于在检测出所述目标轮廓的情况下,确定识别出所述第一对象,其中,所述未标注界面中具有所述目标轮廓的对象为所述第一对象。

可选地,所述检测单元包括:

第一提取子单元,用于从所述轮廓图中提取与所述目标轮廓的尺寸匹配的第一候选轮廓;

第二提取子单元,用于从所述第一候选轮廓中提取具有所述目标轮廓的图形特征的第二候选轮廓;

第三提取子单元,用于根据所述第二候选轮廓的中心点所在的位置以及所述目标轮廓的中心点与目标关键点之间的位置关系,从所述轮廓图上提取第一关键点集合和第二关键点集合,其中,所述目标关键点包括位于所述目标轮廓所在区域之内的第一目标关键点和位于所述目标轮廓所在区域之外内的第二目标关键点,所述第一关键点集合包括所述第二候选轮廓的中心点和所述第二候选轮廓上与所述第一目标关键点所对应的点,所述第二关键点集合包括所述第二候选轮廓上与所述第二目标关键点所对应的点;

确定子单元,用于在所述第一关键点集合中所包括的点均落在所述第二候选轮廓所划分的区域之内,并且所述第二关键点集合中所包括的点均落在所述第二候选轮廓所划分的区域之外的情况下,确定所述第二候选轮廓为所述目标轮廓。

可选地,所述装置还包括:

截取模块,用于对于所述轮廓图中不符合所述目标图形的筛除轮廓,从所述轮廓图上截取所述筛除轮廓的图像;

提取模块,用于从所述筛除轮廓的图像中提取关键轮廓,得到所述筛除轮廓的轮廓图;

第二检测模块,用于从所述筛除轮廓的轮廓图中检测符合所述目标图形的目标轮廓;

第二确定模块,用于在检测出所述目标轮廓的情况下,确定识别出所述第一对象,其中,所述未标注界面中具有所述目标轮廓的对象为所述第一对象。

可选地,所述装置还包括:

第三检测模块,用于在检测到所述下一界面不为所述当前运行界面的情况下,检测所述下一界面是否为所述未标注界面。

根据本发明实施例的另一方面,还提供了一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中所述的方法。

根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行上述任一项中所述的方法。

在本发明实施例中,采用在终端上对目标应用的当前运行界面进行测试时,检测到在终端上出现未标注界面,其中,未标注界面用于使得无法对当前运行界面执行测试操作,未标注界面不同于预先标注的界面,预先标注的界面用于对目标应用进行测试;在未标注界面中识别具有目标图形的第一对象,其中,第一对象为允许被执行第一操作的对象,第一操作用于使未标注界面跳转至下一界面;在识别出第一对象的情况下,对第一对象执行第一操作;在检测到下一界面为当前运行界面的情况下,确定当前运行界面处于被允许执行测试操作的状态,在终端上对当前运行界面执行测试操作的方式,当对目标应用的当前运行界面进行测试时在终端上出现了未标注界面未标注界面上以图形识别的方式识别能够使得界面进行跳转的第一对象,如果识别到了第一对象,则对其执行第一操作,使得界面从未标注界面跳转至下一界面,如果下一界面为当前正在进行测试的当前运行界面,则在能够继续对应用进行测试,从而使得在应用测试的过程中能够自动地从出现的未标注界面回到测试到的界面,让测试能够自动地进行下去,从而实现了提高应用的测试效率的技术效果,进而解决了相关技术中应用的测试效率较低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的应用的测试方法的示意图;

图2是根据本发明实施例的一种可选的应用的测试方法的应用环境示意图;

图3是根据本发明可选的实施方式的一种可选的应用的测试方法的示意图;

图4是根据本发明可选的实施方式的另一种可选的应用的测试方法的示意图一;

图5是根据本发明可选的实施方式的另一种可选的应用的测试方法的示意图二;

图6是根据本发明可选的实施方式的另一种可选的应用的测试方法的示意图三;

图7是根据本发明可选的实施方式的另一种可选的应用的测试方法的示意图四;

图8是根据本发明可选的实施方式的另一种可选的应用的测试方法的示意图五;

图9是根据本发明可选的实施方式的另一种可选的应用的测试方法的示意图六;

图10是根据本发明可选的实施方式的另一种可选的应用的测试方法的示意图七;

图11是根据本发明可选的实施方式的另一种可选的应用的测试方法的示意图八;

图12是根据本发明可选的实施方式的另一种可选的应用的测试方法的示意图九;

图13是根据本发明可选的实施方式的另一种可选的应用的测试方法的示意图十;

图14是根据本发明实施例的一种可选的应用的测试装置的示意图;

图15是根据本发明实施例的一种可选的应用的测试方法的应用场景示意图;以及

图16是根据本发明实施例的一种可选的电子装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例的一个方面,提供了一种应用的测试方法,如图1所示,该方法包括:

s102,在终端上对目标应用的当前运行界面进行测试时,检测到在终端上出现未标注界面,其中,未标注界面用于使得无法对当前运行界面执行测试操作,未标注界面不同于预先标注的界面,预先标注的界面用于对目标应用进行测试;

s104,在未标注界面中识别具有目标图形的第一对象,其中,第一对象为允许被执行第一操作的对象,第一操作用于使未标注界面跳转至下一界面;

s106,在识别出第一对象的情况下,对第一对象执行第一操作;

s108,在检测到下一界面为当前运行界面的情况下,确定当前运行界面处于被允许执行测试操作的状态,在终端上对当前运行界面执行测试操作。

可选地,在本实施例中,上述应用的测试方法可以应用于如图2所示的终端202所构成的硬件环境中。如图2所示,在终端202上对目标应用的当前运行界面进行测试时,检测到在终端202上出现未标注界面,其中,未标注界面用于使得无法对当前运行界面执行测试操作,未标注界面不同于预先标注的界面,预先标注的界面用于对目标应用进行测试;终端202在未标注界面中识别具有目标图形的第一对象,其中,第一对象为允许被执行第一操作的对象,第一操作用于使未标注界面跳转至下一界面;在识别出第一对象的情况下,终端202对第一对象执行第一操作;在检测到下一界面为当前运行界面的情况下,终端202确定当前运行界面处于被允许执行测试操作的状态,在终端上对当前运行界面执行测试操作。

可选地,在本实施例中,上述应用的测试方法可以但不限于应用于对目标应用进行测试的场景中。其中,上述目标应用可以但不限于为各种类型的应用,例如,在线教育应用、即时通讯应用、社区空间应用、游戏应用、购物应用、浏览器应用、金融应用、多媒体应用、直播应用等。具体的,可以但不限于应用于在上述对多媒体应用进行测试的场景中,或还可以但不限于应用于在上述游戏应用进行测试的场景中,以提高对应用进行测试的效率。上述仅是一种示例,本实施例中对此不做任何限定。

可选地,在本实施例中,对目标应用的当前运行界面进行测试的过程可以但不限于包括预先设定了测试路径的测试过程,当前运行界面则可以认为是按照预先设定的测试路径执行操作时当前应当出现的界面,比如:以游戏测试中对进入对战场景的过程进行测试为例,测试路径可以设置为:终端桌面点击游戏客户端图标切换到游戏登录界面,点击开始游戏按钮切换到游戏大厅界面,点击对战按钮切换到模式选择界面,点击匹配模式切换到队伍组建界面,点击开始匹配按钮切换到匹配过程界面,等待一定时长进入到选择游戏角色界面,倒计时一定时长进入到游戏加载界面,游戏加载后进入游戏操作场景。

可选地,在本实施例中,上述预先标注的界面可以指预先设定的测试路径中的任意界面,或者也可以指按照预先设定的测试路径执行时当前应当切换到的界面。

可选地,在本实施例中,未标注界面不同于用于对目标应用进行测试的预先标注的界面,未标注界面可以但不限于包括以下各种情况:目标应用运行过程中弹出的活动界面、系统控件界面、其他应用的界面以及目标应用测试过程中未按照预先设定的操作过程进行操作而导致弹出的界面等等。

可选地,在本实施例中,目标图形可以但不限于包括具有关闭、取消、返回、前进、确定等含义的图形,比如:叉、箭头、圆圈、对号等等。

可选地,在本实施例中,当在未标注界面中识别出具有目标图形的对象时,并且该对象能够被执行第一操作,则对该对象执行第一操作,使得终端上显示的界面从未标注界面跳转至下一界面。上述第一操作可以但不限于包括点击操作、触摸操作、滑动操作等等。

例如:通过cv(即opencv,opensourcecomputervisionlibrary,是一个基于bsd许可(开源)发行的跨平台计算机视觉库,可以运行在linux、windows、android和macos等操作系统上。其具有轻量级而且高效的特点,由一系列c函数和少量c++类构成,同时提供了python、ruby、matlab等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法)识别出具有返回或关闭特征的图形按钮,如“×、←”等,且针对不同的图形分别进行建模,编写算法进行多重图片噪点过滤、图形轮廓特征提取等等操作,同时该算法也解决了opencv原生matchshapes算法过滤目标图形轮廓错判率较高的问题,识别准确率较高。

在一个可选的实施方式中,以对上述测试路径进行测试为例,如图3所示,在点击开始游戏按钮切换到游戏大厅界面后,游戏客户端的运行界面上显示的是游戏活动的推荐弹框,导致终端无法检测到游戏大厅界面中的对战按钮,此时能够确定检测到在终端上出现未标注界面,未标注界面为该游戏活动的推荐弹框,在该游戏活动的推荐弹框中识别具有目标图形(叉“×”)的第一对象,其中,第一对象为允许被执行单击操作的对象,单击操作用于使游戏活动的推荐弹框关闭从而跳转回游戏大厅界面。终端识别出第一对象,对第一对象执行单击操作,在检测到跳转回游戏大厅界面的情况下,确定游戏大厅界面处于被允许执行测试操作的状态,在终端上对游戏大厅界面执行测试操作(点击对战按钮),终端的运行画面切换到模式选择界面,继续进行对上述测试路径的测试。

可见,通过上述步骤,当对目标应用的当前运行界面进行测试时在终端上出现了未标注界面未标注界面上以图形识别的方式识别能够使得界面进行跳转的第一对象,如果识别到了第一对象,则对其执行第一操作,使得界面从未标注界面跳转至下一界面,如果下一界面为当前正在进行测试的当前运行界面,则在能够继续对应用进行测试,从而使得在应用测试的过程中能够自动地从出现的未标注界面回到测试到的界面,让测试能够自动地进行下去,从而实现了提高应用的测试效率的技术效果,进而解决了相关技术中应用的测试效率较低的技术问题。

作为一种可选的方案,在未标注界面中识别具有目标图形的第一对象之后,还包括:

s1,在未识别出第一对象的情况下,在未标注界面中识别第二对象,其中,第二对象为运行目标应用的系统携带的原生控件上的对象,第二对象为允许被执行第二操作的对象,第二操作用于使未标注界面跳转至下一界面;

s2,在识别出第二对象的情况下,对第二对象执行第二操作。

可选地,在本实施例中,如果没有通过图形识别在未标注界面中找到能够使界面进行跳转的第一对象,则采用系统原生控件识别的方式识别出未标注界面中能够使界面进行跳转的第二对象。从而使得界面能够跳转回当前运行界面继续进行测试。

可选地,在本实施例中,当在未标注界面中识别出原生控件中的对象时,并且该对象能够被执行第二操作,则对该对象执行第二操作,使得终端上显示的界面从未标注界面跳转至下一界面。上述第二操作可以但不限于包括点击操作、触摸操作、滑动操作等等。

例如:识别native控件,过滤出“返回、确定、取消、拒绝、接受、同意、确认、是、允许”等按钮,执行点击操作。通过点击这些按钮,可以关闭绝大多数手机的系统弹框。

在一个可选的实施方式中,通过识别native控件过滤出具有特定特征文字按钮并进行操作的过程如下:

步骤1、过滤按钮:通过adbshelluiautomatordump命令获取手机当前页面native控件信息;过滤出类型为“button、textview、compoundbutton、checkbox、radiobutton、checkedtextview”等的控件;从过滤后的结果中,继续过滤出text为“返回、确定、取消、拒绝、接受、同意、确认、是、允许”等的控件。如图4所示,识别出“拒绝”和“允许”按钮。

步骤2、进行操作:当找到了当前未标注界面下全部的具有特定特征的文字按钮,针对每个按钮,会依次调用自动化测试框架中的click方法,点击按钮的中心点坐标,并判断点击是否有效(点击后,若按钮消失,则点击有效)。

作为一种可选的方案,在未标注界面中识别第二对象之后,还包括:

s1,在未识别出第二对象的情况下,在未标注界面中识别具有目标文字的第三对象,其中,第三对象为允许被执行第三操作的对象,第三操作用于使未标注界面跳转至下一界面;

s2,在识别出第三对象的情况下,对第三对象执行第三操作。

可选地,在本实施例中,如果没有通过原生控件对象识别在未标注界面中找到能够使界面进行跳转的第二对象,则采用文字识别的方式识别出未标注界面中具有关闭、取消、返回、前进、确定等含义的目标文字,能够使界面进行跳转的第三对象。从而使得界面能够跳转回当前运行界面继续进行测试。

可选地,在本实施例中,当在未标注界面中识别出具有目标文字的对象时,并且该对象能够被执行第三操作,则对该对象执行第三操作,使得终端上显示的界面从未标注界面跳转至下一界面。上述第三操作可以但不限于包括点击操作、触摸操作、滑动操作等等。

例如:通过ocr(opticalcharacterrecognition,光学特征识别,是通过检测图片将图片上的文字内容翻译成计算机文字的技术)识别出具有返回特性的文字按钮,如“返回、确定、取消、拒绝、接受、同意、确认、是、允许”等按钮。通过点击这些按钮,可以关闭绝大多数手机的系统弹框,可以关闭部分应用内各种运营活动或提示的弹框,也可以使得部分未标注界面回退到预先标注的界面中。

在一个可选的实施方式中,通过ocr识别具有特定特征文字按钮并进行操作的过程如下:

步骤1、过滤按钮:通过ocr技术识别出“返回、确定、取消、拒绝、接受、同意、确认、是、允许”等文字,该技术可自研也可使用开源接口。如图5所示,识别出“取消”和“确定”按钮。

步骤2、进行操作:当找到了当前未标注界面下全部的具有特定特征的文字按钮,针对每个按钮,会依次调用自动化测试框架中的click方法,点击按钮的中心点坐标,并判断点击是否有效(点击后,若按钮消失,则点击有效)。

作为一种可选的方案,在未标注界面中识别具有目标文字的第三对象之后,还包括:

s1,在未识别出第三对象的情况下,在未标注界面中识别第四对象,其中,第四对象为预先标注的界面中的可操作对象;

s2,在识别出第四对象的情况下,对第四对象执行第四操作,其中,第四操作为在对目标应用进行测试的过程中对第四对象所执行的操作。

可选地,在本实施例中,在采用以上三种识别方式均未能使界面跳转的情况下,通过识别未标注界面中是否有已知的可操作对象来实现界面的跳转。

作为一种可选的方案,未标注界面包括多个界面,其中,在未标注界面中识别第四对象包括:

s1,确定多个界面中每个界面所对应的预先标注的界面,其中,每个界面所对应的预先标注的界面为与每个界面之间的相似度最高的预先标注的界面;

s2,按照每个界面所对应的预先标注的界面的操作优先级由高到低的顺序,识别多个界面中的第四对象,其中,在对目标应用进行测试的过程中优先对操作优先级高的预先标注的界面执行操作。

可选地,在本实施例中,如果有多个未标注界面,则可以按照每个界面所对应的预先标注的界面的操作优先级由高到低的顺序,识别多个界面中的第四对象。

可选地,在本实施例中,若目标应用自动化测试框架记录了有哪些已知界面且在这些已知界面中有哪些可操作对象,则遇到未知界面时,可识别在当前未知界面中是否存在已知界面中的可操作对象。通过对这些对象的操作,可以关闭部分应用内各种运营活动或提示的弹框,也可以使得部分未知界面回退到已知界面中。

可选地,在本实施例中,按照每个界面所对应的预先标注的界面的操作优先级由高到低的顺序,识别多个界面中的第四对象包括:

s1,按照每个界面所对应的预先标注的界面的操作优先级由高到低的顺序,识别多个界面中除了最底层界面之外的其他界面中的第四对象,其中,最底层界面为所对应的操作优先级最低的界面;

s2,根据最底层界面的数量,识别最底层界面中的第四对象。

可选地,在本实施例中,根据最底层界面的数量,识别最底层界面中的第四对象包括:

s1,在最底层界面的数量不低于目标阈值的情况下,按照最底层界面与预先标注的界面之间的最高相似度对最底层界面进行聚类,得到多个界面集合,其中,多个界面集合中的每个界面集合包括一个或者多个最底层界面;

s2,按照多个界面集合中每个界面集合所包括的最底层界面的数量由高到低的顺序,识别每个界面集合所包括的最底层界面中的第四对象。

在一个可选的实施方式中,识别原有已知界面中的可操作对象并进行操作的过程如下:

步骤1、识别对象:获取自动化测试框架中记录的已知界面中的全部可操作对象,并对这些对象进行优先级的排序。若已知界面标记过层级(假设在游戏大厅页面上有个运营活动的弹框,则运营活动弹框相对于游戏大厅属于高层级),则高层级界面上的可操作对象优先级较高;最低层级界面的界面总数超过150时,则这个层级上的界面需要按照与已知界面的相似度进行一次聚类(采用pcv.clustering.hcluster方法进行聚类),相似界面数量较多的可操作对象优先级较高。

例如:自动化测试框架记录在已知“背包”界面中存在如图6所示的按钮,则可在未知“局内称号”界面中识别出如图7所示的按钮。

步骤2、进行操作:当找到了当前未知界面下全部已知界面的可操作对象时,依照优先级,依次针对每个对象,按照自动化框架记录的该对象的操作类型进行操作,并判断操作是否有效(操作后,若对象消失,则操作有效)。

作为一种可选的方案,在未标注界面中识别具有目标图形的第一对象包括:

s1,从获取到的未标注界面的界面截图中提取关键轮廓,得到轮廓图;

s2,从轮廓图中检测符合目标图形的目标轮廓;

s3,在检测出目标轮廓的情况下,确定识别出第一对象,其中,未标注界面中具有目标轮廓的对象为第一对象。

可选地,在本实施例中,遇到未知界面时,首先会通过cv方式识别当前界面是否存在具有关闭特征或后退特征的图形,如“×、←”等按钮。通过点击“×”按钮,可以关闭部分手机的系统弹框,可以关闭绝大多数的游戏内各种运营活动或提示的弹框。通过点击“←”按钮,可以完成从未知界面回退到前一个已知界面中。

可选地,在本实施例中,通过cv识别具有特定特征图形按钮并进行操作的过程中以“×”按钮为例,可以但不限于采用如下方式提取关键轮廓:

利用自动化测试主线程截取当前未知界面的界面截图。然后过滤出当前界面截图的关键轮廓。由于游戏界面通常内容丰富,若不做噪点过滤、关键轮廓突出,容易产生较多错判和漏判,在本实施例中,针对“×”轮廓的查找,实现了界面关键轮廓的提取,该流程包括如下步骤:

步骤(1),将原彩色游戏界面截图通过opencv的cvtcolor方法转换为灰度图片;

步骤(2),转换后的图片进行一轮双边滤波(采用opencv的bilateralfilter方法)突出边界;

步骤(3),双边滤波后的图片进行一轮高斯滤波(采用opencv的gaussianblur方法)来消除噪点;

步骤(4),高斯滤波后的图片采用opencv的adaptivethreshold方法进行一轮自适应阈值的二值化;

步骤(5),使用opencv的laplacian方法对二值化后的图片进行边缘检测;

步骤(6),采用opencv的findcontours方法提取边缘检测后图片的关键轮廓。

针对不同游戏,若进行“×”轮廓的提取,所采用的各opencv方法的传入参数需要根据游戏画面特性进行数值调整,以达到最佳效果。并且,同一款游戏,针对不同图形形状,其噪点过滤、关键轮廓突出的组合算法亦可以根据图形特性进行调整。如图8所示,左边为原游戏界面截图、右边为未进行过滤的界面轮廓图。如图9所示,为过滤出关键轮廓的界面轮廓图。

作为一种可选的方案,从轮廓图中检测符合目标图形的目标轮廓包括:

s1,从轮廓图中提取与目标轮廓的尺寸匹配的第一候选轮廓;

s2,从第一候选轮廓中提取具有目标轮廓的图形特征的第二候选轮廓;

s3,根据第二候选轮廓的中心点所在的位置以及目标轮廓的中心点与目标关键点之间的位置关系,从轮廓图上提取第一关键点集合和第二关键点集合,其中,目标关键点包括位于目标轮廓所在区域之内的第一目标关键点和位于目标轮廓所在区域之外内的第二目标关键点,第一关键点集合包括第二候选轮廓的中心点和第二候选轮廓上与第一目标关键点所对应的点,第二关键点集合包括第二候选轮廓上与第二目标关键点所对应的点;

s4,在第一关键点集合中所包括的点均落在第二候选轮廓所划分的区域之内,并且第二关键点集合中所包括的点均落在第二候选轮廓所划分的区域之外的情况下,确定第二候选轮廓为目标轮廓。

可选地,在本实施例中,以过滤“×”轮廓为例,opencv原生的matchshapes可以比较两个轮廓,得到相似值,但实际测试发现,这个算法得到的结论并不准确,会产生较多的错判和漏判。故在本实施例中,未采用matchshapes轮廓对比过滤“×”轮廓。实现“×”轮廓的过滤的流程如下:

步骤(a),判断轮廓大小是否合适:通过opencv的boundingrect算法可获取轮廓的高宽,设高为h,宽为w;设原游戏界面截图图片的高宽中较短的为x。符合条件的轮廓,0.02<w/x<0.15且0.02<h/x<0.15(其中0.02和0.15为经验值,可根据实际情况调整);

步骤(b),判断轮廓是否对称:符合条件的轮廓,中心点左侧的轮廓点数目近似相等于中心点右侧的轮廓点数目、中心点上侧的轮廓点数目近似相等于中心点下侧的轮廓点数目、轮廓长宽比近似为1;

步骤(c),选取关键点并判断其是否包含于轮廓内:如图10所示,选取9个关键点进行判定。设中心点a5坐标为(x,y),轮廓高为h,宽为w;则a1点取(x-w/3,y-h/3),a2点取(x-w/3,y+h/3),a3点取(x+w/3,y+h/3),a4点取(x+w/3y-h/3),b1点取(x,y-h/3),b2点取(x+w/3,y),b3点取(x,y+h/3),b4点取(x-w/3,y)。符合条件的轮廓,a1、a2、a3、a4、a5都包含在轮廓内,b1、b2、b3、b4都不包含在轮廓内。通过以上步骤,可识别出“×”轮廓,如图11所示。

作为一种可选的方案,在从轮廓图中检测符合目标图形的目标轮廓之后,还包括:

s1,对于轮廓图中不符合目标图形的筛除轮廓,从轮廓图上截取筛除轮廓的图像;

s2,从筛除轮廓的图像中提取关键轮廓,得到筛除轮廓的轮廓图;

s3,从筛除轮廓的轮廓图中检测符合目标图形的目标轮廓;

s4,在检测出目标轮廓的情况下,确定识别出第一对象,其中,未标注界面中具有目标轮廓的对象为第一对象。

可选的,在本实施例中,通过以下方式减少漏判:由于在游戏界面中“×”按钮通常比较小,周围也经常包围着复杂的图像特效,容易导致图形轮廓不能正确提取。如图12所示,左边为原“×”按钮图,右边为提取的错误轮廓。

故对之前判定为非“×”的轮廓,需要再进行一轮检测,以降低漏判率。即在原彩色游戏界面截图中根据轮廓属性,抠出轮廓区域对应的图片。对这张新图片,重新进行噪点过滤、关键轮廓突出以提取关键轮廓,然后再进行一轮“×”轮廓过滤。具体实现的流程如下:

步骤(a),关键轮廓提取的算法:将彩色图片通过opencv的threshold方法进行固定阈值二值化(阈值根据图片直方图计算所得,为直方图中y轴最大的2个值对应x轴的值的均值);二值化后的图片转换为灰度图像(采用opencv的cvtcolor方法);转换后的图片进行一轮双边滤波(采用opencv的bilateralfilter方法)突出边界;双边滤波后的图片进行一轮高斯滤波(采用opencv的gaussianblur方法)来消除噪点;高斯滤波后的图片采用opencv的adaptivethreshold方法进行一轮自适应阈值的二值化;采用opencv的findcontours方法提取处理后图片的关键轮廓。如图13所示为修正后的轮廓。步骤(b),过滤“×”轮廓的算法同上。

接着可以对查找到的具有“×”的对象进行操作,当找到了当前未知界面下全部的“×”按钮,针对每个按钮,会依次调用自动化测试框架中的click方法,点击“×”按钮的中心点坐标,并判断点击是否有效(点击后,若“×”按钮消失,则点击有效)。

作为一种可选的方案,在检测到下一界面不为当前运行界面的情况下,还包括:

s1,检测下一界面是否为未标注界面。

可选地,在本实施例中,如果检测下一界面为未标注界面,则重复执行步骤s104至s108。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

根据本发明实施例的另一个方面,还提供了一种用于实施上述应用的测试方法的应用的测试装置,如图14所示,该装置包括:

1)第一检测模块1402,用于在终端上对目标应用的当前运行界面进行测试时,检测到在终端上出现未标注界面,其中,未标注界面用于使得无法对当前运行界面执行测试操作,未标注界面不同于预先标注的界面,预先标注的界面用于对目标应用进行测试;

2)第一识别模块1404,用于在未标注界面中识别具有目标图形的第一对象,其中,第一对象为允许被执行第一操作的对象,第一操作用于使未标注界面跳转至下一界面;

3)第一执行模块1406,用于在识别出第一对象的情况下,对第一对象执行第一操作;

4)第一确定模块1408,用于在检测到下一界面为当前运行界面的情况下,确定当前运行界面处于被允许执行测试操作的状态,在终端上对当前运行界面执行测试操作。

可选地,上述装置还包括:

第二识别模块,用于在未识别出第一对象的情况下,在未标注界面中识别第二对象,其中,第二对象为运行目标应用的系统携带的原生控件上的对象,第二对象为允许被执行第二操作的对象,第二操作用于使未标注界面跳转至下一界面;

第二执行模块,用于在识别出第二对象的情况下,对第二对象执行第二操作。

可选地,上述装置还包括:

第三识别模块,用于在未识别出第二对象的情况下,在未标注界面中识别具有目标文字的第三对象,其中,第三对象为允许被执行第三操作的对象,第三操作用于使未标注界面跳转至下一界面;

第三执行模块,用于在识别出第三对象的情况下,对第三对象执行第三操作。

可选地,上述装置还包括:

第四识别模块,用于在未识别出第三对象的情况下,在未标注界面中识别第四对象,其中,第四对象为预先标注的界面中的可操作对象;

第四执行模块,用于在识别出第四对象的情况下,对第四对象执行第四操作,其中,第四操作为在对目标应用进行测试的过程中对第四对象所执行的操作。

可选地,未标注界面包括多个界面,其中,第四识别模块包括:

第一确定单元,用于确定多个界面中每个界面所对应的预先标注的界面,其中,每个界面所对应的预先标注的界面为与每个界面之间的相似度最高的预先标注的界面;

识别单元,用于按照每个界面所对应的预先标注的界面的操作优先级由高到低的顺序,识别多个界面中的第四对象,其中,在对目标应用进行测试的过程中优先对操作优先级高的预先标注的界面执行操作。

可选地,识别单元包括:

第一识别子单元,用于按照每个界面所对应的预先标注的界面的操作优先级由高到低的顺序,识别多个界面中除了最底层界面之外的其他界面中的第四对象,其中,最底层界面为所对应的操作优先级最低的界面;

第二识别子单元,用于根据最底层界面的数量,识别最底层界面中的第四对象。

可选地,第二识别子单元用于:

在最底层界面的数量不低于目标阈值的情况下,按照最底层界面与预先标注的界面之间的最高相似度对最底层界面进行聚类,得到多个界面集合,其中,多个界面集合中的每个界面集合包括一个或者多个最底层界面;

按照多个界面集合中每个界面集合所包括的最底层界面的数量由高到低的顺序,识别每个界面集合所包括的最底层界面中的第四对象。

可选地,第一识别模块包括:

提取单元,用于从获取到的未标注界面的界面截图中提取关键轮廓,得到轮廓图;

检测单元,用于从轮廓图中检测符合目标图形的目标轮廓;

第二确定单元,用于在检测出目标轮廓的情况下,确定识别出第一对象,其中,未标注界面中具有目标轮廓的对象为第一对象。

可选地,检测单元包括:

第一提取子单元,用于从轮廓图中提取与目标轮廓的尺寸匹配的第一候选轮廓;

第二提取子单元,用于从第一候选轮廓中提取具有目标轮廓的图形特征的第二候选轮廓;

第三提取子单元,用于根据第二候选轮廓的中心点所在的位置以及目标轮廓的中心点与目标关键点之间的位置关系,从轮廓图上提取第一关键点集合和第二关键点集合,其中,目标关键点包括位于目标轮廓所在区域之内的第一目标关键点和位于目标轮廓所在区域之外内的第二目标关键点,第一关键点集合包括第二候选轮廓的中心点和第二候选轮廓上与第一目标关键点所对应的点,第二关键点集合包括第二候选轮廓上与第二目标关键点所对应的点;

确定子单元,用于在第一关键点集合中所包括的点均落在第二候选轮廓所划分的区域之内,并且第二关键点集合中所包括的点均落在第二候选轮廓所划分的区域之外的情况下,确定第二候选轮廓为目标轮廓。

可选地,上述装置还包括:

截取模块,用于对于轮廓图中不符合目标图形的筛除轮廓,从轮廓图上截取筛除轮廓的图像;

提取模块,用于从筛除轮廓的图像中提取关键轮廓,得到筛除轮廓的轮廓图;

第二检测模块,用于从筛除轮廓的轮廓图中检测符合目标图形的目标轮廓;

第二确定模块,用于在检测出目标轮廓的情况下,确定识别出第一对象,其中,未标注界面中具有目标轮廓的对象为第一对象。

可选地,上述装置还包括:

第三检测模块,用于在检测到下一界面不为当前运行界面的情况下,检测下一界面是否为未标注界面。

本发明实施例的应用环境可以但不限于参照上述实施例中的应用环境,本实施例中对此不再赘述。本发明实施例提供了用于实施上述实时通信的连接方法的一种可选的具体应用示例。

作为一种可选的实施例,上述应用的测试方法可以但不限于应用于如图15所示的对游戏应用进行自动化测试的场景中。在本场景中,通过如下步骤,能够实现在手游自动化测试时,对未知界面的处理,使得界面回退到已知的测试界面中。该处理过程包括如下流程:

步骤1:首先手游自动化测试主线程发现当前界面是非预期的未知界面时,开始进入未知界面的综合处理流程,并将计数初始化为0;

步骤2:判断第几次进入单个未知界面的处理流程。若次数计数小于或者等于5,计数加1,并进入步骤3-1;若大于5,则退出该流程,并返回“处理无效”到手游自动化测试主线程;(在实际的手游自动化测试过程中,对一个未知界面进行有效处理后,页面还是有较大概率停留在另一个未知界面中。故该流程在进行一轮单个未知界面处理后,若当前页面仍是未知界面,会再继续进行一轮处理。这里可以设置处理次数的合理阈值,该阈值目前默认为5,即若连续处理了5轮未知界面,仍未回退到已知界面,则退出该装置并返回“处理无效”;该阈值可根据实际项目进行调整)。

步骤3-1:通过cv识别当前界面下是否存在“×、←”等按钮。若识别出一个或多个按钮,则依次对这些按钮进行操作,并判定操作是否有效;

步骤3-2:若进行了一次有效操作(即操作后,被操作对象从当前界面消失),则跳至步骤7;否则,继续进行步骤4-1;

步骤4-1:通过识别native控件判断当前界面下是否存在“返回、确定、取消、拒绝、接受、同意、确认、是、允许”等按钮;若识别出一个或多个按钮,则依次对这些按钮进行操作,并判定操作是否有效;

步骤4-2:若进行了一次有效操作(即操作后,被操作对象从当前界面消失),则跳至步骤7;否则,继续进行步骤5-1;

步骤5-1:通过ocr识别当前界面下是否存在“返回、确定、取消、拒绝、接受、同意、确认、是、允许”等按钮;若识别出一个或多个按钮,则依次对这些按钮进行操作,并判定操作是否有效;

步骤5-2:若进行了一次有效操作(即操作后,被操作对象从当前界面消失),则跳至步骤7;否则,继续进行步骤6-1;

步骤6-1:查找当前未知界面中是否存在原有已知界面中的可操作对象。从最高层级的界面开始查找;当查找到最低层级的界面时,若全部最低层级界面的数量超过150个,则进行界面聚类,优先在相似数量较多的界面中进行对象查找;若识别出一个或多个可操作对象,则依照优先级依次对这些对象进行操作,并判定操作是否有效;

步骤6-2:若进行了一次有效操作(即操作后,被操作对象从当前界面消失),则跳至步骤7;否则,跳至步骤2;

步骤7:判断是否返回到已知界面。若返回到已知界面,则退出该流程,并返回“处理有效”到手游自动化测试主线程;若未返回到已知界面,则继续进行步骤2。

可选地,在本实施例中,从图片中识别提取具有特定特征的图形按钮,亦可通过机器学习实现。

通过上述过程,在手游自动化测试过程中,如遇弹框或未知界面,可通过多种识别算法,智能识别当前界面下具有特定特征的可操作对象(如关闭、返回、取消、确定等按钮,或原有已知界面中的可操作对象),依据优先级对这类对象进行操作,能有效关闭各种手机系统弹框或游戏内弹框,也能有效完成界面切换,使得返回到已知界面,以继续原有的自动化执行过程,避免测试中断,从而大幅提升测试的稳定性和容错性,减少人工干预成本。

在遇到各种非预期的手机系统弹框、游戏内弹框和其他未知界面时,可以智能识别当前界面下具有特定特征的可操作对象,通过对这些对象进行操作,能有效关闭各种弹框,也能有效完成界面切换,使得返回到已知界面,以继续原有的自动化执行过程。一方面降低了人工干预成本,另一方面,也极大提升了自动化测试的稳定性和容错性。

手游的自动化测试,难免遇到各种预期外的系统弹框、游戏内的运营活动或提示弹框、和其它未知界面。通过上述过程,自动化测试框架便可自动处理未知界面,无需人为干预,降低人力投入成本,极大提升了自动化测试的稳定性和容错性。

根据本发明实施例的又一个方面,还提供了一种用于实施上述应用的测试的电子装置,如图16所示,该电子装置包括:一个或多个(图中仅示出一个)处理器1602、存储器1604、传感器1606、编码器1608以及传输装置1610,该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,在终端上对目标应用的当前运行界面进行测试时,检测到在终端上出现未标注界面,其中,未标注界面用于使得无法对当前运行界面执行测试操作,未标注界面不同于预先标注的界面,预先标注的界面用于对目标应用进行测试;

s2,在未标注界面中识别具有目标图形的第一对象,其中,第一对象为允许被执行第一操作的对象,第一操作用于使未标注界面跳转至下一界面;

s3,在识别出第一对象的情况下,对第一对象执行第一操作;

s4,在检测到下一界面为当前运行界面的情况下,确定当前运行界面处于被允许执行测试操作的状态,在终端上对当前运行界面执行测试操作。

可选地,本领域普通技术人员可以理解,图16所示的结构仅为示意,电子装置也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图16其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图16中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图16所示不同的配置。

其中,存储器1602可用于存储软件程序以及模块,如本发明实施例中的应用的测试方法和装置对应的程序指令/模块,处理器1604通过运行存储在存储器1602内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的目标组件的控制方法。存储器1602可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1602可进一步包括相对于处理器1604远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置1610用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1610包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1610为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1602用于存储应用程序。

本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,在终端上对目标应用的当前运行界面进行测试时,检测到在终端上出现未标注界面,其中,未标注界面用于使得无法对当前运行界面执行测试操作,未标注界面不同于预先标注的界面,预先标注的界面用于对目标应用进行测试;

s2,在未标注界面中识别具有目标图形的第一对象,其中,第一对象为允许被执行第一操作的对象,第一操作用于使未标注界面跳转至下一界面;

s3,在识别出第一对象的情况下,对第一对象执行第一操作;

s4,在检测到下一界面为当前运行界面的情况下,确定当前运行界面处于被允许执行测试操作的状态,在终端上对当前运行界面执行测试操作。

可选地,存储介质还被设置为存储用于执行上述实施例中的方法中所包括的步骤的计算机程序,本实施例中对此不再赘述。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1