一种游戏协议测试方法、装置、电子设备和存储介质制造方法及图纸

技术编号:24573605 阅读:27 留言:0更新日期:2020-06-21 00:04
本申请涉及计算机技术领域,尤其涉及一种游戏协议测试方法、装置、电子设备和存储介质,用以增加游戏协议测试的适用范围,其中方法包括:获取待测试游戏的协议文件以及协议文件的数据格式,并根据协议文件和协议文件的数据格式生成协议代码;根据协议文件的数据格式对应的环境运行库运行协议代码,生成协议对象,并通过反射技术确定协议对象的结构信息;对协议对象的结构信息进行修改,构建测试数据;通过测试数据对待测试游戏进行游戏协议测试。这样,构造的测试数据可以针对不同编程语言编写的协议文件所在的游戏进行协议测试,从而增加了游戏协议测试的适用范围。

A game protocol testing method, device, electronic device and storage medium

【技术实现步骤摘要】
一种游戏协议测试方法、装置、电子设备和存储介质
本申请涉及计算机
,尤其涉及一种游戏协议测试方法、装置、电子设备和存储介质。
技术介绍
协议测试是针对网络协议进行的测试,协议测试能够实现一些常规测试中无法实现的流程。在进行协议测试时,包含对协议进行拦截、解析、篡改、发送等一系列的测试过程。随着游戏的普及,需要针对游戏协议进行测试。在相关技术中,通过反射技术从游戏内存获取协议结构,进行数据变异的模糊测试方案。针对游戏协议特点和游戏实现,定制的模糊测试策略,可以构造海量的测试数据;但是该方法需要游戏的协议定义是基于C#(一种编程语言)编写的,若游戏的协议文件并不是通过C#编写的,会导致无法进行测试。基于上述内容,现有技术中的游戏协议测试方法限制较多。
技术实现思路
本申请实施例提供一种游戏协议测试方法、装置、电子设备和存储介质,以增加游戏协议测试的适用范围。第一方面,本申请实施例提供的一种游戏协议测试方法,包括:获取待测试游戏的协议文件以及协议文件的数据格式,并根据所述协议文件和所述协议文件的数据格式生成协议代码;根据所述协议文件的数据格式对应的环境运行库运行所述协议代码,生成协议对象,并通过反射技术确定所述协议对象的结构信息;对所述协议对象的结构信息进行修改,构建测试数据;通过所述测试数据对所述待测试游戏进行游戏协议测试。第二方面,本申请实施例提供的一种游戏协议测试装置,包括:获取模块,用于获取待测试游戏的协议文件以及协议文件的数据格式,并根据所述协议文件和所述协议文件的数据格式生成协议代码;确定模块,用于根据所述协议文件的数据格式对应的环境运行库运行所述协议代码,生成协议对象,并通过反射技术确定所述协议对象的结构信息;构建模块,用于对所述协议对象的结构信息进行修改,构建测试数据;测试模块,用于通过所述测试数据对所述待测试游戏进行游戏协议测试。第三方面,本申请实施例提供一种计算装置,包括至少一个处理单元、以及至少一个存储单元,其中,存储单元存储有计算机程序,当程序被处理单元执行时,使得处理单元执行上述任意一种游戏协议测试方法的步骤。在一个实施例中,计算装置可以使服务器,也可以是终端设备。第四方面,本申请实施例提供一种计算机可读介质,其存储有可由终端设备执行的计算机程序,当程序在终端设备上运行时,使得终端设备执行上述任意一种游戏协议测试方法的步骤。本申请有益效果如下:本申请实施例提供的游戏协议测试方法、装置、电子设备和存储介质,用于进行游戏协议测试的测试数据是根据通过运行生成的协议代码所得到的协议对象构造得到的,由于在本申请实施例中,游戏的协议文件可能并不是通过C#编写的,因此本申请中,根据游戏的协议文件以及协议文件的数据格式来生成协议代码,并运行生成的协议代码获取协议对象,从而根据协议对象的结构信息构造测试数据。这样,构造的测试数据可以针对不同编程语言编写的协议文件所在的游戏进行协议测试,从而增加了游戏协议测试的适用范围。本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请实施例提供的一个可选的应用场景图;图2为本申请实施例提供的一种游戏协议测试方法的流程图;图3为本申请实施例提供的一种游戏协议测试界面示意图;图4为本申请实施例提供的另一种游戏协议测试界面示意图;图5为本申请实施例提供的第一种模糊测试过程中游戏界面示意图;图6为本申请实施例提供的第二种模糊测试过程中游戏界面示意图;图7为本申请实施例提供的第三种模糊测试过程中游戏界面示意图;图8为本申请实施例提供的第四种模糊测试过程中游戏界面示意图;图9为本申请实施例提供的第一种漏洞测试结果展示图;图10为本申请实施例提供的第二种漏洞测试结果展示图;图11为本申请实施例提供的第三种漏洞测试结果展示图;图12为本申请实施例提供的一种可选的交互实现时序流程示意图;图13为本申请实施例提供的一种游戏协议测试装置的组成结构示意图;图14为本申请实施例提供的一种计算装置的一种硬件组成结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。下面对本申请实施例中涉及的部分概念进行介绍。软件测试,在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。模糊测试(Fuzz测试),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的软件测试技术,常用于检测软件或计算机系统的安全漏洞。变异,特指模糊测试中的按照一定策略对数据进行构造,在本申请实施例中经变异构造得到的可用于进行游戏协议测试的数据;即,测试数据。反射,计算机术语,本申请实施例中,反射即为反射技术,特指在程序运行时获取对象的信息,例如程序集、命名空间、类、字段、属性、方法等,并且动态的创建实例化对象。协议,本申请实施例中指的游戏客户端和游戏服务器之间通信的数据格式。游戏协议测试界面:是一个面向用户的游戏协议测试的平台网页,通过该页面,用户可以选择需要进行协议测试的目标游戏。以游戏协议测试界面为媒介,完成对目标游戏服务器的漏洞检测。打包,也叫序列化,将内存协议对象处理成连续的二进制流数据,用于网络传输。解包,也叫反序列化,将二进制数据流按照协议结构的定义,解析成内存协议对象。发包,游戏客户端和游戏服务器直接的协议数据发送。接口,API(ApplicationProgrammingInterface,应用程序接口),提供一些封装好的功能,方便其他代码调用。本申请实施例中简称为接口。心跳包,就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。C#,一种计算机语言,常用于Unity3D引擎(一种游戏引擎)中,使用该语言进行编程。C++,一种计算机语言,代码需要编译成二进制指令执行。IL2cpp,一种Unity3D引擎编译技术,不再使用Mono(运行C#代码的虚拟机环境)虚拟机,将C#代码转换成C++代码进行编本文档来自技高网...

【技术保护点】
1.一种游戏协议测试方法,其特征在于,所述方法包括:/n获取待测试游戏的协议文件以及协议文件的数据格式,并根据所述协议文件和所述协议文件的数据格式生成协议代码;/n根据所述协议文件的数据格式对应的环境运行库运行所述协议代码,生成协议对象,并通过反射技术确定所述协议对象的结构信息;/n对所述协议对象的结构信息进行修改,构建测试数据;/n通过所述测试数据对所述待测试游戏进行游戏协议测试。/n

【技术特征摘要】
1.一种游戏协议测试方法,其特征在于,所述方法包括:
获取待测试游戏的协议文件以及协议文件的数据格式,并根据所述协议文件和所述协议文件的数据格式生成协议代码;
根据所述协议文件的数据格式对应的环境运行库运行所述协议代码,生成协议对象,并通过反射技术确定所述协议对象的结构信息;
对所述协议对象的结构信息进行修改,构建测试数据;
通过所述测试数据对所述待测试游戏进行游戏协议测试。


2.根据权利要求1所述的方法,其特征在于,若所述协议文件的数据格式为协议缓冲区ProtocolBuffer,且所述协议文件为自定义特性的协议文件,则所述根据所述协议文件和所述协议文件的数据格式生成协议代码,包括:
通过脚本代码屏蔽所述协议文件的自定义特性,并根据所述协议文件和所述协议文件的数据格式生成协议代码。


3.根据权利要求1或2所述的方法,其特征在于,若所述待测试游戏的协议文件为预定格式,所述通过所述测试数据对所述待测试游戏进行游戏协议测试,包括:
对所述测试数据进行序列化,得到二进制数据;
将所述二进制数据发送给待测试游戏客户端,并通过所述待测试游戏客户端将所述二进制数据发送给待测试游戏服务器;
向所述待测试游戏客户端发送检测数据,并接收所述待测试游戏客户端反馈的检测响应,所述检测响应是所述待测试游戏服务器根据所述二进制数据的运行结果确定的;
根据所述检测响应确定游戏协议测试结果。


4.根据权利要求3所述的方法,其特征在于,所述对所述测试数据进行序列化,得到二进制数据,包括:
确定所述待测试游戏客户端的序列化规则;
根据所述序列化规则对所述测试数据进行序列化,得到二进制数据。


5.根据权利要求3所述的方法,其特征在于,所述通过所述测试数据对所述待测试游戏进行游戏协议测试之后,所述方法还包括:
将确定的游戏协议测试结果上传到云端服务器以使所述云端服务器对所述游戏协议测试结果进行展示。


6.一种游戏协议测试装置,其特征在于,包括:
获取模块,用于获取待测试游戏的协议文件以及协议文件的数据格式,并根据所述协议文件和所述协议文件的数据格式生成协议代码;
确定模...

【专利技术属性】
技术研发人员:罗德志王枭周江王建行邱学倩
申请(专利权)人:腾讯科技成都有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1