CN109634861B - 网络游戏协议的测试方法、装置、处理器及终端 - Google Patents
网络游戏协议的测试方法、装置、处理器及终端 Download PDFInfo
- Publication number
- CN109634861B CN109634861B CN201811513498.6A CN201811513498A CN109634861B CN 109634861 B CN109634861 B CN 109634861B CN 201811513498 A CN201811513498 A CN 201811513498A CN 109634861 B CN109634861 B CN 109634861B
- Authority
- CN
- China
- Prior art keywords
- protocol
- game
- game client
- test
- content
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种网络游戏协议的测试方法、装置、处理器及终端。该方法包括:通过向游戏客户端注入测试脚本获取待测试的网络游戏协议的协议内容;按照测试用例对协议内容进行修改,得到修改后的协议内容;将修改后的协议内容经由游戏客户端提交至游戏服务端,并经由游戏客户端接收来自于游戏服务端的测试结果。本发明解决了相关技术中所提供的网络游戏协议测试方式需要配置一个测试路由器并且还需要在路由器上配置TCP拦截器,其操作过程较为繁琐、复杂;而且此种测试方式还会对网络环境存在干涉的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种网络游戏协议的测试方法、装置、处理器及终端。
背景技术
网络协议是指计算机网络中进行数据交换而建立的规则、标准或约定的集合。在网络游戏长期发展过程中,通过网络协议来进行服务端与客户端之间的通信是一种常用的技术手段。在对网络协议进行测试时,包含对协议进行拦截、解析、篡改、发送等一系列的测试过程。拦截过程包括在游戏客户端注入脚本代码,替换游戏端协议发送函数以及对协议内容进行持久化,然后再转发到测试设备上。而在协议解析过程中对被拦截的协议内容进行反持久化操作以及重新解包处理。篡改过程通过修改协议内容中的参数值进而执行特定的测试用例输入。发送过程通过连接到游戏客户端的测试设备,将篡改后的协议重新发送至游戏服务器以验证测试结果。
目前游戏协议测试多采用传输控制协议(TCP)拦截技术,其具体过程如下:在路由器上配置TCP拦截器,代替主机进行网络连接。而一旦激活TCP拦截器的拦截功能,TCP请求便会被TCP拦截器所拦截并转发至对应的端口,然后再由测试设备监听端口获取协议内容,进而对协议内容进行篡改并发送经过篡改的TCP协议。最终,测试设备会再次对接收协议进行拦截,以获取测试结果。
然而,上述测试过程存在如下技术缺陷:该测试方式需要配置一个测试路由器。并且在每次进行测试之前需要先激活TCP拦截器以及在测试结束之后,还需要反激活TCP拦截器,其操作过程较为繁琐、复杂。而且,此种测试方式还会对网络环境存在干涉,局域网内其他设备互相存在影响,多个游戏客户端进行测试时必须同时执行同样的测试用例,待执行完毕后才能重新安排其他用例。这显然难以适用于大规模的网络测试。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明至少部分实施例提供了一种网络游戏协议的测试方法、装置、处理器及终端,以至少解决相关技术中所提供的网络游戏协议测试方式需要配置一个测试路由器并且还需要在路由器上配置TCP拦截器,其操作过程较为繁琐、复杂;而且此种测试方式还会对网络环境存在干涉的技术问题。
根据本发明其中一实施例,提供了一种网络游戏协议的测试方法,包括:
通过向游戏客户端注入测试脚本获取待测试的网络游戏协议的协议内容;按照测试用例对协议内容进行修改,得到修改后的协议内容;将修改后的协议内容经由游戏客户端提交至游戏服务端,并经由游戏客户端接收来自于游戏服务端的测试结果。
可选地,通过向游戏客户端注入测试脚本获取协议内容包括:在接收到来自于游戏客户端的连接请求之后,向游戏客户端发送测试脚本,其中,测试脚本采用与游戏客户端的脚本层逻辑相同的编程语言;通过调用编程语言提供的编译接口在游戏客户端执行测试脚本,以获取协议内容。
可选地,通过调用编程语言提供的编译接口在游戏客户端执行测试脚本,以获取协议内容包括:通过调用编译接口将测试脚本中的测试逻辑注入至游戏客户端;通过执行测试脚本中的猴子补丁逻辑,查找与待测试的网络游戏协议对应的协议发送函数与协议接收函数,并在内存中将协议发送函数与协议接收函数替换为新的逻辑代码,以获取协议内容。
可选地,在执行猴子补丁逻辑,查找与待测试的网络游戏协议对应的协议发送函数与协议接收函数之前,还包括:向游戏客户端发送控制指令,其中,控制指令用于指示游戏客户端拦截待测试的网络游戏协议。
可选地,将协议发送函数与协议接收函数替换为新的逻辑代码,以获取协议内容包括:控制游戏客户端执行新的逻辑代码,获取并保存协议发送函数的调用参数;调用预设协议解析方式对调用参数进行序列化处理,得到协议内容。
可选地,按照测试用例对协议内容进行修改包括:按照键值对展示方式对协议内容进行展示;按照测试用例将协议内容中的待测试值替换为用例输入条件值,得到修改后的协议内容。
可选地,将修改后的协议内容提交至游戏服务端,并接收来自于游戏服务端的测试结果包括:响应确认操作,将修改后的协议内容提交至游戏客户端,并调用协议发送函数控制游戏客户端将修改后的协议内容提交至游戏服务端;当游戏服务端将测试结果返回至游戏客户端时,调用新的逻辑代码控制游戏客户端转发测试结果。
根据本发明其中一实施例,还提供了一种网络游戏协议的测试装置,包括:
获取模块,用于通过向游戏客户端注入测试脚本获取待测试的网络游戏协议的协议内容;修改模块,用于按照测试用例对协议内容进行修改,得到修改后的协议内容;处理模块,用于将修改后的协议内容经由游戏客户端提交至游戏服务端,并经由游戏客户端接收来自于游戏服务端的测试结果。
可选地,获取模块包括:发送单元,用于在接收到来自于游戏客户端的连接请求之后,向游戏客户端发送测试脚本,其中,测试脚本采用与游戏客户端的脚本层逻辑相同的编程语言;第一处理单元,用于通过调用编程语言提供的编译接口在游戏客户端执行测试脚本,以获取协议内容。
可选地,第一处理单元包括:注入子单元,用于通过调用编译接口将测试脚本中的测试逻辑注入至游戏客户端;处理子单元,用于通过执行测试脚本中的猴子补丁逻辑,查找与待测试的网络游戏协议对应的协议发送函数与协议接收函数,并在内存中将协议发送函数与协议接收函数替换为新的逻辑代码,以获取协议内容。
可选地,获取模块还包括:发送单元,用于向游戏客户端发送控制指令,其中,控制指令用于指示游戏客户端拦截待测试的网络游戏协议。
可选地,处理子单元,用于控制游戏客户端执行新的逻辑代码,获取并保存协议发送函数的调用参数;以及调用预设协议解析方式对调用参数进行序列化处理,得到协议内容。
可选地,修改模块包括:展示单元,用于按照键值对展示方式对协议内容进行展示;修改单元,用于按照测试用例将协议内容中的待测试值替换为用例输入条件值,得到修改后的协议内容。
可选地,处理模块包括:第二处理单元,用于响应确认操作,将修改后的协议内容提交至游戏客户端,并调用协议发送函数控制游戏客户端将修改后的协议内容提交至游戏服务端;第三处理单元,用于当游戏服务端将测试结果返回至游戏客户端时,调用新的逻辑代码控制游戏客户端转发测试结果。
根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的网络游戏协议的测试方法。
根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的网络游戏协议的测试方法。
根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述任意一项的网络游戏协议的测试方法。
在本发明至少部分实施例中,采用通过向游戏客户端注入测试脚本获取待测试的网络游戏协议的协议内容的方式,通过按照测试用例对协议内容进行修改以得到修改后的协议内容,以及将修改后的协议内容经由游戏客户端提交至游戏服务端并经由游戏客户端接收来自于游戏服务端的测试结果,达到了降低网络游戏协议测试的操作复杂度,避免多个游戏客户端发生使用冲突的目的,从而实现了无需对网络环境进行干涉即可执行网络游戏协议测试、操作简便易行的技术效果,进而解决了相关技术中所提供的网络游戏协议测试方式需要配置一个测试路由器并且还需要在路由器上配置TCP拦截器,其操作过程较为繁琐、复杂;而且此种测试方式还会对网络环境存在干涉的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明其中一实施例的网络游戏协议的测试方法的流程图;
图2是根据本发明其中一实施例的网络游戏协议的测试装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明其中一实施例,提供了一种网络游戏协议的测试方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,计算机终端可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(CPU)、微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置)和用于存储数据的存储器。可选地,上述移动终端还可以包括用于通信功能的传输装置、显示装置以及输入输出设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的网络游戏协议的测试方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述计算机终端的网络游戏协议的测试方法,图1是根据本发明其中一实施例的网络游戏协议的测试方法的流程图,如图1所示,该方法包括如下步骤:
步骤S12,通过向游戏客户端注入测试脚本获取待测试的网络游戏协议的协议内容;
步骤S14,按照测试用例对协议内容进行修改,得到修改后的协议内容;
步骤S16,将修改后的协议内容经由游戏客户端提交至游戏服务端,并经由游戏客户端接收来自于游戏服务端的测试结果。
通过上述步骤,可以采用通过向游戏客户端注入测试脚本获取待测试的网络游戏协议的协议内容的方式,通过按照测试用例对协议内容进行修改以得到修改后的协议内容,以及将修改后的协议内容经由游戏客户端提交至游戏服务端并经由游戏客户端接收来自于游戏服务端的测试结果,达到了降低网络游戏协议测试的操作复杂度,避免多个游戏客户端发生使用冲突的目的,从而实现了无需对网络环境进行干涉即可执行网络游戏协议测试、操作简便易行的技术效果,进而解决了相关技术中所提供的网络游戏协议测试方式需要配置一个测试路由器并且还需要在路由器上配置TCP拦截器,其操作过程较为繁琐、复杂;而且此种测试方式还会对网络环境存在干涉的技术问题。
可选地,在步骤S12中,通过向游戏客户端注入测试脚本获取协议内容可以包括以下执行步骤:
步骤S121,在接收到来自于游戏客户端的连接请求之后,向游戏客户端发送测试脚本,其中,测试脚本采用与游戏客户端的脚本层逻辑相同的编程语言;
步骤S122,通过调用编程语言提供的编译接口在游戏客户端执行测试脚本,以获取协议内容。
当需要对网络游戏协议进行测试时,上述计算机终端可以作为测试设备,与游戏客户端建立连接。而且该测试设备提供可视化和可操作图形用户界面以执行测试脚本的执行并获取测试结果。在测试设备启动之前,配置游戏客户端参数,设置启动命令、脚本目录。通过提供配置选择,便利地保存和控制游戏客户端参数,比相关技术中提供的TCP拦截器配置更加易于学习和掌握。
在测试设备启动之后,将会等待游戏客户端发起的连接请求,然后再将测试脚本发送给游戏客户端。游戏客户端在正常启动之后,通过会主动发起连接请求,而无需执行其他额外操作。测试脚本可以使用与游戏客户端脚本层逻辑同样的编程语言,其通常为以下之一:Lua、Python、C#。通过调用脚本语言提供的编译接口能够直接在游戏客户端执行测试脚本。
可选地,在步骤S122中,通过调用编程语言提供的编译接口在游戏客户端执行测试脚本,以获取协议内容可以包括以下执行步骤:
步骤S1221,通过调用编译接口将测试脚本中的测试逻辑注入至游戏客户端;
步骤S1223,通过执行测试脚本中的猴子补丁逻辑,查找与待测试的网络游戏协议对应的协议发送函数与协议接收函数,并在内存中将协议发送函数与协议接收函数替换为新的逻辑代码,以获取协议内容。
猴子补丁(Monkey Patch)是指在代码运行时动态地修改模块、类或函数,通常是添加功能或修正缺陷。猴子补丁在代码运行时(内存中)发挥作用,不会修改源码,因此只对当前运行的程序实例有效。
通过在网络游戏的脚本层逻辑中注入脚本代码,即调用脚本语言的编译接口执行代码以注入测试逻辑;以及使用猴子补丁方式打入协议拦截逻辑,即执行测试代码中的猴子补丁逻辑,通常函数定义monkey_patch(),以查询并在内存中替换协议发送、接收函数,进而拦截协议内容。具体地,通过采用猴子补丁方式可以改写游戏客户端的协议发送、接收函数,将其替换成新的逻辑代码。新的逻辑代码负责执行在将协议内容拦截并解析之后,按照序列化方式传回测试设备的逻辑。
由此可见,测试人员无需具备复杂的路由器配置知识,在界面进行简单地操作即可完成对协议的拦截操作。而且,在多个游戏客户端共同进行协议测试的场景下,由于采用在每个游戏客户端分别注入脚本的方式,因此并不会在多个游戏客户端之间发生冲突和互相影响。游戏客户端内的协议函数也会基于所连接的测试设备被单独替换。
可选地,在步骤S1223,通过执行猴子补丁逻辑,查找与待测试的网络游戏协议对应的协议发送函数与协议接收函数之前,还可以包括以下执行步骤:
步骤S1222,向游戏客户端发送控制指令,其中,控制指令用于指示游戏客户端拦截待测试的网络游戏协议。
上述测试设备可以开启拦截功能,在默认状态下,拦截功能处于开启状态,即游戏客户端一但与测试设备建立连接,即可进行协议拦截。然后测试设备会向游戏客户端发送特定指令以通知游戏客户端需要过滤的协议名称。
可选地,在步骤S1223中,将协议发送函数与协议接收函数替换为新的逻辑代码,以获取协议内容可以包括以下执行步骤:
步骤S12231,控制游戏客户端执行新的逻辑代码,获取并保存协议发送函数的调用参数;
步骤S12232,调用预设协议解析方式对调用参数进行序列化处理,得到协议内容。
对于被替换的协议发送函数而言,该协议发送函数的调用参数将会被保存下来。然后再调用特定的协议解析方式对调用参数进行序列化处理,进而表达成协议内容。
可选地,在步骤S14中,按照测试用例对协议内容进行修改可以包括以下执行步骤:
步骤S141,按照键值对展示方式对协议内容进行展示;
步骤S142,按照测试用例将协议内容中的待测试值替换为用例输入条件值,得到修改后的协议内容。
在上述可视化和可操作图形用户界面中,可以将协议内容展示为预设格式(例如:表格格式,通用的xml、json格式协议均可以转换成表格形式),其表头对应协议的键,单元格则对应协议的值,由此将协议内容使用表格进行编辑,其对于测试人员而言更为熟悉。当需要修改协议内容时,只需替换单元格中的内容,即按照测试用例要求对协议内容进行修改,以便将单元格内容替换成用例输入条件值,然后再发送修改后的协议内容。而且,该可视化和可操作图形用户界面中还可以设置拦截开关,进而通过拦截开关的打开与关闭实现协议拦截功能。
可选地,在步骤S16中,将修改后的协议内容提交至游戏服务端,并接收来自于游戏服务端的测试结果可以包括以下执行步骤:
步骤S161,响应确认操作,将修改后的协议内容提交至游戏客户端,并调用协议发送函数控制游戏客户端将修改后的协议内容提交至游戏服务端;
步骤S162,当游戏服务端将测试结果返回至游戏客户端时,调用新的逻辑代码控制游戏客户端转发测试结果。
当用户点击上述可视化和可操作图形用户界面中的发送按钮时,测试设备会将修改后的协议内容提交给游戏客户端,然后再调用替换前的协议发送函数,将修改后的协议内容提交给游戏服务端。
在游戏服务端返回测试结果的过程中,当经由游戏客户端时,测试设备会调用替换后的协议接收函数。该协议接收函数的调用参数会经过解析和序列化处理。然后由测试设备接收来自于游戏服务端的测试结果,并将测试结果展示到可视化和可操作图形用户界面中。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种网络游戏协议的测试装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是根据本发明其中一实施例的网络游戏协议的测试装置的结构框图,如图2所示,该装置包括:获取模块10,用于通过向游戏客户端注入测试脚本获取待测试的网络游戏协议的协议内容;修改模块20,用于按照测试用例对协议内容进行修改,得到修改后的协议内容;处理模块30,用于将修改后的协议内容经由游戏客户端提交至游戏服务端,并经由游戏客户端接收来自于游戏服务端的测试结果。
可选地,获取模块10包括:发送单元(图中未示出),用于在接收到来自于游戏客户端的连接请求之后,向游戏客户端发送测试脚本,其中,测试脚本采用与游戏客户端的脚本层逻辑相同的编程语言;第一处理单元(图中未示出),用于通过调用编程语言提供的编译接口在游戏客户端执行测试脚本,以获取协议内容。
可选地,第一处理单元(图中未示出)包括:注入子单元(图中未示出),用于通过调用编译接口将测试脚本中的测试逻辑注入至游戏客户端;处理子单元(图中未示出),用于通过执行测试脚本中的猴子补丁逻辑,查找与待测试的网络游戏协议对应的协议发送函数与协议接收函数,并在内存中将协议发送函数与协议接收函数替换为新的逻辑代码,以获取协议内容。
可选地,获取模块10还包括:发送单元(图中未示出),用于向游戏客户端发送控制指令,其中,控制指令用于指示游戏客户端拦截待测试的网络游戏协议。
可选地,处理子单元(图中未示出),用于控制游戏客户端执行新的逻辑代码,获取并保存协议发送函数的调用参数;以及调用预设协议解析方式对调用参数进行序列化处理,得到协议内容。
可选地,修改模块20包括:展示单元(图中未示出),用于按照键值对展示方式对协议内容进行展示;修改单元(图中未示出),用于按照测试用例将协议内容中的待测试值替换为用例输入条件值,得到修改后的协议内容。
可选地,处理模块30包括:第二处理单元(图中未示出),用于响应确认操作,将修改后的协议内容提交至游戏客户端,并调用协议发送函数控制游戏客户端将修改后的协议内容提交至游戏服务端;第三处理单元(图中未示出),用于当游戏服务端将测试结果返回至游戏客户端时,调用新的逻辑代码控制游戏客户端转发测试结果。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,通过向游戏客户端注入测试脚本获取待测试的网络游戏协议的协议内容;
S2,按照测试用例对协议内容进行修改,得到修改后的协议内容;
S3,将修改后的协议内容经由游戏客户端提交至游戏服务端,并经由游戏客户端接收来自于游戏服务端的测试结果。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种处理器,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,通过向游戏客户端注入测试脚本获取待测试的网络游戏协议的协议内容;
S2,按照测试用例对协议内容进行修改,得到修改后的协议内容;
S3,将修改后的协议内容经由游戏客户端提交至游戏服务端,并经由游戏客户端接收来自于游戏服务端的测试结果。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种网络游戏协议的测试方法,其特征在于,包括:
通过向游戏客户端注入测试脚本获取待测试的网络游戏协议的协议内容;
按照测试用例对所述协议内容进行修改,得到修改后的协议内容;
将所述修改后的协议内容经由所述游戏客户端提交至游戏服务端,并经由所述游戏客户端接收来自于所述游戏服务端的测试结果;
其中,按照所述测试用例对所述协议内容进行修改包括:按照键值对展示方式对所述协议内容进行展示;按照所述测试用例将所述协议内容中的待测试值替换为用例输入条件值,得到所述修改后的协议内容;
其中,通过向所述游戏客户端注入所述测试脚本获取所述协议内容包括:在接收到来自于所述游戏客户端的连接请求之后,向所述游戏客户端发送所述测试脚本,其中,所述测试脚本采用与所述游戏客户端的脚本层逻辑相同的编程语言;通过调用所述编程语言提供的编译接口在所述游戏客户端执行所述测试脚本,以获取所述协议内容;
其中,通过调用所述编程语言提供的编译接口在所述游戏客户端执行所述测试脚本,以获取所述协议内容包括:通过调用所述编译接口将所述测试脚本中的测试逻辑注入至所述游戏客户端;通过执行所述测试脚本中的猴子补丁逻辑,查找与所述待测试的网络游戏协议对应的协议发送函数与协议接收函数,并在内存中将所述协议发送函数与所述协议接收函数替换为新的逻辑代码,以获取所述协议内容。
2.根据权利要求1所述的方法,其特征在于,在通过执行所述猴子补丁逻辑,查找与所述待测试的网络游戏协议对应的协议发送函数与协议接收函数之前,还包括:
向所述游戏客户端发送控制指令,其中,所述控制指令用于指示所述游戏客户端拦截所述待测试的网络游戏协议。
3.根据权利要求1所述的方法,其特征在于,将所述协议发送函数与所述协议接收函数替换为所述新的逻辑代码,以获取所述协议内容包括:
控制所述游戏客户端执行所述新的逻辑代码,获取并保存所述协议发送函数的调用参数;
调用预设协议解析方式对所述调用参数进行序列化处理,得到所述协议内容。
4.根据权利要求1所述的方法,其特征在于,将所述修改后的协议内容提交至所述游戏服务端,并接收来自于所述游戏服务端的所述测试结果包括:
响应确认操作,将所述修改后的协议内容提交至所述游戏客户端,并调用所述协议发送函数控制所述游戏客户端将所述修改后的协议内容提交至所述游戏服务端;
当所述游戏服务端将所述测试结果返回至所述游戏客户端时,调用所述新的逻辑代码控制所述游戏客户端转发所述测试结果。
5.一种网络游戏协议的测试装置,其特征在于,包括:
获取模块,用于通过向游戏客户端注入测试脚本获取待测试的网络游戏协议的协议内容;
修改模块,用于按照测试用例对所述协议内容进行修改,得到修改后的协议内容;
处理模块,用于将所述修改后的协议内容经由所述游戏客户端提交至游戏服务端,并经由所述游戏客户端接收来自于所述游戏服务端的测试结果;
其中,所述修改模块,用于按照键值对展示方式对所述协议内容进行展示;按照所述测试用例将所述协议内容中的待测试值替换为用例输入条件值,得到所述修改后的协议内容;
其中,所述获取模块,用于在接收到来自于所述游戏客户端的连接请求之后,向所述游戏客户端发送所述测试脚本,其中,所述测试脚本采用与所述游戏客户端的脚本层逻辑相同的编程语言;通过调用所述编程语言提供的编译接口在所述游戏客户端执行所述测试脚本,以获取所述协议内容;
其中,所述获取模块,用于通过调用所述编程语言提供的编译接口在所述游戏客户端执行所述测试脚本,以获取所述协议内容包括:通过调用所述编译接口将所述测试脚本中的测试逻辑注入至所述游戏客户端;通过执行所述测试脚本中的猴子补丁逻辑,查找与所述待测试的网络游戏协议对应的协议发送函数与协议接收函数,并在内存中将所述协议发送函数与所述协议接收函数替换为新的逻辑代码,以获取所述协议内容。
6.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至4中任意一项所述的网络游戏协议的测试方法。
7.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至4中任意一项所述的网络游戏协议的测试方法。
8.一种终端,其特征在于,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序用于执行权利要求1至4中任意一项所述的网络游戏协议的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811513498.6A CN109634861B (zh) | 2018-12-11 | 2018-12-11 | 网络游戏协议的测试方法、装置、处理器及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811513498.6A CN109634861B (zh) | 2018-12-11 | 2018-12-11 | 网络游戏协议的测试方法、装置、处理器及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109634861A CN109634861A (zh) | 2019-04-16 |
CN109634861B true CN109634861B (zh) | 2022-06-21 |
Family
ID=66072914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811513498.6A Active CN109634861B (zh) | 2018-12-11 | 2018-12-11 | 网络游戏协议的测试方法、装置、处理器及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634861B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110300327B (zh) * | 2019-04-18 | 2021-06-15 | 深圳市腾讯网域计算机网络有限公司 | 一种游戏客户端性能分析方法、装置、终端及存储介质 |
CN110069413B (zh) * | 2019-04-22 | 2020-11-24 | 苏州亿歌网络科技有限公司 | 测试数据通信、测试方法、装置、设备及存储介质 |
CN110209588B (zh) * | 2019-06-04 | 2023-06-13 | 网易(杭州)网络有限公司 | 游戏服务端测试方法、装置、电子设备及介质 |
CN110232025A (zh) * | 2019-06-11 | 2019-09-13 | 网易(杭州)网络有限公司 | 协议测试方法、装置和系统 |
CN112948232A (zh) * | 2019-12-10 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 一种游戏协议测试方法、装置、电子设备和存储介质 |
CN113765862B (zh) * | 2020-06-05 | 2024-02-09 | 腾讯科技(成都)有限公司 | 游戏协议测试的方法、装置、设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094245A (zh) * | 2007-07-11 | 2007-12-26 | 华中科技大学 | 一种基于对等覆盖网络的游戏平台系统 |
KR20120047013A (ko) * | 2010-11-03 | 2012-05-11 | 주식회사 엔씨소프트 | 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법 |
CN104834595A (zh) * | 2015-02-15 | 2015-08-12 | 网易(杭州)网络有限公司 | 一种可视化自动测试方法及系统 |
CN105721239A (zh) * | 2016-01-18 | 2016-06-29 | 网易(杭州)网络有限公司 | 游戏测试方法、装置及游戏系统 |
CN105868111A (zh) * | 2016-03-29 | 2016-08-17 | 网易(杭州)网络有限公司 | 移动终端游戏自动测试方法和装置 |
CN107704398A (zh) * | 2017-11-01 | 2018-02-16 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
-
2018
- 2018-12-11 CN CN201811513498.6A patent/CN109634861B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094245A (zh) * | 2007-07-11 | 2007-12-26 | 华中科技大学 | 一种基于对等覆盖网络的游戏平台系统 |
KR20120047013A (ko) * | 2010-11-03 | 2012-05-11 | 주식회사 엔씨소프트 | 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법 |
CN104834595A (zh) * | 2015-02-15 | 2015-08-12 | 网易(杭州)网络有限公司 | 一种可视化自动测试方法及系统 |
CN105721239A (zh) * | 2016-01-18 | 2016-06-29 | 网易(杭州)网络有限公司 | 游戏测试方法、装置及游戏系统 |
CN105868111A (zh) * | 2016-03-29 | 2016-08-17 | 网易(杭州)网络有限公司 | 移动终端游戏自动测试方法和装置 |
CN107704398A (zh) * | 2017-11-01 | 2018-02-16 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109634861A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634861B (zh) | 网络游戏协议的测试方法、装置、处理器及终端 | |
CN110442524B (zh) | 一种针对带有认证授权的web服务接口测试方法和装置 | |
CN105740137B (zh) | 分桶测试方法和提供配置信息的方法、装置及系统 | |
CN108934037B (zh) | 移动终端测试装置及其频率信息设定方法 | |
US20070220494A1 (en) | A Method of Rapid Software Application Development for a Wireless Mobile Device | |
US20030182408A1 (en) | Load test system for a server and method of use | |
CN105389263B (zh) | 应用软件权限监控方法、系统及设备 | |
CN108563579B (zh) | 白盒测试方法、装置、系统及存储介质 | |
CN106713004B (zh) | 一种路由器适配方法及系统 | |
CN113553257B (zh) | 测试方法、装置、存储介质及电子设备 | |
CN113110864B (zh) | 应用程序更新方法、装置及存储介质 | |
CN111581095A (zh) | 一种基于无障碍服务的自启动usb调试方法、装置及存储介质 | |
EP3047379A1 (en) | Real-time code instrumentation | |
US20180129519A1 (en) | Method and system for emulating application running in secondary device on primary device | |
CN114637549B (zh) | 基于服务网格的应用的数据处理方法、系统和存储介质 | |
CN112632420A (zh) | 界面跳转方法、装置、存储介质及电子装置 | |
CN106815150B (zh) | 服务端接口测试系统及方法 | |
US20140004852A1 (en) | Test suite for a mobile device | |
CN111786852B (zh) | 测试方法及相关设备 | |
CN109445816B (zh) | 导表处理方法、装置、存储介质、处理器及终端 | |
CN112416617A (zh) | 蓝牙设备的控制方法及装置、存储介质、电子装置 | |
CN113489785A (zh) | 一种实现物联网终端可视化界面操作的方法及系统 | |
CN113138915A (zh) | 一种页面测试方法、装置及介质 | |
WO2017092391A1 (zh) | 一种中间库虚拟控制测试方法及其系统 | |
CN107193728A (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 |