CN109985387B - 自动化测试方法和装置 - Google Patents
自动化测试方法和装置 Download PDFInfo
- Publication number
- CN109985387B CN109985387B CN201910227885.1A CN201910227885A CN109985387B CN 109985387 B CN109985387 B CN 109985387B CN 201910227885 A CN201910227885 A CN 201910227885A CN 109985387 B CN109985387 B CN 109985387B
- Authority
- CN
- China
- Prior art keywords
- state
- operation state
- virtual object
- client
- virtual
- 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.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- 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
- 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/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种自动化测试方法和装置,该方法包括:从游戏客户端获取操作第一游戏时产生的协议日志,获取虚拟客户端中虚拟对象的第一操作状态,根据第一操作状态和协议日志,确定是否将虚拟对象由第一操作状态调整为第二操作状态,第二操作状态为第一操作状态的下一个状态,若是,将虚拟对象由第一操作状态调整为第二操作状态,从而利用虚拟客户端完成对第一游戏的自动化测试,提高了测试效率。
Description
技术领域
本发明实施例涉及自动化测试技术领域,尤其涉及一种自动化测试方法和装置。
背景技术
在游戏开发迭代过程中,游戏功能的验证和测试是必不可少的,采用自动化测试能够提高游戏的测试效率,其中,自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
在目前的游戏自动化测试方案中,通常采用AirTest识别游戏中的图标,运行预先设定好的点击逻辑,完成一些简单的测试,然而,对于一些第一人称视角射击游戏(First-person Shooting,FPS),由于这些游戏无法通过简单的点击、滑动状态完成,因此很难通过预先设定的脚本进行自动化测试,故采用AirTest无法完成自动化测试。
发明内容
本发明实施例提供一种自动化测试方法和装置,用于实现自动化测试,提高游戏测试效率。
第一方面,本发明实施例提供一种自动化测试方法,包括:
从游戏客户端获取操作第一游戏时产生的协议日志;
获取所述虚拟客户端中虚拟对象的第一操作状态;
根据第一操作状态和协议日志,确定是否将虚拟对象由所述第一操作状态调整为第二操作状态,所述第二操作状态为所述第一操作状态的下一个状态;
若是,将所述虚拟对象由所述第一操作状态调整为所述第二操作状态。
可选的,其特征在于,所述根据所述第一操作状态和所述协议日志,确定是否将所述虚拟对象由所述第一操作状态调整为第二操作状态,包括:
根据所述第一操作状态和所述协议日志,确定虚拟对象的第二操作状态;
根据所述第一操作状态和所述第二操作状态,确定是否将所述虚拟对象由所述第一操作状态调整为所述第二操作状态。
可选的,所述根据所述第一操作状态和所述第二操作状态,确定是否将所述虚拟对象由所述第一操作状态调整为所述第二操作状态,包括:
将所述第一操作状态发送给服务器,并接收所述服务器返回的第一消息,所述第一消息包括对所述第一操作状态的校验结果和所述虚拟对象的目标状态;
若所述校验结果指示校验通过,且所述目标状态和所述第二操作状态一致,确定将所述虚拟对象由所述第一操作状态调整为所述第二操作状态。
可选的,还包括:
若所述校验结果指示校验未通过,和/或所述目标状态和所述第二操作状态不一致,保持所述虚拟对象的状态为所述第一操作状态。
可选的,所述从游戏客户端获取操作第一游戏时产生的协议日志之后,还包括:
根据预设解析规则,对所述协议日志进行解析,获取解析后的协议日志。
可选的,所述根据预设解析规则,对所述协议日志进行解析,获取解析后的协议日志之后,所述方法还包括:
根据所述第一游戏的运行逻辑,获取所述解析后的协议日志对应的所述虚拟对象的操作状态,所述运行逻辑用于表征所述第一游戏的运行顺序。
可选的,所述根据所述第一游戏的运行逻辑,获取所述解析后的协议日志对应的所述虚拟对象的操作状态之后,还包括:
根据预设的测试用例以及所述虚拟对象的操作状态,对所述解析后的协议日志进行归类划分。
第二方面,本发明实施例提供一种自动化测试方法,包括:
接收虚拟客户端发送的虚拟对象的第一操作状态;
对所述第一操作状态进行校验获取校验结果,并确定所述虚拟对象的目标状态;
向所述虚拟客户端发送第一消息,所述第一消息包括对所述第一操作状态的校验结果和所述虚拟对象的目标状态。
可选的,所述方法还包括:
将所述第一操作状态发送给观战客户端。
第三方面,本发明实施例提供一种自动化测试方法,包括:
获取操作第一游戏时产生的协议日志;
根据虚拟客户端发送的第一请求,将所述协议日志发送给虚拟客户端。
第四方面,本发明实施例提供一种虚拟客户端,包括:
获取模块,用于从游戏客户端获取操作第一游戏时产生的协议日志;
所述获取模块,还用于获取所述虚拟客户端中虚拟对象的第一操作状态;
确定模块,用于根据第一操作状态和协议日志,确定是否将虚拟对象由所述第一操作状态调整为第二操作状态,所述第二操作状态为所述第一操作状态的下一个状态;
处理模块,用于若是,将所述虚拟对象由所述第一操作状态调整为所述第二操作状态。
可选的,所述确定模块,具体用于:
根据所述第一操作状态和所述协议日志,确定虚拟对象的第二操作状态;
根据所述第一操作状态和所述第二操作状态,确定是否将所述虚拟对象由所述第一操作状态调整为所述第二操作状态。
可选的,所述确定模块,具体用于:
将所述第一操作状态发送给服务器,并接收所述服务器返回的第一消息,所述第一消息包括对所述第一操作状态的校验结果和所述虚拟对象的目标状态;
若所述校验结果指示校验通过,且所述目标状态和所述第二操作状态一致,确定将所述虚拟对象由所述第一操作状态调整为所述第二操作状态。
可选的,所述确定模块,具体用于:
若所述校验结果指示校验未通过,和/或所述目标状态和所述第二操作状态不一致,保持所述虚拟对象的状态为所述第一操作状态。
可选的,所述获取模块,还用于:
根据预设解析规则,对所述协议日志进行解析,获取解析后的协议日志。
可选的,所述获取模块,还用于:
根据所述第一游戏的运行逻辑,获取所述解析后的协议日志对应的所述虚拟对象的操作状态,所述运行逻辑用于表征所述第一游戏的运行顺序。
所述处理模块,还用于:
根据预设的测试用例以及所述虚拟对象的操作状态,对所述解析后的协议日志进行归类划分。
第五方面,本发明实施例提供一种服务器,包括:
接收模块,用于接收虚拟客户端发送的虚拟对象的第一操作状态;
确定模块,用于对所述第一操作状态进行校验获取校验结果,并确定所述虚拟对象的目标状态;
发送模块,用于向所述虚拟客户端发送第一消息,所述第一消息包括对所述第一操作状态的校验结果和所述虚拟对象的目标状态。
可选的,所述发送模块,还用于:
将所述第一操作状态发送给观战客户端,以使所述观战客户端将所述第一操作状态进行显示。
第六方面,本发明实施例提供一种游戏客户端,包括:
获取模块,用于获取操作第一游戏时产生的协议日志;
发送模块,用于根据虚拟客户端发送的第一请求,将所述协议日志发送给虚拟客户端。
第七方面,本发明实施例提供一种终端,包括:存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于调用所述程序代码执行如第一方面所述的自动化测试方法。
第八方面,本发明实施例提供一种服务器,包括:存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于调用所述程序代码执行如第二方面所述的自动化测试方法。
第九方面,本发明实施例提供一种终端,包括:存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于调用所述程序代码执行如第三方面所述的自动化测试方法。
第十方面,本发明实施例提供一种可读存储介质,所述可读存储介质上存储有计算机程序;所述计算机程序在被执行时,实现如第一方面所述的自动化测试方法。
第十一方面,本发明实施例提供一种可读存储介质,所述可读存储介质上存储有计算机程序;所述计算机程序在被执行时,实现如第二方面所述的自动化测试方法。
第十二方面,本发明实施例提供一种可读存储介质,所述可读存储介质上存储有计算机程序;所述计算机程序在被执行时,实现如第三方面所述的自动化测试方法。
本发明实施例提供一种自动化测试方法和装置,该方法包括:从游戏客户端获取操作第一游戏时产生的协议日志,获取虚拟客户端中虚拟对象的第一操作状态,根据第一操作状态和协议日志,确定是否将虚拟对象由第一操作状态调整为第二操作状态,第二操作状态为第一操作状态的下一个状态,若是,将虚拟对象由第一操作状态调整为第二操作状态,从而利用虚拟客户端完成对第一游戏的自动化测试,提高了测试效率。
附图说明
图1为本发明一实施例提供的自动化测试***的应用场景示意图;
图2为本发明一实施例提供的自动化测试方法的流程图;
图3为本发明另一实施例提供的自动化测试方法的流程图;
图4为本发明一实施例提供的虚拟客户端的示意图;
图5为本发明又一实施例提供的自动化测试方法的流程图;
图6为本发明一实施例提供的虚拟客户端的结构示意图;
图7为本发明另一实施例提供的终端的结构示意图;
图8为本发明一实施例提供的服务器的结构示意图;
图9为本发明另一实施例提供的服务器的结构示意图;
图10为本发明一实施例提供的游戏客户端的结构示意图;
图11为本发明另一实施例提供的终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,在游戏的自动化测试方案中,AirTest是非常常用的一种测试方法,具体地,采用AirTest识别游戏中的图标,运行预先设定好的点击逻辑,完成一些简单的测试,但是,对于当下的FPS游戏,无法通过简单的点击、滑动状态完成,因此很难通过预先设定的脚本进行自动化测试。
另外,目前的自动化测试方案中,提供了两种复现BUG的方法,一种是通过视频录制虚拟对象的所有操作,出现BUG后则观察回放视频定位BUG,另一种是在日志中加入游戏运行的日志,监控BUG出现的过程,进而定位BUG。但是,对游戏而言,在测试过程中出现的BUG很难稳定复现,因此采用第一种复现BUG的方法不可行;在日志中加入游戏运行的日志,不仅影响代码的运行效率,而且出现BUG时游戏中的日志量很大,需要理清所有的程序逻辑和BUG出现的前置条件,然后按照这些前置条件去复现BUG,这也增加工作量,降低了BUG复现效率。
为了解决上述问题,本发明实施例提供了一种自动化测试方法,该方法可以包括:从游戏客户端获取操作第一游戏时产生的协议日志,根据预设解析规则,解析协议日志,获取解析后的协议日志,获取虚拟客户端中虚拟对象的第一操作状态,根据第一操作状态,以及解析后的协议日志,确定虚拟对象的第二操作状态,第二操作状态为第一操作状态的下一个状态,根据第一操作状态和第二操作状态,确定是否将虚拟对象由第一操作状态调整为第二操作状态,从而利用虚拟客户端完成对第一游戏的自动化测试,提高了测试效率,同时实现了对BUG的复现。
首先对本发明涉及的专业术语进行解释。
游戏客户端协议日志:游戏在运行过程中与服务器按照约定的协议进行通信,客户端将传递的协议名称、参数表等协议信息记录在日志中,该日志称为游戏客户端协议日志。
虚拟客户端:游戏客户端包括游戏引擎、美术资源和逻辑代码等,虚拟客户端只包括了最简化的逻辑代码,用于和服务器进行通信,完成游戏的基本流程。本发明实施例中,虚拟客户端通过客户端协议日志,模拟游戏客户端与服务器建立通信。
观战:FPS游戏中提供的一种观察其他虚拟对象操作的功能。
观战客户端:能够观战其他虚拟对象操作的客户端,例如,和虚拟客户端的虚拟对象A在同一局游戏中的虚拟对象B所在的客户端。
图1为本发明一实施例提供的自动化测试***的应用场景示意图,如图1所示,本实施例的自动化测试***可以包括:虚拟客户端、服务器、游戏客户端、观战客户端。需要说明的是,虽然图1中示出的各个部分的数量为一个,但本实施例并不限于此,可以是至少一个。其中,虚拟客户端可以运行在任一终端中,例如,电脑,游戏客户端和观战客户端可以安装在终端上,例如,手机、电脑等。
其中,用户可以分别通过游戏客户端、观战客户端登录游戏并玩游戏,用户还可以将游戏加载至虚拟客户端,并在电脑上运行。用户可以将观战客户端的虚拟对象A和游戏客户端中的虚拟对象B匹配到同一局游戏中,从而可以对虚拟客户端中虚拟对象B进行观战。
本领域技术人员应当理解,在虚拟客户端上运行游戏时,只能运行一系列的游戏逻辑代码,无法显示整个游戏界面。另外,本发明实施例中的游戏可以是网络游戏中的任一款游戏。
其中,游戏客户端在操作游戏时产生的客户端协议日志保存在客户端协议日志库中。
下面采用几个具体实施例对本发明上述实施例的技术方案进行详细说明。
图2为本发明一实施例提供的自动化测试方法的流程图,如图2所示,本实施例的方法可以包括:
S201、虚拟客户端从游戏客户端获取操作第一游戏时产生的协议日志。
由于虚拟对象的很多操作都是需要得到服务器的确认,因此,游戏客户端会得到服务器确认了才执行相关操作,故,服务器返回的协议才是游戏客户端播放了某些动画或者进行了某种操作的原因。在本实施例中,当用户使用游戏客户端成功登陆到第一游戏,并操作第一游戏(玩第一游戏)时,会和服务器进行交互,产生与服务器的协议日志。
举例来说,在本实施例中,游戏客户端获取到操作第一游戏时产生的协议日志,将该协议日志发送给虚拟客户端,或者,虚拟客户端向游戏客户端发送获取请求,以接收游戏客户端发送的操作第一游戏时产生的协议日志。本领域技术人员可以采用任何方式实现虚拟客户端从游戏客户端获取操作第一游戏时产生的协议日志,此处不再赘述。
其中,游戏客户端协议日志可以是按照时间顺序输出的,包括协议名称、具体参数信息等。
需要说明的是,用户通过游戏客户端成功登录到第一游戏,第一游戏可以是网络游戏中的任一款游戏,游戏客户端的数量不限于一个。
S202、虚拟客户端获取虚拟客户端中虚拟对象的第一操作状态。
虚拟客户端与游戏客户端不同的是,用户通过游戏客户端登录第一游戏,游戏客户端上展示的是第一游戏对应的游戏界面,而虚拟客户端上只包括简化的逻辑代码用于和服务器通信,也就是说,虚拟客户端上无法展示游戏界面。在本实施例中,第一操作状态为在虚拟客户端上加载第一游戏时,虚拟客户端中虚拟对象的当前状态,第一操作状态可以包括血量信息、位置信息、动作信息等,其中,虚拟对象为第一游戏中的虚拟角色。
举例来说,第一操作状态可以为虚拟客户端中虚拟对象的初始状态,比如,在某一个位置、动作是直立,相应的,虚拟客户端可以获取虚拟客户端中虚拟对象的初始状态。
S203、虚拟客户端根据第一操作状态和协议日志,确定是否将虚拟对象由第一操作状态调整为第二操作状态。第二操作状态为第一操作状态的下一个状态。
在本实施例中,获取协议日志后,可以根据第一游戏的运行逻辑,即第一游戏的运行顺序,例如,先进入游戏大厅,再进入游戏中,得到每个协议日志代表的操作状态,然后查询找到第一操作状态,确定虚拟对象的第二操作状态。
接下来,虚拟客户端根据虚拟对象的第一操作状态和第二操作状态,确定是否将虚拟对象由第一操作状态调整为第二操作状态,虚拟客户端确定是否将许虚拟对象由第一操作状态调整为第二操作状态的实现过程和现有技术的实现过程类似,此处不再赘述。
S204、若是,虚拟客户端将虚拟对象由第一操作状态调整为第二操作状态。
若确定将虚拟对象由第一操作状态调整为第二操作状态,则将虚拟对象由第一操作状态调整为第二操作状态,比如,将当前血量由10%增加至100%。本实施例中,通过将当前血量由10%增加至100%,实现了使用虚拟客户端完成了自动化测试,且在该操作中,未出现BUG。
S205、若否,保持虚拟对象的状态为第一操作状态。
若确定不将虚拟对象由第一操作状态调整为第二操作状态,保持虚拟对象的状态为第一操作状态,则表明当前自动化测试中存在BUG,无法执行下一个操作,测试失败。可选的,将测试失败的消息推送给用户,以便用户及时了解测试情况,同时也实现了对BUG的复现。
本实施例提供的自动化测试方法,从游戏客户端获取操作第一游戏时产生的协议日志,获取虚拟客户端中虚拟对象的第一操作状态,根据第一操作状态和协议日志,确定是否将虚拟对象由第一操作状态调整为第二操作状态,第二操作状态为第一操作状态的下一个状态,若是,将虚拟对象由第一操作状态调整为第二操作状态,从而利用虚拟客户端完成对第一游戏的自动化测试,提高了测试效率,同时实现了对BUG的复现。
图3为本发明另一实施例提供的自动化测试方法的流程图,如图3所示,本实施例的方法可以包括:
S301、游戏客户端获取操作第一游戏时产生的协议日志。
本实施例中,操作第一游戏时产生的协议日志是不同操作对应的协议日志的集合。S301的具体实现过程可以参见图2所示实施例的相关描述,此处不再赘述。
S302、游戏客户端根据虚拟客户端发送的第一请求,将协议日志发送给虚拟客户端。
在本实施例中,游戏客户端根据虚拟客户端发送的第一请求,将协议日志发送给虚拟客户端,相应的,虚拟客户端从游戏客户端获取操作第一游戏时产生的协议日志。
S303、虚拟客户端根据预设解析规则,对协议日志进行解析,获取解析后的协议日志。
在本实施例中,解析协议日志目的在于,过滤掉与该协议日志无关的日志,得到解析后的协议日志,解析后的协议日志中只包括与服务器有关的收发协议日志。解析后的协议日志中包括协议名称、具体参数信息等。具体的解析过程和现有技术的解析类似,此处不再赘述。
S304、虚拟客户端根据第一游戏的运行逻辑,获取解析后的协议日志对应的虚拟对象的操作状态。运行逻辑用于表征第一游戏的运行顺序。
在本实施例中,由于解析后的协议日志分别对应不同的操作状态,则根据第一游戏的运行逻辑,以及协议日志产生的时间,获取解析后的协议日志对应的虚拟对象的操作状态。
举例来说,比如第一游戏的运行逻辑是先进入游戏主界面、然后开枪射击、再跳伞,根据每条协议日志产生的时间,可以获得每个协议日志对应的操作状态,比如,第一协议日志对应的操作状态是进入游戏主界面、第二协议日志对应的操作状态是开枪射击、第三协议日志对应的操作状态是跳伞。
S305、虚拟客户端根据预设的测试用例以及虚拟对象的操作状态,对解析后的协议日志进行归类划分。
下面参考图4对本实施例进行具体说明。
图4为本发明一实施例提供的虚拟客户端的示意图,如图4所示,虚拟客户端包括帧率模拟模块和协议解析模块,其中帧率模拟模块包括处理网络协议事件模块、模拟帧模块、帧逻辑处理模块。
协议解析模块负责对协议日志中的协议进行上下文解析逻辑。协议解析模块包括测试用例模块、解析模块和过滤模块,其中,测试用例模块用于将协议日志按照测试用例进行划分,对每个协议日志进行测试用例的归类;解析模块用于对协议日志进行解析;过滤模块用于对协议日志进行过滤,以得到与服务器有关的收发协议日志。
本实施例中,图4中的测试用例模块用于对解析后的协议日志进行归类划分,应理解,至少一条协议日志对应一个测试用例。
举例来说,虚拟对象的操作状态包括跑步、跳伞,虚拟对象在第一游戏中的跑步和跳伞对应一个测试用例,则确定跑步对应的协议日志和跳伞对应的协议日志对应一个测试用例。当然,跑步和跳伞对应的协议日志还可以分别对应一个测试用例,共两个测试用例。
本领域技术人员需要理解,对于根据预设的测试用例,对解析后的协议日志进行归类划分,可以包括但不限于上述方式。
S306、虚拟客户端获取虚拟客户端中虚拟对象的第一操作状态。
本实施例中,S306的执行过程与图2所示的步骤202的执行过程类似,此处不再赘述。
另外,S306可以在S301之前执行,也可以在S301之后执行,本实施例对此不做限定。
S307、虚拟客户端根据第一操作状态和归类划分的协议日志,确定虚拟对象的第二操作状态。
举例来说,在本实施例中,第一操作状态包括包括射击,在归类划分的协议日志中查询到射击对应的协议日志,然后确定射击对应的协议日志的下一个协议日志,比如,跑步和跳伞对应的协议日志,则虚拟对象的第二操作状态包括跑步和跳伞。
S308、虚拟客户端将第一操作状态发送给服务器。
S309、虚拟客户端接收服务器返回的第一消息。
具体地,虚拟客户端将虚拟对象的第一操作状态发送给服务器,服务器接收该第一操作状态,并对该第一操作状态进行校验获取校验结果,同时确定虚拟对象的目标状态。举例来说,若第一操作状态包括10%的血量,服务器需要核验该10%的血量是否低于预设血量,若低于预设血量校验通过;同时服务器确定该10%的血量低于预设血量时,则确定第一操作状态的目标状态,该目标状态包括100%血量。
相应的,服务器向虚拟客户端发送第一消息,该第一消息包括对第一操作状态的校验结果和虚拟对象的目标状态。
S310、若校验结果指示校验通过,且目标状态和所述第二操作状态一致,虚拟客户端确定将虚拟对象由第一操作状态调整为第二操作状态。
若校验结果指示校验通过,并且服务器确定的虚拟对象的目标状态和第二操作状态一致,则虚拟客户端确定将虚拟对象由第一操作状态调整为第二操作状态,对于本次加血操作,测试成功。
S311、若校验结果指示校验未通过,和/或目标状态和第二操作状态不一致,保持虚拟对象的状态为第一操作状态。
若校验结果指示校验未通过,和/或目标状态和第二操作状态不一致,保持虚拟对象的状态为第一操作状态,本次操作出现BUG,测试失败。可选的,向用户推送测试失败的消息。
本实施例提供的自动化测试方法,游戏客户端获取操作第一游戏时产生的协议日志,虚拟客户端根据预设解析规则,对协议日志进行解析,获取解析后的协议日志,虚拟客户端根据第一游戏的运行逻辑,获取解析后的协议日志对应的虚拟对象的操作状态,虚拟客户端根据预设的测试用例以及虚拟对象的操作状态,对解析后的协议日志进行归类划分,虚拟客户端获取虚拟客户端中虚拟对象的第一操作状态,虚拟客户端根据第一操作状态和归类划分的协议日志,确定虚拟对象的第二操作状态,虚拟客户端将第一操作状态发送给服务器,并接收服务器返回的第一消息,若校验结果指示校验通过,且目标状态和所述第二操作状态一致,虚拟客户端确定将虚拟对象由第一操作状态调整为第二操作状态,若校验结果指示校验通过,且目标状态和所述第二操作状态一致,虚拟客户端确定将虚拟对象由第一操作状态调整为第二操作状态,若校验结果指示校验未通过,和/或目标状态和第二操作状态不一致,保持虚拟对象的状态为第一操作状态,从而利用虚拟客户端完成对第一游戏的自动化测试,提高了测试效率,同时实现了对BUG的复现。
图5为本发明又一实施例提供的自动化测试方法的流程图,如图5所示,本实施例的方法可以包括:
S401、游戏客户端获取操作第一游戏时产生的协议日志。
S402、游戏客户端根据虚拟客户端发送的第一请求,将协议日志发送给虚拟客户端。
S403、虚拟客户端根据预设解析规则,对协议日志进行解析,获取解析后的协议日志。
S404、虚拟客户端根据第一游戏的运行逻辑,获取解析后的协议日志对应的虚拟对象的操作状态。
S405、虚拟客户端根据预设的测试用例以及所述虚拟对象的操作状态,对解析后的协议日志进行归类划分。
S406、虚拟客户端获取虚拟客户端中虚拟对象的第一操作状态。
S407、虚拟客户端根据第一操作状态和协议日志,确定虚拟对象的第二操作状态。
S408、虚拟客户端将第一操作状态发送给服务器。
S409、服务器将第一操作状态发送给观战客户端。
在本实施例中,针对游戏画面上的BUG,服务器可以将虚拟对象的第一操作状态转发给观战客户端,以使观战客户端上显示虚拟客户端中虚拟对象的表现情况。可选的,观战客户端以预设时间间隔截图的方式保存虚拟客户端中虚拟对象的表现,或者,用户在观战客户端观察虚拟客户端中虚拟对象的表现。进一步,服务器还可以将虚拟客户端发送的第二操作状态转发给观战客户端。
举例来说,虚拟客户端中虚拟对象使用载具撞击建筑物时发生了穿模现象,采用现有的BUG复现方案,一种很难复现出BUG,一种BUG复现效率低,而在本方案中,虚拟客户端模拟游戏客户端,通过协议日志和服务器建立通信,并通过观战客户端对虚拟客户端中虚拟对象进行观战,提高了BUG复现效率。
本领域技术人员需要理解,以上涉及第一操作状态和第二操作状态只是示例性地说明本发明的实现过程,在实际应用中,虚拟客户端需要根据协议日志,重复向服务器发送操作状态,重复上述过程,直至将该协议日志发送完成,也就是完成自动化测试。
本实施例中,S401-S408的具体实现过程可以参见图3所示实施例的相关描述,另外S409之后可以执行上述S309-S311,此处不再赘述。
本实施例提供的自动化测试方法,游戏客户端获取操作第一游戏时产生的协议日志,虚拟客户端根据预设解析规则,对协议日志进行解析,获取解析后的协议日志,虚拟客户端根据第一游戏的运行逻辑,获取解析后的协议日志对应的虚拟对象的操作状态,虚拟客户端根据预设的测试用例以及虚拟对象的操作状态,对解析后的协议日志进行归类划分,虚拟客户端获取虚拟客户端中虚拟对象的第一操作状态,虚拟客户端根据第一操作状态和归类划分的协议日志,确定虚拟对象的第二操作状态,虚拟客户端将第一操作状态发送给服务器,并接收服务器返回的第一消息,若校验结果指示校验通过,且目标状态和所述第二操作状态一致,虚拟客户端确定将虚拟对象由第一操作状态调整为第二操作状态,若校验结果指示校验通过,且目标状态和所述第二操作状态一致,虚拟客户端确定将虚拟对象由第一操作状态调整为第二操作状态,若校验结果指示校验未通过,和/或目标状态和第二操作状态不一致,保持虚拟对象的状态为第一操作状态,从而利用虚拟客户端完成对第一游戏的自动化测试,提高了测试效率;同时,通过观战客户端对虚拟客户端中虚拟对象进行观战,提高了BUG复现效率。
图6为本发明一实施例提供的虚拟客户端的结构示意图,如图6所示,本实施例的虚拟客户端60包括:获取模块601、确定模块602、处理模块603。
获取模块601,用于从游戏客户端获取操作第一游戏时产生的协议日志;
所述获取模块601,还用于获取所述虚拟客户端中虚拟对象的第一操作状态;
确定模块602,用于根据第一操作状态和协议日志,确定是否将虚拟对象由所述第一操作状态调整为第二操作状态,所述第二操作状态为所述第一操作状态的下一个状态;
处理模块603,用于若是,将所述虚拟对象由所述第一操作状态调整为所述第二操作状态。
可选的,所述确定模块602,具体用于:
根据所述第一操作状态和所述协议日志,确定虚拟对象的第二操作状态;
根据所述第一操作状态和所述第二操作状态,确定是否将所述虚拟对象由所述第一操作状态调整为所述第二操作状态。
可选的,所述确定模块602,具体用于:
将所述第一操作状态发送给服务器,并接收所述服务器返回的第一消息,所述第一消息包括对所述第一操作状态的校验结果和所述虚拟对象的目标状态;
若所述校验结果指示校验通过,且所述目标状态和所述第二操作状态一致,确定将所述虚拟对象由所述第一操作状态调整为所述第二操作状态。
可选的,所述确定模块602,具体用于:
若所述校验结果指示校验未通过,和/或所述目标状态和所述第二操作状态不一致,保持所述虚拟对象的状态为所述第一操作状态。
可选的,所述获取模块601,还用于:
根据预设解析规则,对所述协议日志进行解析,获取解析后的协议日志。
可选的,所述获取模块601,还用于:
根据所述第一游戏的运行逻辑,获取所述解析后的协议日志对应的所述虚拟对象的操作状态,所述运行逻辑用于表征所述第一游戏的运行顺序。
所述处理模块603,还用于:
根据预设的测试用例以及所述虚拟对象的操作状态,对所述解析后的协议日志进行归类划分。
本实施例的虚拟客户端,可以用于执行上述各方法实施例中虚拟客户端的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明另一实施例提供的终端的结构示意图,如图7所示,本实施例的终端70可以包括:存储器701和处理器702。其中,存储器701与处理器702例如可以通过总线连接。
所述存储器701,用于存储程序代码;
所述处理器702,用于调用所述程序代码执行上述各方法实施例中虚拟客户端的技术方案。
图8为本发明一实施例提供的服务器的结构示意图,如图8所示,本实施例的服务器80包括:接收模块801、确定模块802、发送模块803。
接收模块801,用于接收虚拟客户端发送的虚拟对象的第一操作状态;
确定模块802,用于对所述第一操作状态进行校验获取校验结果,并确定所述虚拟对象的目标状态;
发送模块803,用于向所述虚拟客户端发送第一消息,所述第一消息包括对所述第一操作状态的校验结果和所述虚拟对象的目标状态。
可选的,所述发送模块803,还用于:
将所述第一操作状态发送给观战客户端,以使所述观战客户端将所述第一操作状态进行显示。
本实施例的服务器,可以用于执行上述各方法实施例中服务器的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为本发明另一实施例提供的服务器的结构示意图,如图9所示,本实施例的服务器90可以包括:存储器901和处理器902。其中,存储器901与处理器902例如可以通过总线连接。
所述存储器901,用于存储程序代码;
所述处理器902,用于调用所述程序代码执行上述各方法实施例中服务器的技术方案。
图10为本发明一实施例提供的游戏客户端的结构示意图,如图10所示,本实施例的游戏客户端100包括:获取模块101、发送模块102。
获取模块101,用于获取操作第一游戏时产生的协议日志;
发送模块102,用于根据虚拟客户端发送的第一请求,将所述协议日志发送给虚拟客户端。
本实施例的游戏客户端,可以用于执行上述各方法实施例中游戏客户端的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本发明另一实施例提供的终端的结构示意图,如图11所示,本实施例的终端110可以包括:存储器111和处理器112。其中,存储器111与处理器112例如可以通过总线连接。
所述存储器111,用于存储程序代码;
所述处理器112,用于调用所述程序代码执行上述各方法实施例中游戏客户端的技术方案。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读内存(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (17)
1.一种自动化测试方法,其特征在于,应用于虚拟客户端,包括:
从游戏客户端获取操作第一游戏时产生的协议日志;
获取所述虚拟客户端中虚拟对象的第一操作状态;
根据第一操作状态和所述协议日志,确定虚拟对象的第二操作状态;
将所述第一操作状态发送给服务器,并接收所述服务器返回的第一消息,所述第一消息包括对所述第一操作状态的校验结果和所述虚拟对象的目标状态;
若所述校验结果指示校验通过,且所述目标状态和所述第二操作状态一致,确定将虚拟对象由所述第一操作状态调整为第二操作状态,所述第二操作状态为所述第一操作状态的下一个状态。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述校验结果指示校验未通过,和/或所述目标状态和所述第二操作状态不一致,保持所述虚拟对象的状态为所述第一操作状态。
3.根据权利要求2所述的方法,其特征在于,所述从游戏客户端获取操作第一游戏时产生的协议日志之后,还包括:
根据预设解析规则,对所述协议日志进行解析,获取解析后的协议日志。
4.根据权利要求3所述的方法,其特征在于,所述根据预设解析规则,对所述协议日志进行解析,获取解析后的协议日志之后,所述方法还包括:
根据所述第一游戏的运行逻辑,获取所述解析后的协议日志对应的所述虚拟对象的操作状态,所述运行逻辑用于表征所述第一游戏的运行顺序。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一游戏的运行逻辑,获取所述解析后的协议日志对应的所述虚拟对象的操作状态之后,还包括:
根据预设的测试用例以及所述虚拟对象的操作状态,对所述解析后的协议日志进行归类划分。
6.一种自动化测试方法,其特征在于,应用于服务器,包括:
接收虚拟客户端发送的虚拟对象的第一操作状态;
对所述第一操作状态进行校验获取校验结果,并确定所述虚拟对象的目标状态;
向所述虚拟客户端发送第一消息,所述第一消息包括对所述第一操作状态的校验结果和所述虚拟对象的目标状态;
在所述接收虚拟客户端发送的虚拟对象的第一操作状态之前,还包括:所述虚拟客户端根据所述第一操作状态和协议日志,确定虚拟对象的第二操作状态,若所述校验结果指示校验通过,且所述目标状态和所述第二操作状态一致时,确定将所述虚拟对象由所述第一操作状态调整为所述第二操作状态,所述第二操作状态为所述第一操作状态的下一个状态。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将所述第一操作状态发送给观战客户端。
8.一种自动化测试方法,其特征在于,应用于游戏客户端,包括:
获取操作第一游戏时产生的协议日志;
根据虚拟客户端发送的第一请求,将所述协议日志发送给虚拟客户端,以使虚拟客户端根据第一操作状态和所述协议日志,确定虚拟对象的第二操作状态,将所述第一操作状态发送给服务器,并接收所述服务器返回的第一消息,所述第一消息包括对所述第一操作状态的校验结果和所述虚拟对象的目标状态;若所述校验结果指示校验通过,且所述目标状态和所述第二操作状态一致,确定将所述虚拟对象由所述第一操作状态调整为所述第二操作状态,所述第二操作状态为所述第一操作状态的下一个状态。
9.一种虚拟客户端,其特征在于,包括:
获取模块,用于从游戏客户端获取操作第一游戏时产生的协议日志;
所述获取模块,还用于获取所述虚拟客户端中虚拟对象的第一操作状态;
确定模块,用于根据第一操作状态和协议日志,确定是否将虚拟对象由所述第一操作状态调整为第二操作状态,所述第二操作状态为所述第一操作状态的下一个状态;
处理模块,用于若是,将所述虚拟对象由所述第一操作状态调整为所述第二操作状态;
所述确定模块,具体用于根据所述第一操作状态和所述协议日志,确定虚拟对象的第二操作状态;根据所述第一操作状态和所述第二操作状态,确定是否将所述虚拟对象由所述第一操作状态调整为所述第二操作状态;
所述确定模块,具体用于将所述第一操作状态发送给服务器,并接收所述服务器返回的第一消息,所述第一消息包括对所述第一操作状态的校验结果和所述虚拟对象的目标状态;若所述校验结果指示校验通过,且所述目标状态和所述第二操作状态一致,确定将所述虚拟对象由所述第一操作状态调整为所述第二操作状态。
10.一种服务器,其特征在于,包括:
接收模块,用于接收虚拟客户端发送的虚拟对象的第一操作状态;
处理模块,用于对所述第一操作状态进行校验获取校验结果,并确定所述虚拟对象的目标状态;
发送模块,用于向所述虚拟客户端发送第一消息,所述第一消息包括对所述第一操作状态的校验结果和所述虚拟对象的目标状态;以使所述虚拟客户端在所述校验结果指示校验通过,且所述目标状态和第二操作状态一致时,将所述虚拟对象由第一操作状态调整为所述第二操作状态,所述第二操作状态为所述第一操作状态的下一个状态,是所述虚拟客户端根据所述第一操作状态和协议日志确定的。
11.一种游戏客户端,其特征在于,包括:
获取模块,用于获取操作第一游戏时产生的协议日志;
发送模块,用于根据虚拟客户端发送的第一请求,将所述协议日志发送给虚拟客户端,以使所述虚拟客户端根据第一操作状态和所述协议日志,确定虚拟对象的第二操作状态,将所述第一操作状态发送给服务器,并接收所述服务器返回的第一消息,所述第一消息包括对所述第一操作状态的校验结果和所述虚拟对象的目标状态;若所述校验结果指示校验通过,且所述目标状态和所述第二操作状态一致,确定将所述虚拟对象由所述第一操作状态调整为所述第二操作状态,所述第二操作状态为所述第一操作状态的下一个状态。
12.一种终端,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于调用所述程序代码执行如权利要求1-5任意一项所述的自动化测试方法。
13.一种服务器,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于调用所述程序代码执行如权利要求6或7所述的自动化测试方法。
14.一种终端,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于调用所述程序代码执行如权利要求8所述的自动化测试方法。
15.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序;所述计算机程序在被执行时,实现如权利要求1-5任意一项所述的自动化测试方法。
16.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序;所述计算机程序在被执行时,实现如权利要求6或7所述的自动化测试方法。
17.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序;所述计算机程序在被执行时,实现如权利要求8所述的自动化测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910227885.1A CN109985387B (zh) | 2019-03-25 | 2019-03-25 | 自动化测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910227885.1A CN109985387B (zh) | 2019-03-25 | 2019-03-25 | 自动化测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109985387A CN109985387A (zh) | 2019-07-09 |
CN109985387B true CN109985387B (zh) | 2022-10-04 |
Family
ID=67131399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910227885.1A Active CN109985387B (zh) | 2019-03-25 | 2019-03-25 | 自动化测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109985387B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732576B (zh) * | 2021-01-08 | 2024-06-04 | 网易(杭州)网络有限公司 | 基于用户界面的自动化测试方法、装置及设备 |
CN113485924B (zh) * | 2021-07-01 | 2023-07-18 | 网易(杭州)网络有限公司 | 游戏测试方法、装置、设备、存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721239A (zh) * | 2016-01-18 | 2016-06-29 | 网易(杭州)网络有限公司 | 游戏测试方法、装置及游戏*** |
CN108111464B (zh) * | 2016-11-24 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 一种数据校验方法及装置 |
US10628294B2 (en) * | 2017-03-23 | 2020-04-21 | Electronic Arts Inc. | Mock services for software infrastructures |
CN107678970A (zh) * | 2017-10-20 | 2018-02-09 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN108255727A (zh) * | 2018-01-18 | 2018-07-06 | 网易(杭州)网络有限公司 | 数据接收、发送方法及装置,测试***,存储介质 |
-
2019
- 2019-03-25 CN CN201910227885.1A patent/CN109985387B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109985387A (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025165B (zh) | 游戏自动化测试方法及相关装置 | |
US10628294B2 (en) | Mock services for software infrastructures | |
CN108228444B (zh) | 一种测试方法和装置 | |
CN110013672B (zh) | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 | |
CN109985387B (zh) | 自动化测试方法和装置 | |
CN111611121A (zh) | 硬件模拟测试方法、装置及设备 | |
CN111258913A (zh) | 算法自动测试方法、装置、计算机***及可读存储介质 | |
CN115510454A (zh) | 游戏测试方法、装置、电子设备及存储介质 | |
CN113342515A (zh) | 一种无服务器计算资源选择方法、装置、设备及存储介质 | |
CN113064816B (zh) | 一种可编程逻辑器件软件的测试装置及测试方法 | |
CN113238935A (zh) | 应用测试方法、***、设备、介质及计算机程序产品 | |
CN114064465A (zh) | 一种基于Linux云平台的稳定性测试方法 | |
CN113181637A (zh) | 游戏回放方法和*** | |
CN110737900B (zh) | 网页功能测试方法及装置、服务器和计算机可读存储介质 | |
CN114546814A (zh) | 录制回放方法、装置及存储介质 | |
CN113608990B (zh) | 终端性能检测方法、设备及存储介质 | |
CN112799956B (zh) | 资产识别能力测试方法、装置及***装置 | |
CN115733741A (zh) | 一种针对待测***的异常场景测试方法和装置 | |
CN114185773A (zh) | 程序测试方法、装置、电子设备和计算机可读存储介质 | |
CN107276852B (zh) | 一种数据安全检测方法及终端 | |
CN112199229A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN112473146A (zh) | 一种游戏战斗过程信息自动化测试方法、装置及*** | |
KR102481254B1 (ko) | 테스트 자동화 서비스 장치 및 방법 | |
KR20150027865A (ko) | 애플리케이션의 자동 검증을 위한 단말장치, 검증결과 제공 장치, 자동 검증 시스템, 자동 검증 방법 및 컴퓨터로 판독 가능한 기록 매체 | |
CN111026650B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |