CN115525563A - 一种测试方法、装置、计算机设备和存储介质 - Google Patents
一种测试方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115525563A CN115525563A CN202211281848.7A CN202211281848A CN115525563A CN 115525563 A CN115525563 A CN 115525563A CN 202211281848 A CN202211281848 A CN 202211281848A CN 115525563 A CN115525563 A CN 115525563A
- Authority
- CN
- China
- Prior art keywords
- target
- page image
- traversal
- control
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19147—Obtaining sets of training patterns; Bootstrap methods, e.g. bagging or boosting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种测试方法、装置、计算机设备和存储介质,其中,该方法包括:响应于针对目标游戏的测试任务开始,从预设的多种遍历方式中确定目标遍历方式,其中,不同的所述遍历方式对应的遍历待测试控件的方式不同;以及,从预设的多种检测服务中确定目标检测服务,其中,不同的所述检测服务对应的异常检测的类型不同;基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,采集执行目标操作后的新的页面图像;利用所述目标检测服务,对所述新的页面图像进行异常检测,得到检测结果。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种测试方法、装置、计算机设备和存储介质。
背景技术
针对游戏开发团队开发的各种类型的游戏应用,为了保证在游戏应用上线时用户可以正常进行游戏,在游戏应用上线前通常需要进行游戏测试,游戏测试也成为了游戏开发过程中的一项重要任务。常规的测试方案大多需要测试人员针对开发出的各个游戏,分别编写针对性的测试代码,然后利用代码插桩的方式,使用编写好的测试代码对游戏进行测试。
然而,游戏具有迭代速度块、游戏场景复杂、需求多样的特性,若在对每种游戏进行测试时都采用编写针对性测试代码的方式,不仅会增加测试代码的开发难度和插桩难度,还将消耗大量的人力成本,影响了游戏测试的效率和质量。
发明内容
本公开实施例至少提供一种测试方法、装置、计算机设备和存储介质。
第一方面,本公开实施例提供了一种测试方法,包括:
响应于针对目标游戏的测试任务开始,从预设的多种遍历方式中确定目标遍历方式,其中,不同的所述遍历方式对应的遍历待测试控件的方式不同;以及,从预设的多种检测服务中确定目标检测服务,其中,不同的所述检测服务对应的异常检测的类型不同;
基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,采集执行目标操作后的新的页面图像;
利用所述目标检测服务,对所述新的页面图像进行异常检测,得到检测结果。
在一种可能的实施方式中,基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,包括:
根据对所述页面图像进行图像识别得到的图像识别结果,确定所述页面图像对应的场景类别以及所述页面图像中包括的图形控件;和/或,对所述页面图像进行文字识别,确定所述页面图像中包括的各个文字控件;
根据控件属性,从预设的操作动作库中包括的各个预设操作动作中,获取与所述图形控件和/或所述文字控件相匹配的目标操作动作;
根据所述场景类别,确定在所述目标遍历方式下的操作处理逻辑,按照所述操作处理逻辑和所述目标操作动作,对目标游戏的页面图像中的所述图形控件和/或所述文字控件,执行目标操作。
在一种可能的实施方式中,所述目标遍历方式包括自定义脚本遍历方式;
所述基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,包括:
响应于代码输入操作,获取初始脚本代码,以及响应于代码选取操作,从预设的逻辑代码库中,确定目标逻辑代码;
根据所述初始脚本代码和所述目标逻辑代码,生成所述自定义脚本遍历方式对应的目标脚本代码;
执行所述目标脚本代码,以实现对所述目标游戏的页面图像中的各待测试控件执行目标操作。
在一种可能的实施方式中,所述目标遍历方式包括玩家对战环境PVE遍历方式;
所述基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,包括:
将当前页面图像输入至预先训练好的目标网络模型中,利用所述目标网络模型对所述当前页面图像进行识别处理,确定当前针对所述当前页面图像的目标操作指令和匹配的目标控件,并按照所述目标操作指令,对与所述目标操作指令相匹配的目标控件进行操作;
将当前次操作后得到的新的页面图像作为新的所述当前页面图像,并返回将所述当前页面图像输入至预先训练好的目标网络模型的步骤,直至完成对所述目标游戏的各个所述待测试控件的操作。
在一种可能的实施方式中,所述目标遍历方式包括N层深度遍历方式,N为预设的正整数;
所述基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,包括:
针对当前页面图像,根据从所述当前页面图像中识别出的各个可操作区域,生成所述目标游戏对应的节点树;其中,所述可操作区域包括图形控件对应的图像区域和/或文字控件对应的图像区域,一个所述可操作区域对应一个节点,一张页面图像中的各个可操作区域分别对应的节点,为具有兄弟关系的节点;
针对所述节点树中各目标节点对应的可操作区域进行操作,并根据当前次操作后采集的新的页面图像中的各个可操作区域,对已生成的所述节点树进行更新,得到更新后的节点树;
在确定所述新的页面图像中的可操作区域对应的节点的层次为N层的情况下,从所述更新后的节点树中,选取层次小于N层的未操作节点作为新的目标节点,返回对目标节点对应的可操作区域进行操作,并确定当前次操作后采集的新的页面图像中的各个可操作区域的步骤,直至完成对已生成的节点树中的各个节点的操作或达到预设遍历时长。
在一种可能的实施方式中,所述方法还包括:
在确定所述新的页面图像中的可操作区域对应的节点的层次小于N层的情况下,从所述新的页面图像的可操作区域对应的节点中,选取新的目标节点;
对所述新的目标节点对应的可操作区域进行操作,并根据当前次操作后采集的新的页面图像中的各个可操作区域,对已生成的所述节点树进行更新,得到更新后的节点树。
在一种可能的实施方式中,所述目标遍历方式包括图网络遍历方式;
所述基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,包括:
响应于配置的遍历任务,根据当前页面图像中的各个可操作区域,生成所述当前页面图像的页面编码信息;
利用所述页面编码信息,对已构建的图网络进行更新,得到更新后的图网络,其中,一个页面图像对应于图网络中的一个图节点,一个图节点的节点信息与该图节点对应的页面编码信息相关;
根据所述当前页面图像中的各个可操作区域的区域属性和更新后的图网络,确定针对所述当前页面图像的可操作指令;所述区域属性用于表征所述可操作区域的遍历状态和所述可操作区域的区域功能;
响应于所述可操作指令,对所述当前页面图像中与所述可操作指令匹配的匹配控件进行目标操作,并采集操作后得到的新的页面图像;
将所述新的页面图像作为新的当前页面图像,并返回根据所述当前页面图像中的各个可操作区域,生成所述当前页面图像的页面编码信息的步骤,直至完成对所述目标游戏的页面图像中的各个待测试控件的遍历。
在一种可能的实施方式中,在所述根据所述当前页面图像中的各个可操作区域的区域属性和更新后的图网络,确定针对所述当前页面图像的可操作指令之前,还包括:
根据所述当前页面图像的遍历状态信息,确定所述当前页面图像是否存在页面状态异常;
所述根据所述当前页面图像中的各个可操作区域的区域属性和更新后的图网络,确定针对所述当前页面图像的可操作指令,包括:
在所述当前页面图像存在页面状态异常的情况下,根据所述当前页面图像中的各个可操作区域的区域属性、所述当前页面图像的异常页面状态和更新后的图网络,确定用于退出所述当前页面图像的所述可操作指令。
第二方面,本公开实施例还提供一种测试装置,包括:
确定模块,用于响应于针对目标游戏的测试任务开始,从预设的多种遍历方式中确定目标遍历方式,其中,不同的所述遍历方式对应的遍历待测试控件的方式不同;以及,从预设的多种检测服务中确定目标检测服务,其中,不同的所述检测服务对应的异常检测的类型不同;
遍历模块,用于基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,采集执行目标操作后的新的页面图像;
检测模块,用于利用所述目标检测服务,对所述新的页面图像进行异常检测,得到检测结果。
第三方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述测试装置、计算机设备、及计算机可读存储介质的效果描述参见上述测试方法的说明,这里不再赘述。
本公开实施例提供的测试方法、装置、计算机设备和存储介质,通过集成多种遍历方式,提高了本公开实施例提供的测试方法的适用性;通过集成多种检测服务,可以提高异常检测类型的多样性;通过预先将多种遍历方式和多种检测服务集成,能够实现在响应于开启测试任务时,灵活地选取目标遍历方式和目标检测服务;并且在开启测试任务时仅需要确定目标遍历方式和目标检测服务,无需全量开发针对目标游戏的测试代码,降低了游戏测试的复杂性和人力成本,提高了游戏测试的便利性和效率。利用在对待测试控件执行目标操作后采集的页面图像进行异常检测,可以在无需侵入目标游戏对应的游戏代码的情况下完成异常检测,相比于在目标游戏中进行代码插桩实现异常检测相比,基于无侵入的方式对采集的页面图像进行异常检测,可以有效降低异常检测的难度。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种测试方法的流程图;
图2示出了本公开实施例所提供的一种测试方法对应的技术目标示意图;
图3示出了本公开实施例所提供的一种目标工具的框架图;
图4示出了本公开实施例所提供的一种目标网络模型的训练和应用示意图;
图5示出了本公开实施例所提供的一种N层深度遍历方式的具体实施流程图;
图6示出了本公开实施例所提供的一种图网络遍历的遍历示意图;
图7示出了本公开实施例所提供的一种测试装置的示意图;
图8示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
经研究发现,针对游戏测试的业务而言,人工编写测试代码的方式,不仅存在测试代码插桩难度大的问题,还会由于游戏具有的迭代速度快、重视场景、游戏场景复杂、需求多样的特性,存在测试代码开发难度大和人工成本高的问题。因此,如何降低测试的难度和成本,成为了一个亟需解决的问题。
基于上述研究,本公开提供了一种测试方案,通过集成多种遍历方式,提高了本公开实施例提供的测试方法的适用性;通过集成多种检测服务,可以提高异常检测类型的多样性;通过预先将多种遍历方式和多种检测服务集成,能够实现在响应于开启测试任务时,灵活地选取目标遍历方式和目标检测服务;并且在开启测试任务时仅需要确定目标遍历方式和目标检测服务,无需全量开发针对目标游戏的测试代码,降低了游戏测试的复杂性和人力成本,提高了游戏测试的便利性和效率。利用在对待测试控件执行目标操作后采集的页面图像进行异常检测,可以在无需侵入目标游戏对应的游戏代码的情况下完成异常检测,相比于在目标游戏中进行代码插桩实现异常检测相比,基于无侵入的方式对采集的页面图像进行异常检测,可以有效降低异常检测的难度。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种测试方法进行详细介绍,本公开实施例所提供的测试方法的执行主体一般为具有一定计算能力的终端设备或其他处理设备,其中终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、个人数字助理设备(Personal Digital Assistant,PDA)、手持设备、计算机设备等;在一些可能的实现方式中,该测试方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为计算机设备为例对本公开实施例提供的测试方法加以说明。
如图1所示,为本公开实施例提供的一种测试方法的流程图,可以包括以下步骤:
S101:响应于针对目标游戏的测试任务开始,从预设的多种遍历方式中确定目标遍历方式,其中,不同的遍历方式对应的遍历待测试控件的方式不同;以及,从预设的多种检测服务中确定目标检测服务,其中,不同的检测服务对应的异常检测的类型不同。
这里,目标游戏可以为任一游戏类型的游戏,本公开实施例不进行具体限定。例如,目标游戏可以为第一人称射击类游戏(First-person shooting game,简称FPS)、策略类游戏(Simulation Game,简称SLG)、大型多人在线角色扮演游戏(Massive(或Massively)Multiplayer Online Role-Playing Game,简称MMORPG)、角色扮演游戏(Role-playinggame,简称RPG)等。目标游戏可以为在任一运行终端利用任一游戏引擎运行的游戏,其中,运行终端可以包括但不限于手机端、模拟器端和私人电脑(personal computer,简称PC)端。运行终端可以部署有任一运行系统,例如,手机端可以部署有安卓(Android)系统或IOS系统,PC端可以部署有Windows系统或MAC系统。
待测试控件可以为目标游戏中的各种类型的功能控件,一种功能控件可以在目标游戏的页面图像中对应存在一个可操作区域,如可点击区域、可滑动区域等。功能控件的类型可以包括图形控件、文字控件等。例如,图形控件可以为游戏页面图像中的确定控件、滑动控件、返回控件、退出控件、最小化控件等,文字控件可以为游戏页面图像中的“使用者协议”控件、“使用者须知”控件等。
测试任务为用于对目标游戏进行游戏测试的任务,可以根据实际的测试需要进行任务的具体设定。多种遍历方式可以包括但不限于录制回放遍历方式、自定义脚本遍历方式、玩家对战环境(Player Versus Environment,简称PVE)遍历方式、N层深度遍历方式和图网络遍历方式。其中,录制回放遍历方式即为先录制运行目标游戏过程中的游戏视频,再回放录制的视频,根据回放的视频对目标游戏中的待测试控件进行遍历。关于其他的遍历方式将在后文进行详细介绍。
目标遍历方式即为当前从多种遍历方式中选择的一种针对目标游戏的遍历方式。不同的遍历方式对应的遍历待测试控件的方式不同,例如,录制回放遍历方式通过录制并回放视频的方式对待测试控件进行遍历,自定义脚本遍历方式通过执行自定义脚本代码的方式对待测试控件进行遍历,PVE遍历方式利用训练好的神经网络实现对待测试控件的遍历,N层深度遍历方式通过生成树的方式进行遍历,图网络遍历方式通过生成图网络的方式进行遍历。每种遍历方式可以适用于对至少一种游戏类型的游戏进行遍历,在选取目标遍历方式时,可以根据实际的遍历需求从多张遍历方式中进行选择。例如,在针对目标游戏的某一游戏模块进行遍历时,可以选择N层深度遍历方式作为目标遍历方式;在需要对整个目标游戏进行遍历时,可以选择录制回放遍历方式、自定义脚本遍历方式、PVE遍历方式和图网络遍历方式中的任一种遍历方式作为目标遍历方式。
目标检测服务即为当前从多种检测服务中选择的一种针对目标游戏的检测服务。检测服务为用于对目标游戏进行异常检测的服务,具体的,检测服务可以通过从目标游戏中截取的页面图像,对目标游戏进行异常检测。不同的检测服务用于检测不同类型的异常。示例性的,预设的多张检测服务可以包括但不限于:图像异常检测、文本异常检测、图像相似去重、游戏文字识别(optical character recognition,简称OCR)、游戏战斗视频数字化、游戏多语言检测、游戏控件匹配、游戏场景分类、游戏画面抖动检测、空间响应时间捕获、游戏性能检测、游戏兼容性检测、自定义检测等。不同类型的检测服务可以依赖于不同的人工智能(Artificial Intelligence,简称AI)技术。例如,游戏OCR可以依赖于OCR技术,图像异常检测服务、文本异常检测、图像相似去重等服务可以依赖于神经网络技术,也即不同类型的检测服务可以使用不同类型的神经网络,不同类型的神经网络可以使用不同的训练方式得到。示例性的,网络学习的方式可以包括强化学习方式、模仿学习方式等。
利用不同类型的检测服务,可以实现将本公开实施例提供的异常检测方法应用于不同的业务。例如,图像异常检测服务应用于安全项目,游戏多语言检测服务应用于多语言测试业务,游戏性能检测服务应用于性能检测业务,游戏兼容性检测服务应用于兼容性测试业务。在利用不同类型的检测服务对游戏进行异常检测,得到检测结果之后,还可以对检测结果进行存储,以及可以根据检测结果自动生成游戏的检测报告,以便于用户根据检测报告及时全面地了解测试情况。如图2所示,为本公开实施例提供的一种测试方法对应的技术目标示意图。其中,图2中的SDK一体化建设中的下游任务即为与检测服务相关的任务。例如,图像异常检测服务相关的任务即为图像异常检测任务、图像相似去重服务相关的任务即为图像相似去重任务。
在具体实施时,本公开实施例提供的测试方法可以集成在目标工具中,用户可以通过在运行终端下载目标工具对应的软件开发工具包(Software Development Kit,简称SDK)实现对目标工具的安装,在成功安装目标工具之后即可以使用本公开实施例提供的测试方式,完成对目标游戏的测试。其中,目标工具可以根据运行终端中部署的运行系统,确定与运行系统的交互驱动方式。示例性的,目标工具支持的跨端交互驱动方式可以包括ADB-Android、BDC-IOS、WinAPI-Windows。其中,ADB为安卓调试桥,全称为Android DebugBridge,针对Android系统,目标工具可以通过ADB的方式实现交互驱动。BDC是一种针对IOS的自动化测试驱动工具,针对IOS系统,目标工具可以通过BDC实现交互驱动。WinAPI为视窗操作系统应用程序接口,全称Windows Application Programming Interface。针对Windows系统,目标工具可以通过WinAPI实现交互驱动。通过包装成SDK包的方式,可以实现对本公开实施例提供的测试方法的一体化建设,用户仅需要在需要的时候安装SDK包即可实现对包装有测试方法的目标工具的使用。并且,目标工具的使用方式简单,用户仅需要少量的时间即可熟练掌握目标工具,进而完成对任一目标游戏的测试。
如图3所示,为本公开实施例提供的一种目标工具的框架图,其中,智能遍历模块中包括多种遍历方式,自动遍历方式包括N层深度遍历方式和图网络遍历方式。业务应用模块用于指示目标工具可应用的业务,在图3中示出的安全项目业务和多语言项目作为示例,在具体实施时能够应用的业务种类十分丰富,图3未一一列举,但例如性能测试业务、兼容性测试业务,甚至IOS/Android/Windows端的外挂脚本测试业务等,均应该落在本公开实施例的保护范围内。图3中的智能服务模块用于提供各种检测服务,图3仅示出了图像异常检测、文本异常检测、图像相似去重三个服务作为示例。数据存储模块用于进行信息存储,具体的,可以存储异常页面图像和/或正常页面图像。工具模块中包括存储有各种操作对应的操作动作库(如点击click操作、滑动scroll操作等)、存储有各种常用逻辑代码的逻辑代码库(如循环(loop)代码、队列(sequence)代码等)、场景理解模块和图像采集模块。其中,场景理解模块中具体可以提供有用户界面(User Interface,UI)控件检测功能、游戏OCR功能和场景分类功能,UI控件检测功能用于检测出页面图像中的各个控件,游戏OCR功能用于对页面图像进行文字识别,场景分类功能用于识别页面图像对应的游戏场景,例如,支付场景、登录场景、弹窗场景、对战场景等。图像采集模块用于采集目标游戏的页面图像。针对目标工具中的各个模块,图像采集模块采集的页面图像可以输入至智能服务模块,以利用智能服务模块中的检测服务对页面图像进行检测;智能遍历模块可以与工具模块互相通讯以完成信息传输;智能服务模块确定出的检测结果可以输出至业务应用模块以将检测结果应用于业务。手机/模拟器/PC模块即为目标工具需要交互的运行终端,运行终端与目标工具进行交互,可以实现对目标游戏的测试。
如下表一所示,为本公开实施例提供的一种针对图3中的各个模块的功能说明表:
(表一)
上述表一中的模板匹配是指:预先提供标识有控件的模板图像,通过对采集的页面图像进行识别,确定存在控件的各个页面位置,并根据各个页面位置和模板图像中每个标识好的控件的位置,确定采集的页面图像包括的各个待测试控件。关于上述表一中指出的内容,通过目标工具与运行终端之间的交互均可实现。
上述S101在具体实施时,在用户确定针对目标游戏的测试任务之后,可以进入安装好的目标工具的初始页面,在初始页面展示的智能遍历模块包括的多种遍历方式中,选择针对目标游戏的目标遍历方式;以及,在初始页面展示的智能服务模块包括的多种检测服务中,选择针对目标游戏的目标检测服务。之后,可以确定针对目标游戏的测试任务开始,并根据用户的选择操作,确定目标遍历方式和目标检测服务。
S102:基于目标遍历方式对目标游戏的页面图像中的各待测试控件执行目标操作,采集执行目标操作后的新的页面图像。
这里,页面图像即为在测试目标游戏的过程中采集的各张游戏界面图像。待测试控件即为页面图像中包括的各个页面控件,不同的待测试控件具有不同的功能。例如,待测试控件可以为用于指示开始游戏的开始游戏控件、用于查看使用者协议的文字控件、用于移动目标游戏中的对象的移动控件、用于控制游戏画面的画面缩放控件等。
目标遍历方式可以用于对页面图像中的全部类型的待测试控件进行遍历,也可以用于对页面图像中特定类型的待测试控件进行遍历。在具体实施时,对何种类型的待测试控件进行遍历,可以根据目标遍历方式自身的遍历属性和/或用户指定的遍历类型进行确定。
目标操作具体可以为与待测试控件匹配的操作。例如,针对轮盘控件,目标操作可以为在轮盘控件上的滑动操作;针对需要点击的按钮控件,目标操作可以为针对按钮控件的点击操作。一个待测试控件可以对应于至少一种目标操作。例如,针对轮盘控件,目标操作可以为在轮盘控件上的向前滑动操作、向后滑动操作、向上滑动操作和向下滑动操作等。
目标游戏在响应针对待测试控件的目标操作后,将会对画面内容更新,从而产生新的页面图像。这是,目标工具中的图像采集模块将会通过截图、录频等方式,采集新的页面图像。例如,在针对轮盘控件执行了向前滑动操作后,可以将目标游戏中的对象的位置向前移动,得到新的页面图像。在针对“下一页”按钮控件执行了点击操作后,可以进入当前页面的下一页面,也即得到了新的页面图像。在点击了使用者协议的文字控件后,可以生成展示有完成的使用者协议的使用者协议弹窗,此时将得到包括使用者协议的新的页面图像。
具体实施时,针对目标游戏当前正在展示的页面图像,可以利用场景理解模块,确定出页面图像中的各个待测试控件,然后可以基于目标遍历方式对目标游戏的页面图像中的各个待测试控件,执行与该待测试控件相匹配的目标操作,然后可以采集执行目标操作后的新的页面图像。示例性的,页面图像中包括待测试控件1、待测试控件2和待测试控件3,可以在基于目标遍历方式对待测试控件1执行了目标操作1之后,采集新的页面图像1,在基于目标遍历方式对待测试控件2执行了目标操作2之后,采集新的页面图像2,以及在基于目标遍历方式对待测试控件3执行了目标操作3之后,采集新的页面图像3。
在具体目标遍历时,一次遍历操作可以对一个待测试控件执行与之匹配目标操作,在执行了针对页面图像中的一个待测试控件的目标操作之后,若该待测试控件对应的新的页面图像中包括多个新的待测试控件,可以继续遍历新的待测试控件以及利用下述S103对新的页面图像进行异常检测,也可以先存储该新的页面图像并返回执行上一页面图像中的其他待测试控件的遍历。
S103:利用目标检测服务,对新的页面图像进行异常检测,得到检测结果。
这里,检测结果可以包括用于指示新的页面图像不存在异常的第一结果和用于指示新的页面图像存在异常的第二结果。并且,在检测结果为第二结果的情况下,检测结果中还可以包括异常记录。例如,异常记录可以指示有异常类型、异常位置、异常原因等信息。
示例性的,在得到新的页面图像之后,可以利用确定的目标检测服务,对新的页面图像进行异常检测。例如,对新的页面图像进行文本异常检测、语种检测、控件检测等。然后,可以获取针对新的页面图像的检测结果。
当然,在得到检测结果之后,可以利用数据存储模块,存储检测结果和/或新的页面图像。
需要说明的是,在对目标游戏进行测试的初始时刻,S102处理的页面图像可以为目标游戏的首个页面对应的首页图像。此时,为了实现对目标游戏的各个页面图像均进行异常检测,可以利用目标检测服务直接对首页图像进行异常检测,得到首页页面对应的检测结果。同时,在利用S102对首页图像中的待测试控件执行目标操作并采集到新的页面图像后,执行S103,即利用目标检测服务对新的页面图像进行异常检测,得到新的页面图像对应的检测结果。
如此,在基于目标遍历方式对目标游戏的各个页面图像中的各个待测试控件,均执行了与待测试控件匹配的目标操作之后,也即完成了对目标游戏的各个页面图像中的各个待测试控件的遍历之后,也可以利用目标检测服务对每次遍历后得到的新的页面图像,均进行了异常检测,得到了对应的检测结果。之后,可以根据各个页面图像分别对应的检测结果,生成目标游戏对应的检测报告,并将检测报告反馈给开发端,以使开发端的开发人员基于检测报告,及时掌握目标游戏的测试情况。或者,也可以将检测结果和实际的业务结合,生成业务报告并将业务报告反馈给开发端,以使开发端的开发人员基于业务报告,及时掌握业务情况。
需要说明的是,在对目标游戏进行测试时,确定出的目标遍历方式也可以包括多个,以及确定出的目标检测服务也可以包括多个。之后,可以利用确定出的多个目标遍历方式分别对目标游戏进行遍历,并利用多个检测服务分别对每次采集的新的页面图像进行异常检测。如此,通过多个目标遍历方式和多个目标检测服务结合的方式对目标游戏进行测试,可以提高测试结果的准确形和全面性,实现对目标游戏的多类型测试。
这样,通过集成多种遍历方式,可以实现针对任一类型的游戏,均存在至少一种适用的遍历方式,提高了本公开实施例提供的测试方法的适用性;通过集成多种检测服务,可以提高异常检测类型的多样性;通过预先将多种遍历方式和多种检测服务集成,能够实现在响应于开启测试任务时,灵活地选取目标遍历方式和目标检测服务;并且在开启测试任务时仅需要确定目标遍历方式和目标检测服务,省略了主动开发针对目标游戏的测试代码的步骤,降低了游戏测试的复杂性和人力成本,提高了游戏测试的便利性和效率。利用在对待测试控件执行目标操作后采集的页面图像进行异常检测,可以在无需侵入目标游戏对应的游戏代码的情况下完成异常检测,相比现有技术中需要在目标游戏中进行代码插桩才可以实现异常检测,具有插桩难度大的问题,通过采集的页面图像利用无侵入的方式进行异常检测,可以有效降低异常检测的难度。
在一种实施例中,针对S102,可以按照以下步骤实施:
S102-1:根据对页面图像进行图像识别得到的图像识别结果,确定页面图像对应的场景类别以及页面图像中包括的图形控件;和/或,对页面图像进行文字识别,确定页面图像中包括的各个文字控件。
这里,场景类别用于指示页面图像所属的场景,例如,支付场景、弹窗场景、对战场景等。图形控件即为页面图像中包括具有图形形状的控件。例如,正方形的确定按钮、叉号形状的关闭按钮等。文字控件即为页面图像中文字类型的控件,该类型的控件往往以可点击文字的形式出现在页面图像中,如用于查看使用者协议的“使用者协议”文字控件。
示例性的,可以利用场景理解模块中部署的图像识别网络,对页面图像进行图像识别,确定图像识别结果。其中,图像识别结果可以是一种用于表征页面图像所包括的全部信息,例如,页面颜色信息、页面内容信息、页面尺寸信息、页面类型信息等。之后,可以利用场景分类模块,根据图像识别结果确定出页面图像对应的场景类别。当然,也可以直接利用场景分类模块,对页面图像进行图像识别,从而确定出页面图像对应的场景类别。并且,利用UI检测模块,根据图像识别结果中的页面内容信息,检测出页面图像中各个具有图形形状的图形控件。当然,UI检测模块中也可以部署有专用于图像控件检测的UI检测神经网络,在具体实施时,可以直接利用UI检测神经网络对页面图像进行识别,确定出页面图像中的各个图形控件。
和/或,可以利用游戏OCR模块,对页面图像进行文字内容的识别,确定出页面图像中的各个文字区域及区域文字内容,之后,可以根据页面图像对应的场景类别和区域文字内容,确定属于文字控件的各个文字区域,也即得到了页面图像中的各个文字控件。例如,在页面图像的场景类别为登录场景,文字区域1对应的区域文字内容为登录须知的情况下,则可以确定登录须知为页面图像中的一个文字控件。
S102-2:根据控件属性,从预设的操作动作库中包括的各个预设操作动作中,获取与图形控件和/或文字控件相匹配的目标操作动作。
这里,预设的操作动作库中存储有各种预设操作动作,不同的预设操作动作用于对不同的待测试控件进行操作。控件属性用于指示待测试控件的操作方式,例如,点击属性则指示可以通过点击的方式对待测试控件进行操作,滑动属性则指示可以通过滑动的方式对待测试控件进行操作。与待测控件相匹配的目标操作动作,即为与该待测控件的控件属性指示的操作方式匹配的操作动作。例如,待测试控件1的控件属性指示的操作方式为点击方式,则目标操作动作即为点击动作。
具体实施时,针对识别出的每个待测试控件(包括图形控件和/或文字控件),可以根据该待测试控件的控件属性,从操作动作库中包括的各个预设操作动作中,获取与该待测试控件匹配的目标操作动作。
S102-3:根据场景类别,确定在目标遍历方式下的操作处理逻辑,并按照操作处理逻辑和目标操作动作,对目标游戏的页面图像中的图形控件和/或文字控件,执行目标操作。
这里,不同出场景类别可以对应于不同的操作处理逻辑,操作处理逻辑用于指示对页面图像中检测出的各个待测试控件的遍历顺序。例如,在页面图像对应的场景类别为弹窗类别的情况下,操作处理逻辑将指示最后遍历的待测试控件为弹窗页面图像中的弹窗关闭控件。
需要说明的是,在具体实施时,可以根据页面图像的场景类别确定操作处理逻辑,不同的目标遍历方式下也可以存在不同的默认操作处理逻辑,可以直接根据遍历方式确定操作处理逻辑,或者,也可以在确定测试任务时预先指定操作处理逻辑,按照指定的操作处理逻辑进行遍历。示例性的,上述三种方式分别对应的操作处理逻辑的优先级关系可以为,用户指定的操作处理逻辑的优先级大于目标遍历方式下的默认操作处理逻辑的优先级大于场景类别下的操作处理逻辑的优先级的顺序。在具体实施时,在利用上述三种方式中的多种方式均可以确定出操作处理逻辑的情况下,可以根据上述优先级,确定出最终使用的操作处理逻辑。
具体实施时,针对每个待测试控件(包括图形控件和/或文字控件),在按照操作处理逻辑确定需要对该待测试控件进行遍历时,可以对该待测试控件,执行获取的针对该待测试控件的目标操作动作,也即完成对该待测试控件执行目标操作。
在一种实施方式中,也可以根据场景类别,从页面图像包括的各个待测试控件中,筛选出需要遍历的目标待测试控件,然后可以按照操作处理逻辑和目标待测试控件对应的目标操作动作,对各个目标待测试控件执行目标操作。
在一种实施例中,目标遍历方式包括自定义脚本遍历方式,其中,自定义脚本遍历方式允许用户通过自定义测试代码的方式完成遍历。具体的,针对上述S102,可以按照以下步骤实施:
S1021:响应于代码输入操作,获取初始脚本代码,以及响应于代码选取操作,从预设的逻辑代码库中,确定目标逻辑代码。
这里,预设的逻辑代码库中存储有各种常用逻辑代码,如for循环代码、if else语句代码、while语句代码、do while语句代码、sequence代码等。
示例性的,响应于用户点击目标工具中的自定义遍历方式的操作,生成并展示代码编辑页面,获取用户在代码编辑页面输入的初始脚本代码。之后,响应于用户针对逻辑代码库的代码选取操作,从逻辑代码库中,确定用户选取的目标逻辑代码。
这样,用户通过在逻辑代码库中选取逻辑代码的方式自定义遍历脚本,无需用户手动编写所有的代码,既减少了编写工作量,又节省了编写流程,有利于提高自定义遍历脚本的编写效率。
S1022:根据初始脚本代码和目标逻辑代码,生成自定义脚本遍历方式对应的目标脚本代码。
这里,目标脚本代码即为用户自定义的遍历方式对应的测试代码。
示例性的,可以将初始脚本代码和目标逻辑代码进行代码合并,从而得到目标脚本代码。
S1023:执行目标脚本代码,以实现对目标游戏的页面图像中的各待测试控件执行目标操作。
具体实施时,在得到目标脚本代码之后,可以运行目标脚本代码,利用运行的目标脚本代码对目标游戏的页面图像中的各待测试控件,执行与该待测试控件相匹配的目标操作,从而实现对目标游戏的遍历。
在一种实施例中,目标遍历方式可以包括玩家对战环境PVE遍历方式。这里,PVE遍历方式是一种AI遍历方式,支持通过AI对战的模式完成自动游戏,其中,AI对战采用模仿学习的方式实现。具体的,针对S102,可以按照以下步骤实施:
步骤一、将当前页面图像输入至预先训练好的目标网络模型中,利用目标网络模型对当前页面图像进行识别处理,确定当前针对当前页面图像的目标操作指令和匹配的目标控件,并按照目标操作指令,对与目标操作指令相匹配的目标控件进行操作。
这里,目标网络模型是一种预先训练好的AI网络模型,可以对页面图像进行识别,输出页面图像对应的下一步操作指令。目标网络模型可以部署在目标工具对应的服务端。当前页面图像即为目标游戏当前正在展示的页面图像,也可认为是测试过程中当前正在遍历的页面图像。
目标操作指令用于指示需要执行目标操作,目标控件为与目标操作指令相匹配的待测试控件。示例性的,目标控件可以为能够对目标操作指令指示的目标操作进行响应的待测试控件。
具体实施时,可以利用ADB命令,在客户端(即运行终端)运行目标游戏的过程中截取当前页面图像,之后可以直接将当前页面图像输入至服务端的目标网络模型中,也可以先判断当前页面图像是否符合预设尺寸,若是,再将当前页面图像输入至目标网络模型;若否,可以对当前页面图像执行尺寸变换操作,得到符合预设尺寸的当前页面图像并输入至目标网络模型。
然后,目标网络模型可以对输入的当前页面图像进行图像识别处理,确定出当前针对当前页面图像的目标操作指令,同时确定与该目标操作指令相匹配的目标控件。这里,目标控件可以按照以下步骤确定:
利用UI控件检测功能对应的游戏UI识别算法,对利用ADB命令截取的当前页面图像进行UI识别,确定出当前页面图像中包括的各个待测试控件。其中,游戏UI识别算法例如可以为计算机视觉(Computer Vision,简称CV)算法、UI状态机算法等。之后,可以从待测试控件中,筛选出与目标操作指令相匹配的目标控件。
在一种实施方式中,若待测试控件中不存在与目标操作动作相匹配的目标控件,则说明目标网络模型输出的目标操作指令与当前页面图像不匹配,忽略该目标操作指令,并将当前页面处理重新输入至目标网络模型,以获取针对当前页面的新的目标操作指令,以及与新的目标操作指令相匹配的目标控件。
在确定目标操作指令和目标控件之后,按照目标操作指令,对目标控件进行操作,以得到新的页面图像。
可选的,针对当前页面图像,也可以利用游戏UI识别算法,确定当前页面图像对应的场景类别,在确定场景类别为预设类别的情况下,确定需要利用目标网络模型对当前页面图像处理,以输出目标操作指令。反之,在场景类别不是预设类别的情况下,则可以确定无需对当前页面图像中的待测试控件进行遍历,则可以获取新的当前页面图像,并在确定新的当前页面图像的场景类别为预设类别的情况下,将新的当前页面图像输入至目标网络模型。这样,利用游戏UI识别算法进行场景类别的识别,并根据识别的场景类别确定需要处理的页面图像,可以实现对部分页面图像的过滤,减少目标网络模型的计算量。
步骤二、将当前次操作后得到的新的页面图像作为新的当前页面图像,并返回将当前页面图像输入至预先训练好的目标网络模型的步骤,直至完成对目标游戏的各个待测试控件的操作。
具体实施时,可以在利用步骤一对当前页面图像中的目标控件执行完目标操作之后,进入到新的游戏页面,此时可以利用ADB命令截取新的游戏页面对应的新的页面图像。将该新的页面图像作为新的当前页面图像,并返回将执行步骤一,直至完成对目标游戏的各个待测试控件的操作。如此,通过不断采集页面图像并不断输出目标操作指令的方式,可以实现针对目标游戏的自动对战。
此外,针对目标网络模型,可以通过以下步骤进行训练:利用ADB命令录制样本游戏对应的样本视频。确定针对目标网络模型的训练方式,并按照确定的训练方式,利用样本视频对目标网络模型进行训练。其中,训练方式可以包括在线学习方式和离线学习方式。在线学习方式是指一边利用线上部署的目标网络模型,对样本视频中的样本页面图像进行操作指令的预测,并根据预测出操作指令对目标网络模型进行参数调整,从而得到具有可靠精度的目标网络模型。离线学习的方式是指在离线的状态下对目标网络模型进行训练,直至得到训练好的目标网络模型再将训练好的目标网络模型上线使用。
无论是在线学习方式还是离线学习方式,训练过程的是指均可以理解为:从样本视频中获取大量的样本页面图像,将样本页面图像输入至目标网络模型,确定目标网络模型输出的预测操作指令,并利用预测操作指令和样本页面图像对应的标准操作指令(即标签值)确定预测损失;最后利用预测损失对目标网络模型进行迭代训练,以得到训练好的目标网络模型。
如图4所示,为本公开实施例提供的一种目标网络模型的训练和应用示意图。在图4中,虚线部分用于指示目标网络模型的训练过程,实现部分用于指示目标网络模型的应用过程,其中,在训练过程中,运行的目标游戏可以为样本游戏,在应用过程中,运行的目标游戏可以为实际需要测试的游戏。
在一种实施例中,目标遍历方式可以包括N层深度遍历方式,N为预设的正整数,例如取值为3或5,本公开对N的具体取值不做限制。示例性的,N层深度遍历方式可以用于对目标游戏的某一模块或前N层游戏页面进行遍历的场景。例如,目标游戏的A模块,其中包括10张游戏页面,则可以利用N层深度遍历方式,对10张游戏页面中的待测试控件分别进行遍历,以得到针对A模块的检测结果。
针对S102,可以按照以下步骤实施:
S1:针对当前页面图像,根据从当前页面图像中识别出的各个可操作区域,生成目标游戏对应的节点树;其中,可操作区域包括图形控件对应的图像区域和/或文字控件对应的图像区域,一个可操作区域对应一个节点,一张页面图像中的各个可操作区域分别对应的节点,为具有兄弟关系的节点。
这里,当前页面图像即为目标游戏当前正在展示的页面图像,也可认为是测试过程中当前正在遍历的页面图像。可操作区域即为当前页面图像中包括的各个待测试控件对应的区域。节点树中包括的节点的数量由需要测试的各个页面图像中的待测试控件的数量决定,节点树的层级为N层,节点树中的一个节点对应于一个可操作区域的区域信息,其中,区域信息可以包括可操作区域对应的待测试控件的属性信息、区域内容信息等。一张页面图像中的各个可操作区域分别对应的节点,为具有兄弟关系的节点。例如,页面图像1中包括5个待测试控件,也即页面图像1中包括5个可操作区域,这5个可操作区域对应于5个树节点,这5个树节点位于同一层级且具有兄弟关系。
在N层深度遍历方式中,可以通过UI控件检测功能+游戏OCR功能,确定出当前页面图像中的各个可操作区域。
S1在具体实施时,针对采集的当前页面图像(具体可以为首页图像),利用UI控件检测功能+游戏OCR功能,确定出各个可操作区域,然后,生成每个可操作区域对应的节点,并根据各个节点构建目标游戏的节点树。其中,首页图像对应的各个节点位于节点树的第一层级。
S2:针对节点树中各目标节点对应的可操作区域进行操作,并根据当前次操作后采集的新的页面图像中的各个可操作区域,对已生成的节点树进行更新,得到更新后的节点树。
具体实施时,在得到节点树之后,可以依次将节点树中的节点作为目标节点,并对目标节点对应的可操作区域分别进行操作,得到当前次操作对应的新的页面图像。示例性的,针对节点树中的节点1对应的可操作区域1进行目标操作,得到新的页面图像1。针对节点树中的节点2对应的可操作区域2进行目标操作,得到新的页面图像2。
之后,根据每次操作,可以对当前次操作后采集的新的页面图像进行识别,确定出各个新的可操作区域,并根据新的可操作区域生成各个节点。之后,可以根据已生成的节点树中的各个已生成节点,确定当前页面图像对应的各个节点是否为新的节点。若是,则利用新的节点,更新已生成的节点树并确定新的节点的层级是否为N层,并在是的情况下,执行下述S3,在否的情况下,继续进行遍历。若当前页面图像对应的各个节点不存在新的节点,则从已生成的节点树中获取当前页面图像对应的各个节点分别对应的已生成节点,并确定已生成节点的层级是否为N层,并在是的情况下,继续执行下述S3,在否的情况下,继续进行遍历。
需要说明的是,针对同一个页面图像对应的各个节点,在对各个节点对应的可操作区域执行完目标操作后采集的各个新的页面图像对应的节点,均为同一层级的节点。例如,上述新的页面图像1中的各个可操作区域对应的节点和上述新的页面图像2中的各个可操作区域对应的节点,在节点树中具有相同层级。
S3:在确定新的页面图像中的可操作区域对应的节点的层次为N层的情况下,从更新后的节点树中,选取层次小于N层的未操作节点作为新的目标节点,返回对目标节点对应的可操作区域进行操作,并确定当前次操作后采集的新的页面图像中的各个可操作区域的步骤,直至完成对已生成的节点树中的各个节点的操作或达到预设遍历时长。
具体实施时,在确定更新后的节点树中的最新层级的节点(即新的页面图像中的可操作区域对应的节点)的层次(即层级)为N层的情况下,由于节点树中的各个节点是一个一个遍历的,存在遍历的先后顺序,因此,在节点树中的某些节点处于N层时,可能节点树中还存在未遍历的节点,因此,可以从更新后的节点树中,选取层次小于N层的未操作节点作为新的目标节点,返回对目标节点对应的可操作区域进行操作,并确定当前次操作后采集的新的页面图像中的各个可操作区域的步骤,直至完成对已生成的节点树中的各个节点的操作或遍历时长达到预设遍历时长。
其中,,选取层次小于N层的未操作节点的方式可以先返回父节点,确定父节点会否为N层,若否,则继续进行遍历。若是,则继续执行返回父节点的操作。
在另一种实施例中,在确定新的页面图像中的可操作区域对应的节点的层次小于N层的情况下,可以从新的页面图像的可操作区域对应的节点中,选取新的目标节点。
示例性的,在新的页面图像中的可操作区域对应的节点的层次小于N层的情况下,可以继续执行节点遍历的操作。具体的,可以根据新的页面图像中的可操作区域对应的节点的遍历状态,确定未被遍历的节点,将该节点作为新的目标节点;当然,也可以从已生成节点中,选取未被遍历的节点,将该节点作为新的目标节点。
或者,在已生成节点的层级不为N层的情况下,可以先确定该节点所在的树分支中的各个节点是否已均遍历完成,若是,则可以确定整个已生成的节点树中的所有节点均遍历完成;若否,可以根据该树分支中的各个节点的遍历状态,确定未被遍历的节点,将该节点作为新的目标节点。其中,在确定整个已生成的节点树中的所有节点均遍历完成的情况下,确定完成对目标游戏的遍历。在确定未对整个已生成的节点树中的所有节点均遍历完成的情况下,确定遍历时长是否达到预设时长,若否,则可以先返回父节点,确定父节点会否为N层,若是,则结束对目标游戏的遍历。
进一步的,在从新的页面图像的可操作区域对应的节点中,选取到新的目标节点的情况下,可以对新的目标节点对应的可操作区域进行操作,并根据当前次操作后采集的新的页面图像中的各个可操作区域,对已生成的节点树进行更新,得到更新后的节点树,也即可以返回执行上述S2.
如图5所示,为本公开实施例提供的一种N层深度遍历方式的具体实施流程图,可以以下步骤:
S501:根据首页图像中的可操作区域,生成节点树。
具体的,针对首页图像,可以根据从首页图像中识别出的各个可操作区域,生成各个可操作区域对应的节点,进一步根据各个节点生成节点树。
S502:对节点树中的目标节点进行操作,得到新的页面图像,并根据新的页面图像中的可操作区域,得到新生成的节点。
S503:确定新生成的节点是否为已生成节点。
若否,则根据新生成的节点更新节点树并执行S505;若是,则执行S504。
S504:从已生成的节点树中,确定新生成的节点对应的已生成节点。
S505:判断节点的层次是否为N层。
若是,则返回节点的父节点,并返回S505;若否,则可以执行S506。
S506:确定当前判断的节点所在的树分支中的各个节点是否均遍历完成。
若是,则执行S507;若否,则可以执行S508。
S507:确定整个已生成的节点树中的所有节点是否均遍历完成。
若是,则停止遍历;若否,则执行S509。
S508:根据节点的遍历状态,确定目标节点,并返回执行S502。
这里,在当前判断的节点为新的页面图像对应的新生成的节点时,可以根据新的页面图像中的可操作区域对应的节点的遍历状态,确定未被遍历的节点,将该节点作为新的目标节点,并返回执行S502;或者,也可以从已生成节点中,选取未被遍历的节点,将该节点作为新的目标节点,并返回执行S502。在当前判断的节点为已生成节点的情况下,则可以根据该树分支中的各个节点的遍历状态,确定未被遍历的节点,将该节点作为新的目标节点,并返回执行S502。
S509:确定遍历时长是否达到预设时长。
若是,则停止遍历;若否,则返回当前判断的节点的父节点,并返回S505。
关于上述S501~S509的具体实施步骤,可以参照上述有关S1至S3的内容,此处不再赘述。
在一种实施例中,目标遍历方式可以包括图网络遍历方式,其中,图网络遍历方式的实质可以理解为:根据目标游戏的各个页面图像,生成与各个页面图像相匹配的图节点;通过对图节点对应的页面图像中的待测试控件的遍历,确定各个图节点之间的关系。最终,根据构建的图网络,完成对目标游戏的遍历。
针对S102,可以按照以下步骤实施:
P1:响应于配置的遍历任务,根据当前页面图像中的各个可操作区域,生成当前页面图像的页面编码信息。
这里,遍历任务可以为用户配置的针对目标游戏的遍历任务。针对目标游戏的一次测试任务中,可以包括用户配置的至少一个遍历任务。不同的遍历任务的遍历目标和参数可以不同。示例性的,不同的遍历任务用于遍历不同类型的控件、不同场景类别下的控件、不同模块的页面图像等。页面编码信息为对页面信息进行编码后得到的信息,用于表征页面图像,具体的,可以表征页面图像的图像内容、图像类型、包括的可操作区域等信息。
不同的遍历任务对应于不同的配置信息,不同的配置信息对应于不同的面向对象(称为Bee对象),Bee对象用于执行配置任务。
具体实施时,可以根据用户填写的配置信息,生成对应的Bee对象和配置任务。并且可以在生成配置任务的过程中,生成Bee对象对应的调度系统(称为beehive)。之后,可以利用Bee对象与目标游戏进行交互,采集目标游戏对应的页面图像,并将采集的页面图像输入beehive中的数据管理仓库(称为hive)中。之后,可以将采集的任一张页面图像作为当前页面图像,并可以利用beehive中的控件感知系统,对当前页面图像进行识别,确定出当前页面图像中的各个可操作区域和页面内容信息,之后,根据各个可操作区域和页面内容信息,生成当前页面图像的页面编码信息。
P2:利用页面编码信息,对已构建的图网络进行更新,得到更新后的图网络,其中,一个页面图像对应于图网络中的一个图节点,一个图节点的节点信息与该图节点对应的页面编码信息相关。
具体实施时,控件感知系统可以将确定出的当前页面图像的页面编码信息,发送至beehive中的状态记录模块,状态记录模块可以存储页面编码信息,并生成新的图节点,以及将当前页面图像的页面编码信息进行转换为新的图节点的节点信息。之后,可以将新的图节点添加至已构建的图网络中,从而实现对已构建的图网络的更新。
此外,状态记录模块还可以记录图网络中的各个图节点对应的页面图像的遍历状态以及页面图像中的每个待测试控件的遍历状态。
P3:根据当前页面图像中的各个可操作区域的区域属性和更新后的图网络,确定针对当前页面图像的可操作指令;区域属性用于表征可操作区域的遍历状态和可操作区域的区域功能。
这里,遍历状态可以包括已被遍历和未被遍历,区域功能具体可以为可操作区域对应的待测试控件的功能,例如,区域功能可以为确认功能、退出功能、移动功能等。
可操作指令用于指示对当前页面图像中的匹配控件执行目标操作。例如,针对滑动控件的滑动操作,针对取消按钮的点击操作。匹配控件为当前页面图像中的一个待测试控件。
具体实施时,可以将当前页面图像中的各个可操作区域的区域属性和更新后的图网络,输入至beehive中的智能策略引导系统,利用智能策略引导信息,根据各个可操作区域的区域属性以及更新后的图网络中的各个图节点的节点信息,确定当前页面图像中需要操作的待测试控件,并确定针对该待测试控件的可操作指令。或者,智能策略引导系统可以根据当前页面图像的页面编码信息、状态记录模块存储的针对当前页面图像中的各个待测试控件的遍历状态,确定针对前页面图像的可操作指令。其中,当前页面图像的页面编码信息可以是智能策略引导系统从控件感知系统获取的,也可以是从状态记录模块获取的。
在一种实施方式中,当前页面图像中的各个可操作区域可以根据以下步骤确定:
首先,利用Bee对象,对当前页面图像进行图像识别,确定出当前夜间图像对应的目标场景类别,然后根据目标场景类别确定针对可操作区域的分析策略。其中,分析策略具体可以用于指示如何确定页面图像中的可操作区域、保留可操作区域中需要获取的信息的类别以及保留什么类型的待测试控件对应的可操作区域。
需要说明的是,在确定目标场景类别时,可以由Bee对象直接对当前页面图像进行图像识别,也可以由Bee对象调用目标工具中的场景分类模块,利用调用的场景分类模块对当前页面图像进行图像识别,以确定目标场景类别。
其次,可以按照分析策略,确定当前页面图像的中的各个可操作区域。
示例性的,可以按照分析策略指示的可操作区域确定方式,确定当前页面图像的中的所有的可操作区域,然后,根据分析策略指示的保留类型,从可操作区域中筛选出需要保留的可操作区域,并根据分析策略指示的获信息类别,获取各个需要保留的可操作区域分别对应的区域信息并保存。
P4:响应于可操作指令,对当前页面图像中与可操作指令匹配的匹配控件进行目标操作,并采集操作后得到的新的页面图像。
示例性的,智能策略引导系统可以将确定的可操作指令发送至Bee对象,Bee对象可以响应于该可操作指令,对当前页面图像中与可操作指令匹配的匹配控件,执行与可操作指令相匹配的目标操作。进而,Bee对象可以采集到新的页面图像。
P5:将新的页面图像作为新的当前页面图像,并返回根据当前页面图像中的各个可操作区域,生成当前页面图像的页面编码信息的步骤,直至完成对目标游戏的页面图像中的各个待测试控件的遍历。
具体实施时,Bee对象可以将采集到新的页面图像,作为新的当前页面图像并返回执行上述P5,直至完成对目标游戏的各个页面图像中的各个待测试控件的遍历。
例如,Bee对象可以将新的当前页面图像发送至hive,之后,可以利用利用控件感知系统,对新的当前页面图像进行识别,确定新的当前页面图像中的各个可操作区域和页面内容信息,进而可以得到新的当前页面图像的页面编码信息。之后,可以通过控件感知系统、状态记录模块和智能策略引导系统之间的交互,确定出针对新的页面图像的新的可操作指令,并利用Bee对象执行新的可操作指令,从而采集到新的页面图像。
在一种实施例中,在执行P3之前,还可以根据当前页面图像的遍历状态信息,确定当前页面图像是否存在页面状态异常。
这里,遍历状态信息用于指示页面图像是否存在页面状态异常。
示例性的,beehive中还可以包括观察(observer)模块。其中,observer模块主要负责记录页面图像的遍历状态信息。其中,遍历状态信息用于指示页面图像是否存在页面状态异常。其中页面状态异常的情况可以包括页面卡顿或者处于非游戏页面状态等诸多陷阱状态,同时observer模块会将信息同步给智能策略引导系统。
具体实施时,observer模块可以获取控件状态感知信息发送的当前页面图像的页面编码信息,同时可以记录当前页面图像在遍历过程中的遍历状态。然后,可以根据页面编码信息和遍历状态,确定当前页面图像的遍历状态信息。进而,observer模块可以根据遍历状态信息,确定当前页面图像是否存在页面状态异常。
在确定存在页面状态异常的情况下,observer模块可以将当前的异常页面状态发送至智能引导系统。然后,智能引导系统可以根据当前页面图像中的各个可操作区域的区域属性、当前页面图像的异常页面状态和更新后的图网络,确定用于退出当前页面图像的可操作指令。
示例性的,智能引导系统可以根据当前页面图像的异常页面状态和更新后的图网络中的各个图节点的节点信息,确定退出当前页面图像的退出方式,之后,可以根据各个可操作区域的区域属性,确定与退出方式相匹配目标可操作区域,生成针对可操作区域的可操作指令。之后,可以利用Bee对象执行该可操作指令,实现对处于异常页面状态的当前页面图像的退出,从而避免处于异常页面状态的当前页面图像,影响针对其他页面图像的遍历。
如图6所示,为本公开实施例提供的一种图网络遍历的遍历示意图,其中,A区域为建立的一种图网络的示意图,图6中示出了Bee对象识别出的三种场景类别,即目标场景类别1、目标场景类别2和目标场景类别3.
基于包装有本公开实施例提供的测试方法的目标工具,实现了基于AI技术构建出一体化的游戏智能测试服务,利用采集的页面图像实现游戏测试,可以无侵入低成本的完成测试,即实现了对目标游戏的自动化测试,还减少了测试所需消耗的人力和成本。如下表二所示,为本公开实施例提供的一种包装有测试方法的目标工具的效果示意表:
(表二)
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与测试方法对应的测试装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述测试方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图7所示,为本公开实施例提供的一种测试装置的示意图,包括:
确定模块701,用于响应于针对目标游戏的测试任务开始,从预设的多种遍历方式中确定目标遍历方式,其中,不同的所述遍历方式对应的遍历待测试控件的方式不同;以及,从预设的多种检测服务中确定目标检测服务,其中,不同的所述检测服务对应的异常检测的类型不同;
遍历模块702,用于基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,采集执行目标操作后的新的页面图像;
检测模块703,用于利用所述目标检测服务,对所述新的页面图像进行异常检测,得到检测结果。
在一种可能的实施方式中,所述遍历模块702,在基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作时,用于:
根据对所述页面图像进行图像识别得到的图像识别结果,确定所述页面图像对应的场景类别以及所述页面图像中包括的图形控件;和/或,对所述页面图像进行文字识别,确定所述页面图像中包括的各个文字控件;
根据控件属性,从预设的操作动作库中包括的各个预设操作动作中,获取与所述图形控件和/或所述文字控件相匹配的目标操作动作;
根据所述场景类别,确定在所述目标遍历方式下的操作处理逻辑,按照所述操作处理逻辑和所述目标操作动作,对目标游戏的页面图像中的所述图形控件和/或所述文字控件,执行目标操作。
在一种可能的实施方式中,所述目标遍历方式包括自定义脚本遍历方式;
所述遍历模块702,在所述基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作时,用于:
响应于代码输入操作,获取初始脚本代码,以及响应于代码选取操作,从预设的逻辑代码库中,确定目标逻辑代码;
根据所述初始脚本代码和所述目标逻辑代码,生成所述自定义脚本遍历方式对应的目标脚本代码;
执行所述目标脚本代码,以实现对所述目标游戏的页面图像中的各待测试控件执行目标操作。
在一种可能的实施方式中,所述目标遍历方式包括玩家对战环境PVE遍历方式;
所述遍历模块702,在所述基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作时,用于:
将当前页面图像输入至预先训练好的目标网络模型中,利用所述目标网络模型对所述当前页面图像进行识别处理,确定当前针对所述当前页面图像的目标操作指令和匹配的目标控件,并按照所述目标操作指令,对与所述目标操作指令相匹配的目标控件进行操作;
将当前次操作后得到的新的页面图像作为新的所述当前页面图像,并返回将所述当前页面图像输入至预先训练好的目标网络模型的步骤,直至完成对所述目标游戏的各个所述待测试控件的操作。
在一种可能的实施方式中,所述目标遍历方式包括N层深度遍历方式,N为预设的正整数;
所述遍历模块702,在所述基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作时,用于:
针对当前页面图像,根据从所述当前页面图像中识别出的各个可操作区域,生成所述目标游戏对应的节点树;其中,所述可操作区域包括图形控件对应的图像区域和/或文字控件对应的图像区域,一个所述可操作区域对应一个节点,一张页面图像中的各个可操作区域分别对应的节点,为具有兄弟关系的节点;
针对所述节点树中各目标节点对应的可操作区域进行操作,并根据当前次操作后采集的新的页面图像中的各个可操作区域,对已生成的所述节点树进行更新,得到更新后的节点树;
在确定所述新的页面图像中的可操作区域对应的节点的层次为N层的情况下,从所述更新后的节点树中,选取层次小于N层的未操作节点作为新的目标节点,返回对目标节点对应的可操作区域进行操作,并确定当前次操作后采集的新的页面图像中的各个可操作区域的步骤,直至完成对已生成的节点树中的各个节点的操作或达到预设遍历时长。
在一种可能的实施方式中,所述遍历模块702,还用于:
在确定所述新的页面图像中的可操作区域对应的节点的层次小于N层的情况下,从所述新的页面图像的可操作区域对应的节点中,选取新的目标节点;
对所述新的目标节点对应的可操作区域进行操作,并根据当前次操作后采集的新的页面图像中的各个可操作区域,对已生成的所述节点树进行更新,得到更新后的节点树。
在一种可能的实施方式中,所述目标遍历方式包括图网络遍历方式;
所述遍历模块702,在所述基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作时,用于:
响应于配置的遍历任务,根据当前页面图像中的各个可操作区域,生成所述当前页面图像的页面编码信息;
利用所述页面编码信息,对已构建的图网络进行更新,得到更新后的图网络,其中,一个页面图像对应于图网络中的一个图节点,一个图节点的节点信息与该图节点对应的页面编码信息相关;
根据所述当前页面图像中的各个可操作区域的区域属性和更新后的图网络,确定针对所述当前页面图像的可操作指令;所述区域属性用于表征所述可操作区域的遍历状态和所述可操作区域的区域功能;
响应于所述可操作指令,对所述当前页面图像中与所述可操作指令匹配的匹配控件进行目标操作,并采集操作后得到的新的页面图像;
将所述新的页面图像作为新的当前页面图像,并返回根据所述当前页面图像中的各个可操作区域,生成所述当前页面图像的页面编码信息的步骤,直至完成对所述目标游戏的页面图像中的各个待测试控件的遍历。
在一种可能的实施方式中,所述遍历模块702,在所述根据所述当前页面图像中的各个可操作区域的区域属性和更新后的图网络,确定针对所述当前页面图像的可操作指令之前,还用于:
根据所述当前页面图像的遍历状态信息,确定所述当前页面图像是否存在页面状态异常;
以及,在所述根据所述当前页面图像中的各个可操作区域的区域属性和更新后的图网络,确定针对所述当前页面图像的可操作指令时,用于:
在所述当前页面图像存在页面状态异常的情况下,根据所述当前页面图像中的各个可操作区域的区域属性、所述当前页面图像的异常页面状态和更新后的图网络,确定用于退出所述当前页面图像的所述可操作指令。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本申请实施例还提供了一种计算机设备。参照图8所示,为本申请实施例提供的一种计算机设备的结构示意图,包括:
处理器81、存储器82和总线83。其中,存储器82存储有处理器81可执行的机器可读指令,处理器81用于执行存储器82中存储的机器可读指令,所述机器可读指令被处理器81执行时,处理器81执行下述步骤:S101:响应于针对目标游戏的测试任务开始,从预设的多种遍历方式中确定目标遍历方式,其中,不同的遍历方式对应的遍历待测试控件的方式不同;以及,从预设的多种检测服务中确定目标检测服务,其中,不同的检测服务对应的异常检测的类型不同;S102:基于目标遍历方式对目标游戏的页面图像中的各待测试控件执行目标操作,采集执行目标操作后的新的页面图像以及S103:利用目标检测服务,对新的页面图像进行异常检测,得到检测结果。
上述存储器82包括内存821和外部存储器822;这里的内存821也称内存储器,用于暂时存放处理器81中的运算数据,以及与硬盘等外部存储器822交换的数据,处理器81通过内存821与外部存储器822进行数据交换,当计算机设备运行时,处理器81与存储器82之间通过总线83通信,使得处理器81在执行上述方法实施例中所提及的执行指令。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的测试方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的测试方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的测试方法的步骤,具体可参见上述方法实施例,在此不再赘述。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式、处理的个人信息种类等信息。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (11)
1.一种测试方法,其特征在于,包括:
响应于针对目标游戏的测试任务开始,从预设的多种遍历方式中确定目标遍历方式,其中,不同的所述遍历方式对应的遍历待测试控件的方式不同;以及,从预设的多种检测服务中确定目标检测服务,其中,不同的所述检测服务对应的异常检测的类型不同;
基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,采集执行目标操作后的新的页面图像;
利用所述目标检测服务,对所述新的页面图像进行异常检测,得到检测结果。
2.根据权利要求1所述的方法,其特征在于,基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,包括:
根据对所述页面图像进行图像识别得到的图像识别结果,确定所述页面图像对应的场景类别以及所述页面图像中包括的图形控件;和/或,对所述页面图像进行文字识别,确定所述页面图像中包括的各个文字控件;
根据控件属性,从预设的操作动作库中包括的各个预设操作动作中,获取与所述图形控件和/或所述文字控件相匹配的目标操作动作;
根据所述场景类别,确定在所述目标遍历方式下的操作处理逻辑,按照所述操作处理逻辑和所述目标操作动作,对目标游戏的页面图像中的所述图形控件和/或所述文字控件,执行目标操作。
3.根据权利要求1所述的方法,其特征在于,所述目标遍历方式包括自定义脚本遍历方式;
所述基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,包括:
响应于代码输入操作,获取初始脚本代码,以及响应于代码选取操作,从预设的逻辑代码库中,确定目标逻辑代码;
根据所述初始脚本代码和所述目标逻辑代码,生成所述自定义脚本遍历方式对应的目标脚本代码;
执行所述目标脚本代码,以实现对所述目标游戏的页面图像中的各待测试控件执行目标操作。
4.根据权利要求1所述的方法,其特征在于,所述目标遍历方式包括玩家对战环境PVE遍历方式;
所述基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,包括:
将当前页面图像输入至预先训练好的目标网络模型中,利用所述目标网络模型对所述当前页面图像进行识别处理,确定当前针对所述当前页面图像的目标操作指令和匹配的目标控件,并按照所述目标操作指令,对与所述目标操作指令相匹配的目标控件进行操作;
将当前次操作后得到的新的页面图像作为新的所述当前页面图像,并返回将所述当前页面图像输入至预先训练好的目标网络模型的步骤,直至完成对所述目标游戏的各个所述待测试控件的操作。
5.根据权利要求2所述的方法,其特征在于,所述目标遍历方式包括N层深度遍历方式,N为预设的正整数;
所述基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,包括:
针对当前页面图像,根据从所述当前页面图像中识别出的各个可操作区域,生成所述目标游戏对应的节点树;其中,所述可操作区域包括图形控件对应的图像区域和/或文字控件对应的图像区域,一个所述可操作区域对应一个节点,一张页面图像中的各个可操作区域分别对应的节点,为具有兄弟关系的节点;
针对所述节点树中各目标节点对应的可操作区域进行操作,并根据当前次操作后采集的新的页面图像中的各个可操作区域,对已生成的所述节点树进行更新,得到更新后的节点树;
在确定所述新的页面图像中的可操作区域对应的节点的层次为N层的情况下,从所述更新后的节点树中,选取层次小于N层的未操作节点作为新的目标节点,返回对目标节点对应的可操作区域进行操作,并确定当前次操作后采集的新的页面图像中的各个可操作区域的步骤,直至完成对已生成的节点树中的各个节点的操作或达到预设遍历时长。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在确定所述新的页面图像中的可操作区域对应的节点的层次小于N层的情况下,从所述新的页面图像的可操作区域对应的节点中,选取新的目标节点;
对所述新的目标节点对应的可操作区域进行操作,并根据当前次操作后采集的新的页面图像中的各个可操作区域,对已生成的所述节点树进行更新,得到更新后的节点树。
7.根据权利要求1所述的方法,其特征在于,所述目标遍历方式包括图网络遍历方式;
所述基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,包括:
响应于配置的遍历任务,根据当前页面图像中的各个可操作区域,生成所述当前页面图像的页面编码信息;
利用所述页面编码信息,对已构建的图网络进行更新,得到更新后的图网络,其中,一个页面图像对应于图网络中的一个图节点,一个图节点的节点信息与该图节点对应的页面编码信息相关;
根据所述当前页面图像中的各个可操作区域的区域属性和更新后的图网络,确定针对所述当前页面图像的可操作指令;所述区域属性用于表征所述可操作区域的遍历状态和所述可操作区域的区域功能;
响应于所述可操作指令,对所述当前页面图像中与所述可操作指令匹配的匹配控件进行目标操作,并采集操作后得到的新的页面图像;
将所述新的页面图像作为新的当前页面图像,并返回根据所述当前页面图像中的各个可操作区域,生成所述当前页面图像的页面编码信息的步骤,直至完成对所述目标游戏的页面图像中的各个待测试控件的遍历。
8.根据权利要求7所述的方法,其特征在于,在所述根据所述当前页面图像中的各个可操作区域的区域属性和更新后的图网络,确定针对所述当前页面图像的可操作指令之前,还包括:
根据所述当前页面图像的遍历状态信息,确定所述当前页面图像是否存在页面状态异常;
所述根据所述当前页面图像中的各个可操作区域的区域属性和更新后的图网络,确定针对所述当前页面图像的可操作指令,包括:
在所述当前页面图像存在页面状态异常的情况下,根据所述当前页面图像中的各个可操作区域的区域属性、所述当前页面图像的异常页面状态和更新后的图网络,确定用于退出所述当前页面图像的所述可操作指令。
9.一种测试装置,其特征在于,包括:
确定模块,用于响应于针对目标游戏的测试任务开始,从预设的多种遍历方式中确定目标遍历方式,其中,不同的所述遍历方式对应的遍历待测试控件的方式不同;以及,从预设的多种检测服务中确定目标检测服务,其中,不同的所述检测服务对应的异常检测的类型不同;
遍历模块,用于基于所述目标遍历方式对所述目标游戏的页面图像中的各待测试控件执行目标操作,采集执行目标操作后的新的页面图像;
检测模块,用于利用所述目标检测服务,对所述新的页面图像进行异常检测,得到检测结果。
10.一种计算机设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行如权利要求1至8任意一项所述的测试方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机设备运行时,所述计算机设备执行如权利要求1至8任意一项所述的测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211281848.7A CN115525563A (zh) | 2022-10-19 | 2022-10-19 | 一种测试方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211281848.7A CN115525563A (zh) | 2022-10-19 | 2022-10-19 | 一种测试方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115525563A true CN115525563A (zh) | 2022-12-27 |
Family
ID=84703227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211281848.7A Pending CN115525563A (zh) | 2022-10-19 | 2022-10-19 | 一种测试方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115525563A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116077924A (zh) * | 2023-04-12 | 2023-05-09 | 深圳市智岩科技有限公司 | 游戏灯效控制方法、装置、设备及介质 |
CN117234935A (zh) * | 2023-09-28 | 2023-12-15 | 重庆赛力斯新能源汽车设计院有限公司 | 基于虚幻引擎的测试方法、装置、电子设备及存储介质 |
-
2022
- 2022-10-19 CN CN202211281848.7A patent/CN115525563A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116077924A (zh) * | 2023-04-12 | 2023-05-09 | 深圳市智岩科技有限公司 | 游戏灯效控制方法、装置、设备及介质 |
CN117234935A (zh) * | 2023-09-28 | 2023-12-15 | 重庆赛力斯新能源汽车设计院有限公司 | 基于虚幻引擎的测试方法、装置、电子设备及存储介质 |
CN117234935B (zh) * | 2023-09-28 | 2024-05-14 | 重庆赛力斯新能源汽车设计院有限公司 | 基于虚幻引擎的测试方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115525563A (zh) | 一种测试方法、装置、计算机设备和存储介质 | |
CN111310934A (zh) | 一种模型生成方法、装置、电子设备和存储介质 | |
EP3112965A1 (en) | Robotic process automation | |
CN113069769B (zh) | 云游戏界面显示方法、装置、电子设备以及存储介质 | |
CN110457218A (zh) | 游戏引擎测试方法、装置、存储介质及电子设备 | |
CN110362483A (zh) | 性能数据采集方法、装置、设备及存储介质 | |
CN112363943A (zh) | 一种埋点设置方法、装置、计算机设备和存储介质 | |
CN112381104A (zh) | 一种图像识别方法、装置、计算机设备及存储介质 | |
CN113032268B (zh) | 软件测试方法、装置及存储介质 | |
KR20160070410A (ko) | 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법 | |
US20180124453A1 (en) | Dynamic graphic visualizer for application metrics | |
CN112153374A (zh) | 视频帧图像的测试方法、装置、设备、计算机存储介质 | |
KR20190053481A (ko) | 사용자 관심 정보 생성 장치 및 그 방법 | |
CN114821240A (zh) | 一种异常图像的检测方法、装置、电子设备及存储介质 | |
CN109743286A (zh) | 一种基于图卷积神经网络的ip类型标记方法及设备 | |
CN112827172A (zh) | 拍摄方法、装置、电子设备及存储介质 | |
CN110163201B (zh) | 图像测试方法和装置、存储介质及电子装置 | |
CN112569591A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
KR20210069215A (ko) | 빅데이터 분석을 최적화하는 사용자 인터페이스 방법 | |
Ambardekar et al. | Ground truth verification tool (GTVT) for video surveillance systems | |
US20220147437A1 (en) | Automated testing of mobile devices using visual analysis | |
CN111225250B (zh) | 视频的扩展信息处理方法及装置 | |
US11422696B2 (en) | Representation of user interface interactive regions | |
CN113926201A (zh) | 外挂识别的方法及装置、电子设备、存储介质 | |
WO2024067039A1 (zh) | 应用程序的拨测方法、电子设备、计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |