CN109698771A - 游戏服务器压力测试方法及装置 - Google Patents
游戏服务器压力测试方法及装置 Download PDFInfo
- Publication number
- CN109698771A CN109698771A CN201811496364.8A CN201811496364A CN109698771A CN 109698771 A CN109698771 A CN 109698771A CN 201811496364 A CN201811496364 A CN 201811496364A CN 109698771 A CN109698771 A CN 109698771A
- Authority
- CN
- China
- Prior art keywords
- client
- game server
- pressure test
- game
- operation information
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种游戏服务器压力测试方法及装置。该方法包括:在启动协议监控器后,根据客户端脚本和压力测试脚本,对游戏服务器进行压力测试,客户端脚本用于模拟游戏客户端,压力测试脚本用于调用客户端脚本,以模拟游戏客户端与游戏服务器的交互;从协议监控器获取运行信息,运行信息包括游戏客户端的运行信息和/或游戏服务器的运行信息;根据运行信息,确定是否继续进行游戏服务器的压力测试。本发明实施例提高了游戏服务器压力测试的灵活性。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种游戏服务器压力测试方法及装置。
背景技术
目前,很多游戏采用客户端/服务器的架构,当一个游戏的大量玩家同时接入游戏时,会给游戏服务器带来较大的压力,在实际应用过程中,需要对游戏服务器进行压力测试,以了解游戏服务器的负载能力。
现有技术中在进行游戏服务器的压力测试时,通常是利用游戏服务器与客户端约定的协议创建足够多的进程或者线程用于模拟客户端的行为,进一步将需要的压力测试的功能通过协议接口发送至服务器,从而实现压力测试。
然而,现有技术只能单方面的向服务器发起暴力测试,无法响应服务器发送的信息,从而导致游戏服务器压力测试缺乏灵活性。
发明内容
本发明实施例提供一种游戏服务器压力测试方法及装置,以提高游戏服务器压力测试的灵活性。
第一方面,本发明实施例提供一种游戏服务器压力测试方法,包括:
在启动协议监控器后,根据客户端脚本和压力测试脚本,对所述游戏服务器进行压力测试,所述客户端脚本用于模拟游戏客户端,所述压力测试脚本用于调用所述客户端脚本,以模拟游戏客户端与所述游戏服务器的交互;
从所述协议监控器获取运行信息,所述运行信息包括游戏客户端的运行信息和/或所述游戏服务器的运行信息;
根据所述运行信息,确定是否继续进行游戏服务器的压力测试。
在一种可能的设计中,根据目标运行信息的运行类型以及异常列表,确定是否继续进行游戏服务器的压力测试,所述异常列表中存储有异常运行类型以及对应的异常处理方案,所述目标运行信息为所述游戏客户端的运行信息或所述游戏服务器的运行信息。
在一种可能的设计中,所述根据目标运行信息的运行类型以及异常列表,确实是否继续进行游戏服务器的压力测试,包括:
判断所述运行类型是否与异常列表中的异常运行类型匹配;
若匹配,则获取所述运行类型对应的异常处理方案;
根据所述异常处理方案,确定是否继续进行游戏服务器的压力测试。
在一种可能的设计中,所述异常处理方案具体为如下中的一种:
控制所述游戏客户端重新执行出现异常的步骤;
跳过出现异常的步骤;
停止游戏服务器的压力测试,并输出异常日志及报警通知。
在一种可能的设计中,所述协议监控器用于抓取数据类型为预设协议类型的运行信息,所述运行信息为运行返回状态码。
在一种可能的设计中,所述根据客户端脚本和压力测试脚本,对所述游戏服务器进行压力测试,包括:
根据所述压力测试脚本生成多个进程,每个进程用于模拟一个游戏客户端的行为;
根据所述压力测试脚本,控制各所述游戏客户端调用客户端脚本与所述游戏服务器进行交互。
第二方面,本发明实施例提供一种游戏服务器压力测试装置,包括:
测试模块,用于在启动协议监控器后,根据客户端脚本和压力测试脚本,对所述游戏服务器进行压力测试,所述客户端脚本用于模拟游戏客户端,所述压力测试脚本用于调用所述客户端脚本,以模拟游戏客户端与所述游戏服务器的交互;
获取模块,用于从所述协议监控器获取运行信息,所述运行信息包括游戏客户端的运行信息和/或所述游戏服务器的运行信息;
确定模块,用于根据所述运行信息,确定是否继续进行游戏服务器的压力测试。
在一种可能的设计中,所述确定模块具体用于:
根据目标运行信息的运行类型以及异常列表,确定是否继续进行游戏服务器的压力测试,所述异常列表中存储有异常运行类型以及对应的异常处理方案,所述目标运行信息为所述游戏客户端的运行信息或所述游戏服务器的运行信息。
在一种可能的设计中,所述确定模块具体用于:
判断所述运行类型是否与异常列表中的异常运行类型匹配;
若匹配,则获取所述运行类型对应的异常处理方案;
根据所述异常处理方案,确定是否继续进行游戏服务器的压力测试。
在一种可能的设计中,所述异常处理方案具体为如下中的一种:
控制所述游戏客户端重新执行出现异常的步骤;
跳过出现异常的步骤;
停止游戏服务器的压力测试,并输出异常日志及报警通知。
在一种可能的设计中,所述协议监控器用于抓取数据类型为预设协议类型的运行信息,所述运行信息为运行返回状态码。
在一种可能的设计中,所述测试模块具体用于:
根据所述压力测试脚本生成多个进程,每个进程用于模拟一个游戏客户端的行为;
根据所述压力测试脚本,控制各所述游戏客户端调用客户端脚本与所述游戏服务器进行交互。
第三方面,本发明实施例提供一种游戏服务器压力测试设备,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
本发明实施例提供一种游戏服务器压力测试方法及装置,该方法包括:在启动协议监控器后,根据客户端脚本和压力测试脚本,对游戏服务器进行压力测试,客户端脚本用于模拟游戏客户端,压力测试脚本用于调用客户端脚本,以模拟游戏客户端与游戏服务器的交互。从协议监控器获取运行信息,运行信息包括游戏客户端的运行信息和/或游戏服务器的运行信息。根据运行信息,确定是否继续进行游戏服务器的压力测试。通过设置协议监控器在游戏服务器压力测试过程中,对游戏服务器和游戏客户端的信息交互进行抓取,从而能够获取游戏服务器压力测试的过程中的信息反馈并进行确定是否继续进行压力测试,从而提高游戏服务器压力测试的灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的游戏服务器压力测试方法的***示意图;
图2为本发明实施例提供的游戏服务器压力测试方法的流程图一;
图3为本发明实施例提供的游戏服务器压力测试方法的流程图二;
图4为本发明实施例提供的游戏服务器压力测试装置的结构示意图;
图5为本发明实施例提供的游戏服务器压力测试设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的游戏服务器压力测试方法的***示意图。如图1所示,包括:至少一个客户端(分别记为客户端101-1、客户端101-2、……、客户端101-N)、待测试游戏服务器102以及协议监控器103。
可选的,客户端101设置在服务器内部,用于模拟游戏客户端的行为,其实现方式为将玩家所持有的游戏客户端中依赖游戏客户端引擎所执行的功能对应的代码进行替换,其中待替换的功能例如可以包括游戏渲染功能、地图碰撞功能或者游戏界面接口等,本发明实施例对待替换的功能不做特别限定。
进一步地,替换后得到客户端脚本,其中客户端脚本用于模拟游戏客户端,并且替换后的客户端脚本可以运行于游戏服务器上,其次压力测试脚本调用客户端脚本从而创建机器人实现对游戏客户端的模拟。在图2所示的实施例中对客户端脚本和压力测试脚本进行详细说明,此处不再进行赘述。
可选的,待测试游戏服务器102为需要进行压力测试的游戏服务器,待测试游戏服务器102中加载有游戏的多个脚本,以使客户端和待测试游戏服务器102之间可以执行游戏的逻辑交互。可选的,待测试游戏服务器102可以为基于游戏引擎的服务器。
可选的,协议监控器103例如可以为待测试游戏服务器102的一个模块,其中协议监控器103可以对客户端101与待测试游戏服务器102之间交互的信息进行抓取,其中交互的信息例如可以为客户端101向服务器102发送的战斗数据,还例如可以为服务器102向客户端101返回的状态反馈等,本发明实施例对此不做限制。
需要说明的是,上述只是以示例的形式示意游戏服务器压力测试的架构,并非对游戏服务器压力测试的架构的限定。在实际应用过程中,可以根据实际需要设置上述架构,例如,图1所示意的***中的客户端的个数可以为1个,或者图1中所示意的***中客户端101为游戏服务器的一部分等。
在本实施例中,压力测试脚本调用客户端脚本从而实现机器人的压力测试,协议监控器在此过程中对信息进行抓取,从而能够对服务器或者客户端的反馈信息进行响应,从而提高游戏服务器压力测试的灵活性,下面结合图2对本发明实施例提供的游戏服务器压力测试方法进行进一步地详细介绍。
图2为本发明实施例提供的游戏服务器压力测试方法的流程图一。如图2所示,该方法包括:
S201、在启动协议监控器后,根据客户端脚本和压力测试脚本,对游戏服务器进行压力测试,客户端脚本用于模拟游戏客户端,压力测试脚本用于调用客户端脚本,以模拟游戏客户端与游戏服务器的交互。
具体的,客户端脚本用于模拟游戏客户端,其中客户端脚本是将客户端代码中依赖客户端执行的功能进行替换后得到的脚本,此处对待替换的功能不做特别限制,替换之后的客户端脚本可以运行在游戏服务器上,从而实现在游戏服务器上对游戏客户端的环境的模拟,本发明实施例对客户端脚本的实现方式不做特别限制。
进一步地,压力测试脚本用于调用客户端脚本,从而模拟游戏客户端与游戏服务器的交互,具体的,玩家在进行游戏的过程中,在游戏客户端会进行一系列操作从而保证游戏的进行,在此过程中需要游戏客户端与游戏服务器进行信息交互,其中的信息交互例如可以为游戏客户端向游戏服务器发送登录请求,还例如可以为游戏客户端向游戏服务器发送匹配请求等,本发明实施例对此不做限制。
在本实施例中,客户端脚本模拟的游戏客户端相当于玩家所操作的游戏客户端,而压力测试脚本则相当于模拟玩家在游戏客户端上所进行的具体操作,例如压力测试脚本可以通过创建大量登陆进程调用客户端脚本,其中登陆进程运行在客户端脚本上用于模拟大量玩家的登陆操作,还例如可以通过压力测试脚本创建匹配的线程用于模拟玩家的匹配操作,本发明实施例对此不做限制。
进一步地,游戏服务器接收到大量的登陆请求,对登录请求进行处理从而实现对游戏客户端与游戏服务器的交互的模拟,其中的创建登陆进程只是示例性的对压力测试脚本进行介绍,本发明实施例对压力测试脚本不做特别限制,本领域技术人员可以理解,其中压力测试脚本以及压力测试脚本所模拟的具体的压力测试行为可以根据实际需要自行设定。
在本实施例中,协议监控器用于对游戏客户端和游戏服务器之间的信息交互进行抓取,具体的,在进行游戏服务器压力测试之前首先启动协议监控器,在进行游戏服务器压力测试的过程中协议监控器实时对游戏客户端和游戏服务器进行交互的每一条信息进行抓取并对抓取的信息进行识别,本发明实施例对协议监控器的具体实现方式不做特别限制。
具体的,根据客户端脚本和压力测试脚本实现对游戏客户端的模拟,对游戏服务器进行压力测试,本发明实施例对压力测试的程度以及方式均不做特别限制,在压力测试过程中协议监控器对游戏客户端和游戏服务器之间的信息交互进行抓取。
S202、从协议监控器获取运行信息,运行信息包括游戏客户端的运行信息和/或游戏服务器的运行信息。
进一步地,协议监控器抓取的游戏客户端和游戏服务器之间交互的信息包括运行信息,其中运行信息指示了游戏客户端和游戏服务器的运行状态或者对相关指令执行的反馈,具体的,运行信息包括游戏客户端的运行信息和/或游戏服务器的运行信息。
具体的,其中游戏客户端的运行信息例如可以为游戏战斗信息更新,其中游戏战斗信息更新用于指示在战斗过程中玩家的位置是否持续不变,若确定玩家的位置持续不变,游戏客户端例如可以向游戏服务器发送游戏战斗信息更新为“FRAME_UPDATE”的运行信息,游戏服务器接收到该运行信息确定游戏客户端发生卡顿,在此过程中协议监控器对“FRAME_UPDATE”的运行信息进行抓取。
可选地,其中游戏服务器的运行信息例如可以为登录情况,其中登录情况用于指示游戏服务器对游戏客户端发送的登录请求的处理反馈,例如游戏服务器对登录请求处理失败时,可以向游戏客户端发送登录情况为“1”的运行信息,游戏客户端接收到该运行信息则明确登录失败,在此过程中协议监控器对“1”的运行信息进行抓取,以上的运行信息均为示例性的说明,本发明实施例对运行信息不做特别限制。
具体的,对协议监控器抓取的运行信息进行获取,其中获取的方式例如可以为协议监控器中配置有数据库,从数据库中定时进行读取,还例如可以为在协议监控器中配置有触发器,当触发器比对得知当前运行信息需要处理时,将该运行信息发送至对应的模块,本发明实施例对获取运行数据的具体方式不做特别限制。
可选地,协议监控器还可以用于对游戏客户端自身的状态反馈进行抓取,例如当前游戏客户端对玩家触发的操作进行处理并生成相应的反馈信息,该反馈信息反馈至游戏客户端,在此过程中协议监控器对该反馈信息可以进行抓取。
S203、根据运行信息,确定是否继续进行游戏服务器的压力测试。
具体的,获取的运行信息指示了游戏客户端和/或游戏服务器的运行状态或者对于指令执行情况的反馈,其中运行信息可以包括游戏客户端和/或游戏服务器正常工作情况下的信息,还可以包括游戏客户端和/或游戏服务器出现异常情况下的信息,本发明实施例对正常工作和异常情况不做特别限制。
进一步地,游戏客户端和/或游戏服务器出现异常情况下的信息例如可以包括需要处理的异常,还例如可以包括不需要处理的异常,其中不需要处理的异常例如可以为游戏客户端和游戏服务器的战斗数据不同步等,当从协议***中获取到不需要处理的异常时,可以忽略该异常从而继续进行游戏服务器的压力测试,当获取到需要处理的异常时,可以根据预设的异常处理方案对该异常进行处理,并且进一步判断是否需要结束当前的游戏服务器的压力测试。
可选地,当从协议监控器中获取到未出现过的异常时,忽略该异常并且继续进行游戏服务器的压力测试,本发明实施例对异常情况不做特别限制,本领域技术人员可以理解,上述提到的需要处理的异常、不需要处理的异常以及未出现过的异常可以根据实际需要进行设计。
本发明实施例提供的游戏服务器压力测试方法,包括:在启动协议监控器后,根据客户端脚本和压力测试脚本,对游戏服务器进行压力测试,客户端脚本用于模拟游戏客户端,压力测试脚本用于调用客户端脚本,以模拟游戏客户端与游戏服务器的交互。从协议监控器获取运行信息,运行信息包括游戏客户端的运行信息和/或游戏服务器的运行信息。根据运行信息,确定是否继续进行游戏服务器的压力测试。通过设置协议监控器在游戏服务器压力测试过程中,对游戏服务器和游戏客户端的信息交互进行抓取,从而能够获取游戏服务器压力测试的过程中的信息反馈并进行确定是否继续进行压力测试,从而提高游戏服务器压力测试的灵活性。
在上述实施例的基础上,下面结合图3对本发明实施例提供的游戏服务器压力测试方法进行进一步地详细介绍。
图3为本发明实施例提供的游戏服务器压力测试方法的流程图二。如图3所示,该方法包括:
S301、在启动协议监控器后,根据压力测试脚本生成多个进程,每个进程用于模拟一个游戏客户端的行为。
具体的,启动协议监控器之后,根据需要的压测行为控制压力测试脚本生成多个进程,其中需要的压测行为例如可以为登录行为,还例如可以为匹配行为等,本发明实施例对此不做特别限制,在本实施例中,游戏服务器压力测试的目的是通过测试了解游戏服务器的负载能力,因此需要设置多个客户端执行同一个压测行为,从而了解到游戏服务器在同一时刻或者一个时间范围内能承受的负载的限制。
进一步地,压力测试脚本生成多个进程,本发明实施例对生成的进程的数量不做特别限制,本领域技术人员可以理解,在具体实施过程中,生成进程的数量可以根据需求自行设定,可选地,压力测试脚本可以在同一时刻生成多个相同压测行为对应的进程,例如可以在同一时刻生成多个登录进程,还可以在同一时刻生成多个不同压测行为对应的进程,例如可以在同一时刻同时生成登录进程、匹配进程、战斗进程等,本发明实施例对此不做限制。
具体的,每一个进程用于模拟一个游戏客户端的行为,其中游戏客户端的行为即为玩家的操作所触发的游戏客户端的行为,例如可以为登录、匹配或者释放技能等,本发明实施例对此不做限制。
S302、根据压力测试脚本,控制各游戏客户端调用客户端脚本与游戏服务器进行交互。
在本实施例中,游戏客户端中具体行为的实现需要游戏客户端的环境对该行为进行解析,并进一步在游戏客户端对该行为进行处理或者将该行为对应的信息发送至服务器,其中客户端脚本用于模拟游戏客户端,并且客户端脚本可以运行在游戏服务器上,从而保证压力测试脚本创建的进程能够实现具体的压测行为。
具体的,压力测试脚本用于模拟游戏客户端于游戏服务器的交互,在需要的压测行为对应的进程被创建之后,压力测试脚本进一步控制该进程调用客户端脚本,从而实现具体的压测行为,例如当前创建有大量的登录进程,压力测试脚本控制的登录进程调用客户端脚本,通过客户端脚本向服务器发送登录请求,服务器对登录请求进行处理从而实现登录的压测行为,以上只是示例性的进行介绍,本发明实施例对压测行为不做特别限制。
S303、从协议监控器获取运行信息,运行信息包括游戏客户端的运行信息和/或游戏服务器的运行信息。
其中,S303的实现方式与S202的实现方式类似,此处不再赘述。
S304、判断运行类型是否与异常列表中的异常运行类型匹配。若是,则执行S305,若否,则执行S304。
在本实施例中,运行信息对应运行类型,其中运行类型是指游戏客户端和/或游戏服务器所对应的运行状态,下面结合表1对运行信息进行详细介绍。
表1
如表1所示,运行类型例如可以为游戏服务器登录成功、游戏服务器登录失败等,并且每一个运行类型对应各自的运行信息,从而标识了游戏客户端和/或服务器的运行状态,本实施例对每一种运行类型对应的下一步处理也进行了预设,在本发明实施例中,运行类型以及对应的处理方案均为预设,表1中只是示例性的进行介绍,本发明实施例对运行类型以及对应的处理方案不做特别限制,本领域技术人员可以理解,运行类型以及对应的处理方案可以根据实际需要进行设计。
进一步地,本发明实施例还维护一个异常列表,其中异常列表纪录异常运行类型与对应的异常处理方案,具体的,异常处理类型即为上述表1中提到的运行类型中被认为是异常的运行类型,本领域技术人员可以理解,对于异常处理类型的划分可以根据需要自行设计,此处不做特别限制,进一步的,异常处理方案用于对异常运行类型进行处理,异常列表与表1类似,其中记录的内容为被归类为异常的内容,此处不再赘述。
可选地,其中异常处理方案具体为如下中的一种:控制游戏客户端重新执行出现异常的步骤、跳过出现异常的步骤、停止游戏服务器的压力测试,并输出异常日志及报警通知。
具体的,协议监控器用于抓取数据类型为预设协议类型的运行信息,运行信息为运行返回状态码,其中预设协议类型即为上述表1中所示例的运行类型,其中运行返回码即为上述表1中所示例的运行信息,例如“6”、“EventOnPlayerMatchSucc”等,本发明实施例对此不做限制。
在本实施例中,通过协议监控器获取到游戏服务器和/或游戏客户端的运行信息之后,根据运行信息中的运行类型与异常列表中的异常运行类型进行匹配,本发明实施例通过预设运行类型与对应的处理方案,以及通过维护异常列表,从而实现对异常情况的预设以及对应处理方案的预设,从而保证在游戏服务器压力测试的过程对异常情况的及时处理或者记录,从而更好的模拟玩家进行游戏服务器压力测试。
S305、获取运行类型对应的异常处理方案。
S306、根据异常处理方案,确定是否继续进行游戏服务器的压力测试。
进一步地,若确定运行类型与异常列表中的异常运行匹配,则可以确定当前游戏服务器压力测试的过程中发生异常,则根据异常列表获取对应的异常处理方案,根据异常处理方案确定是否继续进行压力测试,其中异常例如可以划分为需要处理的异常与不需要处理的异常,
在本实施例中,对于不需要处理的异常,其异常处理方案例如可以为跳过出现异常的步骤,对于需要处理的异常,其异常处理方案例如可以为停止游戏服务器的压力测试,并输出异常日志及报警通知等,以上只是示例性的进行介绍,本发明实施例对此不做特别限制。
可选地,对于预设过程中未考虑到的运行类型或者以前没有出现过的运行类型,本发明实施例确定这类运行类型为不需要处理的运行类型,其对应的方案例如可以为跳过出现异常的步骤,并输出异常日志等。
本发明实施例提供的游戏服务器压力测试方法,包括:在启动协议监控器后,根据压力测试脚本生成多个进程,每个进程用于模拟一个游戏客户端的行为。根据压力测试脚本,控制各游戏客户端调用客户端脚本与游戏服务器进行交互。从协议监控器获取运行信息,运行信息包括游戏客户端的运行信息和/或游戏服务器的运行信息。判断运行类型是否与异常列表中的异常运行类型匹配。若匹配,则获取运行类型对应的异常处理方案。根据异常处理方案,确定是否继续进行游戏服务器的压力测试。通过协议监控器获取运行信息,并且根据运行信息中的运行类型与异常列表进行比对,从而对游戏服务器压力测试过程中出现的异常情况进行及时处理或者记录,使得游戏服务器压力测试的过程更接近真实玩家的模拟操作,从而提高游戏服务器压力测试的灵活性。
图4为本发明实施例提供的游戏服务器压力测试装置的结构示意图。如图4所示,该游戏服务器压力测试装置40包括:测试模块401、获取模块402以及确定模块403。
测试模块401,用于在启动协议监控器后,根据客户端脚本和压力测试脚本,对游戏服务器进行压力测试,客户端脚本用于模拟游戏客户端,压力测试脚本用于调用客户端脚本,以模拟游戏客户端与游戏服务器的交互;
获取模块402,用于从协议监控器获取运行信息,运行信息包括游戏客户端的运行信息和/或游戏服务器的运行信息;
确定模块403,用于根据运行信息,确定是否继续进行游戏服务器的压力测试。
可选地,确定模块403具体用于:
根据目标运行信息的运行类型以及异常列表,确定是否继续进行游戏服务器的压力测试,异常列表中存储有异常运行类型以及对应的异常处理方案,目标运行信息为游戏客户端的运行信息或游戏服务器的运行信息。
可选地,确定模块403具体用于:
判断运行类型是否与异常列表中的异常运行类型匹配;
若匹配,则获取运行类型对应的异常处理方案;
根据异常处理方案,确定是否继续进行游戏服务器的压力测试。
可选地,异常处理方案具体为如下中的一种:
控制游戏客户端重新执行出现异常的步骤;
跳过出现异常的步骤;
停止游戏服务器的压力测试,并输出异常日志及报警通知。
可选地,协议监控器用于抓取数据类型为预设协议类型的运行信息,运行信息为运行返回状态码。
可选地,测试模块401具体用于:
根据压力测试脚本生成多个进程,每个进程用于模拟一个游戏客户端的行为;
根据压力测试脚本,控制各游戏客户端调用客户端脚本与游戏服务器进行交互。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图5为本发明实施例提供的游戏服务器压力测试设备的硬件结构示意图,如图5所示,本实施例的游戏服务器压力测试设备50包括:处理器501以及存储器502;其中
存储器502,用于存储计算机执行指令;
处理器501,用于执行存储器存储的计算机执行指令,以实现上述实施例中游戏服务器压力测试装置所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器502既可以是独立的,也可以跟处理器501集成在一起。
当存储器502独立设置时,该游戏服务器压力测试设备还包括总线503,用于连接所述存储器502和处理器501。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上游戏服务器压力设备所执行的游戏服务器压力测试方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种游戏服务器压力测试方法,其特征在于,所述方法包括:
在启动协议监控器后,根据客户端脚本和压力测试脚本,对所述游戏服务器进行压力测试,所述客户端脚本用于模拟游戏客户端,所述压力测试脚本用于调用所述客户端脚本,以模拟游戏客户端与所述游戏服务器的交互;
从所述协议监控器获取运行信息,所述运行信息包括游戏客户端的运行信息和/或所述游戏服务器的运行信息;
根据所述运行信息,确定是否继续进行游戏服务器的压力测试。
2.根据权利要求1所述的方法,其特征在于,所述根据所述运行信息,确定是否继续进行游戏服务器的压力测试,包括:
根据目标运行信息的运行类型以及异常列表,确定是否继续进行游戏服务器的压力测试,所述异常列表中存储有异常运行类型以及对应的异常处理方案,所述目标运行信息为所述游戏客户端的运行信息或所述游戏服务器的运行信息。
3.根据权利要求2所述的方法,其特征在于,所述根据目标运行信息的运行类型以及异常列表,确实是否继续进行游戏服务器的压力测试,包括:
判断所述运行类型是否与异常列表中的异常运行类型匹配;
若匹配,则获取所述运行类型对应的异常处理方案;
根据所述异常处理方案,确定是否继续进行游戏服务器的压力测试。
4.根据权利要求2或3所述的方法,其特征在于,所述异常处理方案具体为如下中的一种:
控制所述游戏客户端重新执行出现异常的步骤;
跳过出现异常的步骤;
停止游戏服务器的压力测试,并输出异常日志及报警通知。
5.根据权利要求1所述的方法,其特征在于,所述协议监控器用于抓取数据类型为预设协议类型的运行信息,所述运行信息为运行返回状态码。
6.根据权利要求1所述的方法,其特征在于,所述根据客户端脚本和压力测试脚本,对所述游戏服务器进行压力测试,包括:
根据所述压力测试脚本生成多个进程,每个进程用于模拟一个游戏客户端的行为;
根据所述压力测试脚本,控制各所述游戏客户端调用客户端脚本与所述游戏服务器进行交互。
7.一种游戏服务器压力测试装置,其特征在于,包括:
测试模块,用于在启动协议监控器后,根据客户端脚本和压力测试脚本,对所述游戏服务器进行压力测试,所述客户端脚本用于模拟游戏客户端,所述压力测试脚本用于调用所述客户端脚本,以模拟游戏客户端与所述游戏服务器的交互;
获取模块,用于从所述协议监控器获取运行信息,所述运行信息包括游戏客户端的运行信息和/或所述游戏服务器的运行信息;
确定模块,用于根据所述运行信息,确定是否继续进行游戏服务器的压力测试。
8.根据权利要求7所述的装置,其特征在于,所述确定模块具体用于:
根据目标运行信息的运行类型以及异常列表,确定是否继续进行游戏服务器的压力测试,所述异常列表中存储有异常运行类型以及对应的异常处理方案,所述目标运行信息为所述游戏客户端的运行信息或所述游戏服务器的运行信息。
9.一种游戏服务器压力测试设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1至6中任一所述的方法。
10.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811496364.8A CN109698771B (zh) | 2018-12-07 | 2018-12-07 | 游戏服务器压力测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811496364.8A CN109698771B (zh) | 2018-12-07 | 2018-12-07 | 游戏服务器压力测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109698771A true CN109698771A (zh) | 2019-04-30 |
CN109698771B CN109698771B (zh) | 2021-04-20 |
Family
ID=66230390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811496364.8A Active CN109698771B (zh) | 2018-12-07 | 2018-12-07 | 游戏服务器压力测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109698771B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209588A (zh) * | 2019-06-04 | 2019-09-06 | 网易(杭州)网络有限公司 | 游戏服务端测试方法、装置、电子设备及介质 |
CN110362474A (zh) * | 2019-06-13 | 2019-10-22 | 上海紫翊网络科技有限公司 | 一种分布式游戏测试方法、***、装置及存储介质 |
CN110895509A (zh) * | 2019-11-15 | 2020-03-20 | 泰康保险集团股份有限公司 | 一种测试处理方法、装置、电子设备及存储介质 |
CN111314165A (zh) * | 2019-12-18 | 2020-06-19 | 上海米哈游天命科技有限公司 | 一种游戏服务器确定方法、装置、服务器和介质 |
CN111338865A (zh) * | 2020-02-19 | 2020-06-26 | 北京字节跳动网络技术有限公司 | 一种测试方法、装置、及计算机可读存储介质 |
CN112148599A (zh) * | 2020-09-16 | 2020-12-29 | 上海中通吉网络技术有限公司 | 性能压测方法、装置及设备 |
CN112162926A (zh) * | 2020-09-30 | 2021-01-01 | 新华三大数据技术有限公司 | 一种自动化测试方法及装置 |
CN112416797A (zh) * | 2020-12-02 | 2021-02-26 | 未来汽车科技(深圳)有限公司 | 嵌入式软件运行异常时自动报警及维持现场的方法及*** |
CN113765862A (zh) * | 2020-06-05 | 2021-12-07 | 腾讯科技(成都)有限公司 | 游戏协议测试的方法、装置、设备及计算机可读存储介质 |
CN114191822A (zh) * | 2021-11-19 | 2022-03-18 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置、计算机设备、存储介质和产品 |
CN114328196A (zh) * | 2021-12-16 | 2022-04-12 | 北京明朝万达科技股份有限公司 | 数据防泄漏***的测试方法、装置、设备及存储介质 |
CN114615171A (zh) * | 2022-03-16 | 2022-06-10 | 网易(杭州)网络有限公司 | 云游戏服务器的压测处理方法、设备、介质及程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075384A (zh) * | 2010-12-20 | 2011-05-25 | 创新科存储技术有限公司 | 一种性能测试***及方法 |
CN103916283A (zh) * | 2012-12-31 | 2014-07-09 | 北京新媒传信科技有限公司 | 服务器压力测试***和方法 |
US20140298101A1 (en) * | 2013-03-29 | 2014-10-02 | Inventec Corporation | Distributed pressure testing system and method |
CN105487965A (zh) * | 2015-12-28 | 2016-04-13 | 北京畅游天下网络技术有限公司 | 一种通用的服务器压力测试方法及装置 |
CN105959177A (zh) * | 2016-04-26 | 2016-09-21 | 网易(杭州)网络有限公司 | 一种游戏服务器压力测试脚本的生成方法和装置 |
CN106201854A (zh) * | 2015-05-04 | 2016-12-07 | 北京畅游天下网络技术有限公司 | 一种基于套接字的服务器负载测试方法及*** |
CN107783894A (zh) * | 2016-08-26 | 2018-03-09 | 上海计算机软件技术开发中心 | 一种多任务多终端移动应用测试方法及其*** |
-
2018
- 2018-12-07 CN CN201811496364.8A patent/CN109698771B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075384A (zh) * | 2010-12-20 | 2011-05-25 | 创新科存储技术有限公司 | 一种性能测试***及方法 |
CN103916283A (zh) * | 2012-12-31 | 2014-07-09 | 北京新媒传信科技有限公司 | 服务器压力测试***和方法 |
US20140298101A1 (en) * | 2013-03-29 | 2014-10-02 | Inventec Corporation | Distributed pressure testing system and method |
CN106201854A (zh) * | 2015-05-04 | 2016-12-07 | 北京畅游天下网络技术有限公司 | 一种基于套接字的服务器负载测试方法及*** |
CN105487965A (zh) * | 2015-12-28 | 2016-04-13 | 北京畅游天下网络技术有限公司 | 一种通用的服务器压力测试方法及装置 |
CN105959177A (zh) * | 2016-04-26 | 2016-09-21 | 网易(杭州)网络有限公司 | 一种游戏服务器压力测试脚本的生成方法和装置 |
CN107783894A (zh) * | 2016-08-26 | 2018-03-09 | 上海计算机软件技术开发中心 | 一种多任务多终端移动应用测试方法及其*** |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209588A (zh) * | 2019-06-04 | 2019-09-06 | 网易(杭州)网络有限公司 | 游戏服务端测试方法、装置、电子设备及介质 |
CN110209588B (zh) * | 2019-06-04 | 2023-06-13 | 网易(杭州)网络有限公司 | 游戏服务端测试方法、装置、电子设备及介质 |
CN110362474A (zh) * | 2019-06-13 | 2019-10-22 | 上海紫翊网络科技有限公司 | 一种分布式游戏测试方法、***、装置及存储介质 |
CN110895509B (zh) * | 2019-11-15 | 2023-04-18 | 泰康保险集团股份有限公司 | 一种测试处理方法、装置、电子设备及存储介质 |
CN110895509A (zh) * | 2019-11-15 | 2020-03-20 | 泰康保险集团股份有限公司 | 一种测试处理方法、装置、电子设备及存储介质 |
CN111314165A (zh) * | 2019-12-18 | 2020-06-19 | 上海米哈游天命科技有限公司 | 一种游戏服务器确定方法、装置、服务器和介质 |
CN111338865A (zh) * | 2020-02-19 | 2020-06-26 | 北京字节跳动网络技术有限公司 | 一种测试方法、装置、及计算机可读存储介质 |
CN113765862A (zh) * | 2020-06-05 | 2021-12-07 | 腾讯科技(成都)有限公司 | 游戏协议测试的方法、装置、设备及计算机可读存储介质 |
CN113765862B (zh) * | 2020-06-05 | 2024-02-09 | 腾讯科技(成都)有限公司 | 游戏协议测试的方法、装置、设备及计算机可读存储介质 |
CN112148599A (zh) * | 2020-09-16 | 2020-12-29 | 上海中通吉网络技术有限公司 | 性能压测方法、装置及设备 |
CN112162926A (zh) * | 2020-09-30 | 2021-01-01 | 新华三大数据技术有限公司 | 一种自动化测试方法及装置 |
CN112416797A (zh) * | 2020-12-02 | 2021-02-26 | 未来汽车科技(深圳)有限公司 | 嵌入式软件运行异常时自动报警及维持现场的方法及*** |
CN114191822A (zh) * | 2021-11-19 | 2022-03-18 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置、计算机设备、存储介质和产品 |
CN114191822B (zh) * | 2021-11-19 | 2023-07-25 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置、计算机设备、存储介质和产品 |
CN114328196A (zh) * | 2021-12-16 | 2022-04-12 | 北京明朝万达科技股份有限公司 | 数据防泄漏***的测试方法、装置、设备及存储介质 |
CN114615171A (zh) * | 2022-03-16 | 2022-06-10 | 网易(杭州)网络有限公司 | 云游戏服务器的压测处理方法、设备、介质及程序产品 |
CN114615171B (zh) * | 2022-03-16 | 2024-01-30 | 网易(上海)网络有限公司 | 云游戏服务器的压测处理方法、设备、介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN109698771B (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109698771A (zh) | 游戏服务器压力测试方法及装置 | |
CN103201724B (zh) | 在高可用性虚拟机环境中提供高可用性应用程序 | |
CN104160378B (zh) | 用于启用分布式计算***中的容错功能的方法和*** | |
CN104978261B (zh) | 应用程序的测试方法、装置及*** | |
CN109359003B (zh) | 游戏服务器压力测试方法、装置及设备 | |
CN109308252A (zh) | 一种故障定位处理方法及装置 | |
EP3958152B1 (en) | Attack scenario simulation device, attack scenario generation system, and attack scenario generation method | |
CN116055566B (zh) | 网络靶场的通信方法、装置、设备及存储介质 | |
EP4095700A1 (en) | Method and system for micro-service testing, and storage medium | |
CN112732499A (zh) | 一种基于微服务架构的测试方法、装置及计算机*** | |
CN107392018A (zh) | 应用程序脱壳方法及装置 | |
CN109063481A (zh) | 一种风险检测方法和装置 | |
CN114448828B (zh) | 存储双活功能测试方法、***、终端及存储介质 | |
CN107679423A (zh) | 分区完整性检查方法及装置 | |
CN110489334A (zh) | 一种***联调测试处理方法及装置 | |
CN109450724A (zh) | 一种nfs内存优化功能的测试方法及相关装置 | |
CN112516598B (zh) | 游戏服务故障的处理方法、装置、服务器及介质 | |
Urgese et al. | Top-down profiling of application specific many-core neuromorphic platforms | |
WO2004038593A1 (ja) | セキュリティホール診断システム | |
CN115759518A (zh) | 基于混沌工程的可用性治理*** | |
CN116032728A (zh) | 用于微服务环境的智能访问方法、*** | |
CN108898677A (zh) | 操作检测方法及装置 | |
CN113900933A (zh) | 一种测试方法和相关装置 | |
CN113821443A (zh) | 应用程序的功能检测方法、装置、设备及存储介质 | |
CN111563030A (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 |