CN109359003B - 游戏服务器压力测试方法、装置及设备 - Google Patents

游戏服务器压力测试方法、装置及设备 Download PDF

Info

Publication number
CN109359003B
CN109359003B CN201811266872.7A CN201811266872A CN109359003B CN 109359003 B CN109359003 B CN 109359003B CN 201811266872 A CN201811266872 A CN 201811266872A CN 109359003 B CN109359003 B CN 109359003B
Authority
CN
China
Prior art keywords
script
client
game
robot
game server
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
Application number
CN201811266872.7A
Other languages
English (en)
Other versions
CN109359003A (zh
Inventor
杨强
柳建平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201811266872.7A priority Critical patent/CN109359003B/zh
Publication of CN109359003A publication Critical patent/CN109359003A/zh
Application granted granted Critical
Publication of CN109359003B publication Critical patent/CN109359003B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供一种游戏服务器压力测试方法、装置及设备,该方法包括:在客户端游戏脚本中确定用户界面类型的第一脚本;在客户端游戏脚本对第一脚本执行第一处理操作,得到用于模拟游戏客户端行为的机器人脚本,第一处理操作用于使得客户端根据机器人脚本不执行用户界面操作;根据机器人脚本和压力测试脚本,对待测试游戏服务器进行压力测试,压力测试脚本用于调用机器人脚本,以使客户端根据机器人脚本与待测试游戏服务器进行交互。提高了对游戏服务器进行压力测试的准确性。

Description

游戏服务器压力测试方法、装置及设备
技术领域
本发明实施例涉及测试技术领域,尤其涉及一种游戏服务器压力测试方法、装置及设备。
背景技术
目前,很多游戏采用客户端/服务器的架构。当一个游戏的大量玩家同时接入游戏时,会给游戏服务器带来较大的压力。
在实际应用过程中,需要对游戏服务器进行压力测试,以了解游戏服务器的负载能力。在现有技术中,通常由测试人员根据游戏的客户端脚本,编写机器人脚本,机器人脚本中通常包括客户端脚本中基本的接口,例如,基本的接口用于实现游戏登录功能、场景跳转功能、位置同步功能等。测试人员还编写压力测试脚本,并在客户端中加载机器人脚本和压力测试脚本,在测试过程中,压力测试脚本调用机器人脚本中的接口,以使客户端根据机器人脚本中的接口与游戏服务器进行交互,进而实现对游戏服务器进行压力测试。
然而,由于机器人脚本中仅包括客户端脚本中基本的接口,使得压力测试仅能模拟基本的游戏操作,导致对游戏服务器的压力测试过程与真实游戏玩家的游戏过程相差较多,进而导致对游戏服务器进行压力测试的准确性较低。
发明内容
本发明实施例提供一种游戏服务器压力测试方法、装置及设备,提高了对游戏服务器进行压力测试的准确性。
第一方面,本发明实施例提供一种游戏服务器压力测试方法,应用于客户端,所述方法包括:
在客户端游戏脚本中确定用户界面类型的第一脚本;
在所述客户端游戏脚本对所述第一脚本执行第一处理操作,得到用于模拟游戏客户端行为的机器人脚本,所述第一处理操作用于使得所述客户端根据所述机器人脚本不执行用户界面操作;
根据所述机器人脚本和压力测试脚本,对待测试游戏服务器进行压力测试,所述压力测试脚本用于调用所述机器人脚本,以使所述客户端根据所述机器人脚本与所述待测试游戏服务器进行交互。
在一种可能的实施方式中,在所述客户端游戏脚本对所述第一脚本执行第一处理操作,包括:
在所述客户端游戏脚本中删除所述第一脚本;或者,
将所述第一脚本修改为预设脚本,所述预设脚本用于使得所述客户端执行空操作。
在另一种可能的实施方式中,所述客户端游戏脚本包括多个文件;所述在客户端的游戏脚本中确定用户界面类型的第一脚本,包括:
在所述多个文件中确定至少一个第一文件,所述第一文件的文件名中包括预设字符;
将所述第一文件中的脚本确定为所述第一脚本。
在另一种可能的实施方式中,所述根据所述机器人脚本和压力测试脚本,对所述待测试游戏服务器进行测试,包括:
在外网游戏服务器中获取至少一个游戏角色的属性信息,所述外网游戏服务器为与真实游戏客户端进行交互的服务器;
根据所述至少一个游戏角色的属性信息,在所述客户端中创建至少一个机器人角色;
根据所述机器人脚本、所述压力测试脚本和每个机器人角色的属性信息,对所述待测试游戏服务器进行压力测试。
在另一种可能的实施方式中,所述方法还包括:
创建所述待测试游戏服务器的第一数据库;
通过预设指令将外网游戏服务器的第二数据库中的数据拷贝至所述第一数据库,所述第一数据库和所述第二数据库的数据库名称相同。
第二方面,本发明实施例提供一种游戏服务器压力测试装置,包括确定模块、脚本处理模块和测试模块,其中,
所述确定模块用于,在客户端游戏脚本中确定用户界面类型的第一脚本;
所述脚本处理模块用于,在所述客户端游戏脚本对所述第一脚本执行第一处理操作,得到用于模拟游戏客户端行为的机器人脚本,所述第一处理操作用于使得客户端根据所述机器人脚本不执行用户界面操作;
所述测试模块用于,根据所述机器人脚本和压力测试脚本,对所述待测试游戏服务器进行压力测试,所述压力测试脚本用于调用所述机器人脚本,以使所述客户端根据所述机器人脚本与所述待测试游戏服务器进行交互。
在一种可能的实施方式中,所述脚本处理模块用于:
在所述客户端游戏脚本中删除所述第一脚本;或者,
将所述第一脚本修改为预设脚本,所述预设脚本用于使得所述客户端执行空操作。
在另一种可能的实施方式中,所述客户端游戏脚本包括多个文件,所述确定模块具体用于:
在所述多个文件中确定至少一个第一文件,所述第一文件的文件名中包括预设字符;
将所述第一文件中的脚本确定为所述第一脚本。
在另一种可能的实施方式中,所述测试模块具体用于:
在外网游戏服务器中获取至少一个游戏角色的属性信息,所述外网游戏服务器为与真实游戏客户端进行交互的服务器;
根据所述至少一个游戏角色的属性信息,在所述客户端中创建至少一个机器人角色;
根据所述机器人脚本、所述压力测试脚本和每个机器人角色的属性信息,对所述待测试游戏服务器进行压力测试。
在另一种可能的实施方式中,所述装置还包括创建模块和拷贝模块,其中,
所述创建模块用于,创建所述待测试游戏服务器的第一数据库;
所述拷贝模块用于,通过预设指令将外网游戏服务器的第二数据库中的数据拷贝至所述第一数据库,所述第一数据库和所述第二数据库的数据库名称相同。
第三方面,本发明实施例提供一种游戏服务器压力测试装置,包括存储器和处理器,所述处理器执行所述存储器中的程序指令,用于实现上述第一方面任一项所述的游戏服务器压力测试方法。
第四方面,本发明实施例提供一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于实现上述第一方面任一项所述的游戏服务器压力测试方法。
本发明实施例提供的游戏服务器压力测试方法、装置及设备,在生成机器人脚本中,先在客户端游戏脚本中确定UI类型的第一脚本,并在客户端游戏脚本中对第一脚本执行第一处理操作,以得到机器人脚本,使得客户端根据机器人脚本不执行UI操作。由上可知,得到的机器人脚本中包括了客户端游戏脚本中除UI操作之外的所有接口,使得客户端根据机器人脚本对游戏服务器的压力测试过程与真实游戏玩家的游戏过程贴近,进而提高对游戏服务器进行压力测试的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的游戏服务器压力测试的架构图;
图2为本发明实施例提供的一种游戏服务器压力测试方法的流程示意图;
图3为本发明实施例提供的另一种游戏服务器压力测试方法的流程示意图;
图4为本发明实施例提供的游戏服务器压力测试的过程示意图;
图5为本发明实施例提供的模拟曲线示意图;
图6为本发明实施例提供的监控平台的监控结果示意图;
图7为本发明实施例提供的一种游戏服务器压力测试装置的结构示意图;
图8为本发明实施例提供的另一种游戏服务器压力测试装置的结构示意图;
图9为本发明实施例提供的一种游戏服务器压力测试装置的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的游戏服务器压力测试的架构图。请参见图1,包括至少一个客户端(分别记为客户端101-1、客户端101-2、……、客户端101-N)、待测试游戏服务器102、监控设备103、待测试游戏服务器的数据库104和外网游戏服务器的数据库105。
可选的,客户端可以为计算机、运行在计算机中的虚拟机等。客户端用于创建机器人,并运行机器人脚本和压力测试脚本,以实现对待测试游戏服务器进行压力测试。在图2所示的实施例中对机器人脚本和压力测试脚本进行详细说明,此处不再进行赘述。
可选的,待测试游戏服务器102为需要进行压力测试的游戏服务器,待测试游戏服务器102中加载有游戏的服务器脚本,以使客户端和待测试游戏服务器102之间可以执行游戏的逻辑交互。可选的,待测试游戏服务器102可以为基于游戏引擎的服务器。
可选的,监控设备103可以为计算机等设备,监控设备103可以监控待测试游戏服务器的中央处理器(Central Processing Unit,简称CPU)资源、内存资源、网络流量等。
可选的,可以创建待测试游戏服务器的数据库104,并实时或周期性的将外网游戏服务器的数据库105中的数据同步至待测试游戏服务器的数据库104,以使待测试游戏服务器102可以模拟真实的外网游戏服务器的场景。
需要说明的是,上述只是以示例的形式示意游戏服务器压力测试的架构,并非对游戏服务器压力测试的架构的限定。在实际应用过程中,可以根据实际需要设置上述架构,例如,图1所示的架构中的客户端的个数可以为1个,或者,图1所示的架构中可以不包括监控设备等。
在本申请中,在生成机器人脚本中,先在客户端游戏脚本中确定用户界面(UserInterface,简称UI)类型的第一脚本,并在客户端游戏脚本中对第一脚本执行第一处理操作,以得到机器人脚本,使得客户端根据机器人脚本不执行UI操作。由上可知,得到的机器人脚本中包括了客户端游戏脚本中除UI操作之外的所有接口,使得客户端根据机器人脚本对游戏服务器的压力测试过程与真实游戏玩家的游戏过程贴近,进而提高对游戏服务器进行压力测试的准确性。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容,在不同的实施例中不再进行重复说明。
图2为本发明实施例提供的一种游戏服务器压力测试方法的流程示意图。请参见图2,该方法可以包括:
S201、在客户端游戏脚本中确定用户界面类型的第一脚本。
本发明实施例的执行主体可以为客户端,也可以为设置在客户端中的游戏服务器压力测试装置。可选的,客户端可以为图1实施例中的客户端101-1至客户端101-N中的任意客户端。可选的,游戏服务器压力测试装置可以通过软件实现,或者通过软件和硬件的结合实现。
需要说明的是,S201-S202的执行主体与S203的执行主体可以相同,也可以不同。例如,S201-S202的执行主体可以为任意的计算机,S203的执行主体可以为图1实施例中的客户端101-1至客户端101-N中的任意客户端。
可选的,客户端游戏脚本可以为用于使得客户端实现游戏功能的脚本。
例如,客户端游戏脚本可以为,真实的客户端中安装的游戏应用程序加密处理前的脚本。
可选的,UI类型的第一脚本可以包括用于显示UI的脚本、用于接收用户输入的UI操作(例如滑动操作、点击操作等)的脚本、用于根据用户输入的UI操作调用相关接口的脚本、用于绘制特效的脚本等。
当然,在实际应用过程中,可以根据实际需要确定第一脚本,本发明实施例对此不作具体限定。
可选的,客户端游戏脚本通常包括多个文件,每个文件中包括类、接口等代码。
例如,客户端游戏脚本中包括的文件可以为py(Python)格式的文件。
可选的,当客户端游戏脚本包括多个文件时,可以通过如下可行的实现方式在客户端的游戏脚本中确定UI类型的第一脚本:在多个文件中确定至少一个第一文件,第一文件的文件名中包括预设字符,将第一文件中的脚本确定为第一脚本。
例如,可以遍历客户端游戏脚本的目录,以确定得到至少一个第一文件。客户端游戏脚本的目录可以为客户端游戏脚本包括的多个文件的文件名目录。
可选的,预设字符可以包括GUI、UI等。
当然,在实际应用过程中,可以根据实际需要设置预设字符,本发明实施例对此不作具体限定。
可选的,还可以在客户端游戏脚本中确定至少一个UI类型的类,该UI类型的类的类名中包括预设字符,并将该UI类型的类中的脚本确定第一脚本。
可选的,UI类型的类可以包括至少一个py格式的文件。
S202、在客户端游戏脚本对第一脚本执行第一处理操作,得到用于模拟游戏客户端行为的机器人脚本。
其中,第一处理操作用于使得客户端根据机器人脚本不执行用户界面操作(UI操作)。
其中,机器人脚本中包括客户端脚本中除使得客户端执行UI操作的脚本之外的脚本。即,机器人脚本中不包括用于使得客户端执行UI操作的脚本。
可选的,机器人脚本中包括客户端脚本中除UI操作接口之外的所有接口。
例如,UI操作接口用于实现的功能包括:UI界面显示、响应用户输入的UI操作(根据用户输入的UI操作调用其它接口等)、特效绘制等。
例如,除UI操作接口之外的接口用于实现的功能可以包括:角色移动操作、场景切换操作、登录操作、技能释放操作等。
可选的,第一处理操作可以包括:在客户端游戏脚本中删除第一脚本;或者,将第一脚本修改为预设脚本,预设脚本用于使得客户端执行空操作。
例如,预设脚本可以包括return 0,return 1,NULL等。
可选的,可以获取第一脚本的类型,并根据第一脚本的类型确定第一处理操作。
可选的,第一脚本的类型可以包括:用户的UI操作调用的脚本,或游戏服务器的响应调用的脚本中的至少一种。
可选的,可以根据第一脚本的函数名、或者调用第一脚本的函数名等确定第一脚本的类型。
可选的,当第一脚本为用户的UI操作调用的脚本时,第一处理操作可以为删除第一脚本。
例如,用户的UI操作调用的脚本可以为,用户输入滑动操作而调用的角色移动脚本等。
可选的,当第一脚本为游戏服务器的响应调用的脚本时,第一处理操作可以为将第一脚本修改为预设脚本。
例如,游戏服务器的响应调用的脚本可以为,服务器根据游戏角色之间的打斗情况返回的响应所调用的特效绘制脚本等。
可选的,机器人脚本的格式可以为pyo格式或者pyc格式等。
S203、根据机器人脚本和压力测试脚本,对待测试游戏服务器进行压力测试。
其中,压力测试脚本用于调用机器人脚本,以使客户端根据机器人脚本与待测试游戏服务器进行交互。
可选的,可以通过如下可行的实现方式对待测试游戏服务器进行测试:在外网游戏服务器中获取至少一个游戏角色的属性信息,根据至少一个游戏角色的属性信息在客户端中创建至少一个机器人角色,根据机器人脚本、压力测试脚本和每个机器人角色的属性信息,对待测试游戏服务器进行压力测试。
其中,至少一个机器人角色的属性信息与至少一个游戏角色的属性信息对应相同。
例如,假设机器人角色的个数为10个,分别记为机器人角色1、机器人角色2、……、机器人角色10,在外网获取10个游戏角色的属性信息,分别记为属性信息1、属性信息2、……、属性信息10,则机器人角色1的属性信息为属性信息1,机器人角色2的属性信息为属性信息2,……,机器人角色10的属性信息为属性信息10。
可选的,可以通过deeppeek(uid)接口将外网游戏服务器中游戏角色的属性信息拷贝至客户端中。
可选的,外网游戏服务器为与真实游戏客户端进行交互的服务器。
可选的,游戏角色的属性信息可以包括游戏角色的标识、游戏角色的等级、游戏角色具有的装备(服装、武器、技能等)。
当然,游戏角色的属性信息还可以包括其它,本发明实施例对此不作具体限定。
可选的,可以通过爬取筛选的方式在外网游戏服务器中获取至少一个游戏角色的属性信息。例如,可以采用列表式存储在外网游戏服务器中获取至少一个游戏角色的属性信息。
例如,可以获取外网游戏服务器中游戏排行榜中前N名游戏角色的属性信息,N为大于或等于1的整数。
可选的,可以将在外网游戏服务器中获取得到游戏角色的属性信息确定为在客户端创建的机器人角色的属性信息。
可选的,压力测试脚本中可以包括:在客户端创建的机器人角色的数量、调用的机器人脚本中的接口类型、对机器人脚本中各个接口的调用顺序等。
可选的,在客户端创建的机器人角色的数量可以为100个、1000个、2000个等。
当然,在实际应用过程中,可以根据实际需要确定在客户端创建的机器人角色的数量,本发明实施例对此不作具体限定。
在压力测试过程中,在客户端中运行压力测试脚本,以使压力测试脚本调用机器人脚本中的接口,以使客户端根据机器人脚本中的接口(或接口对应的代码)与待测试游戏服务器进行游戏的逻辑交互。
例如,假设客户端中创建了100个机器人角色,压力测试脚本用于调用的机器人脚本的如下接口:登录接口、进入场景1接口、向左移动接口、使用技能1接口。则在压力测试过程中客户端运行压力测试脚本,客户端根据压力测试脚本中对机器人脚本的接口调用顺序,先根据登录接口对应的代码使得该100个机器人角色登录游戏,再根据进入场景1接口对应的代码使得该100个机器人角色进行场景1,再根据向左移动接口对应的代码使得该100个机器人角色向左移动,再根据使用技能1接口对应的代码使得该100个机器人角色使用技能1。
本发明实施例提供的游戏服务器压力测试方法,在生成机器人脚本中,先在客户端游戏脚本中确定UI类型的第一脚本,并在客户端游戏脚本中对第一脚本执行第一处理操作,以得到机器人脚本,使得客户端根据机器人脚本不执行UI操作。由上可知,得到的机器人脚本中包括了客户端游戏脚本中除UI操作之外的所有接口,使得客户端根据机器人脚本对游戏服务器的压力测试过程与真实游戏玩家的游戏过程贴近,进而提高对游戏服务器进行压力测试的准确性。
在上述任意一个实施例的基础上,下面,通过图3所示的实施例,对上述实施例进行进一步详细说明。
图3为本发明实施例提供的另一种游戏服务器压力测试方法的流程示意图。请参见图3,该方法可以包括:
S301、在客户端游戏脚本中确定用户界面类型的第一脚本。
需要说明的是,S301的执行过程可以参见S201的执行过程,此处不再进行赘述。
S302、在客户端游戏脚本中删除第一脚本,或者将第一脚本修改为预设脚本。
需要说明的是,S302的执行过程可以参见S202的执行过程,此处不再进行赘述。
S303、在外网游戏服务器中获取至少一个游戏角色的属性信息。
可选的,可以根据在客户端中创建的机器人角色的个数获取至少一个游戏角色的属性信息。
可选的,在外网游戏服务器中获取得到的游戏角色的属性信息的个数,与在客户端创建的机器人角色的个数相同。
例如,若在客户端创建100个机器人角色,则在外网游戏服务器中获取100个游戏角色的属性信息。
S304、根据至少一个游戏角色的属性信息,在客户端中创建至少一个机器人角色。
其中,至少一个机器人角色的属性信息与至少一个游戏角色的属性信息对应相同。
例如,假设机器人角色的个数为10个,分别记为机器人角色1、机器人角色2、……、机器人角色10。在外网获取10个游戏角色的属性信息,分别记为属性信息1、属性信息2、……、属性信息10。则机器人角色1的属性信息为属性信息1,机器人角色2的属性信息为属性信息2,……,机器人角色10的属性信息为属性信息10。
S305、根据压力测试脚本调用机器人脚本,并根据机器人脚本对待测试游戏服务器进行压力测试。
需要说明的是,S305的执行过程可以参见S203的执行过程,此处不再进行赘述。
在图3所示的实施例中,由于确定得到的机器人脚本中包括了客户端游戏脚本中除UI操作之外的所有接口,使得客户端根据机器人脚本对游戏服务器的压力测试过程与真实游戏玩家的游戏过程贴近,进而提高对游戏服务器进行压力测试的准确性。
在上述任意一个实施例的基础上,可选的,还可以创建待测试游戏服务器的第一数据库,通过预设指令将外网游戏服务器的第二数据库中的数据拷贝至第一数据库,第一数据库和第二数据库的数据库名称相同。
可选的,当第一数据库和第二数据库为Mongo DB(Mongo数据库)时,可以通过第一数据库和第二数据库中的clone接口实现将第二数据库中的数据拷贝至第一数据库。
可选的,当第一数据库和第二数据库为Mongo DB(Mongo数据库)时,预设指令可以为db.cloneDatabase指令。
下面,结合图4,通过具体示例,对上述方法实施例所示的技术方案进行详细说明。
图4为本发明实施例提供的游戏服务器压力测试的过程示意图。请参见图4,包括客户端401和待测试游戏服务器402。
假设需要对待测试服务器402进行2000个用户同时在线的压力测试,则在外网服务器中获取排行榜前2000个真实游戏角色的属性信息(用户名、等级、装备等),并根据该2000个真实游戏角色的属性信息,在客户端401中创建2000个机器人角色(或者称为机器人游戏角色),该2000个机器人角色的属性信息与排行榜前2000个真实游戏角色的属性信息对应相同。
在客户端401中创建2000个进程,每一个进程用于执行一个机器人角色的游戏逻辑。
客户端401中加载有机器人脚本和压力测试脚本,其中,机器人脚本可以通过上述任意方法实施例所示的方法确定得到。压力测试脚本为预先编辑得到的,假设压力测试脚本调用的接口、接口实现的功能如表1所示:
表1
压测测试脚本调用的接口 功能
接口1 登录功能
接口2 进入游戏场景1
接口3 进入主战场1
接口4 向前奔跑
接口5 释放技能1
…… ……
在测试过程中,客户端执行压力测试脚本,在压力测试脚本执行的过程中,压力测试脚本依次调用机器人脚本中的接口1、接口2、接口3等。
在压力测试脚本调用接口1时,客户端中的2000个进程根据接口1对应的代码并行执行登录操作,使得2000个机器人角色同时登录待测试游戏服务器。即,客户端同时向待测试游戏服务器发送2000个登录请求,使得待测试游戏服务器同时响应该2000个登录请求。
在压力测试脚本调用接口2时,客户端中的2000个进程根据接口2对应的代码并行执行进入游戏场景1的操作,使得2000个机器人角色同时进入游戏场景1。即,客户端同时向待测试游戏服务器发送2000个进入游戏场景1的请求,使得待测试游戏服务器同时响应该2000个进入游戏场景1的请求。
依次类推,客户端根据压力测试脚本调用的各个接口对待测试游戏服务器进行压力测试。
在上述过程中,在客户端中创建的各个机器人角色的属性信息与真实游戏角色的属性信息相同,使得对游戏服务器的测试与实际游戏场景更加贴近。且得到的机器人脚本中包括了客户端游戏脚本中除UI操作之外的所有接口,使得客户端根据机器人脚本对游戏服务器的压力测试过程与真实游戏玩家的游戏过程贴近,进而提高对游戏服务器进行压力测试的准确性。
下面,结合图5,通过实验数据描述本发明实施例对游戏服务器进行压力测试的准确性。
图5为本发明实施例提供的模拟曲线示意图。请参见图5,横坐标轴表示人数,纵坐标轴表示CPU占用量,曲线A表示实际游戏过程中、相应个数的用户同时在线时的游戏服务器的CPU占用量,曲线B表示本申请测试过程中、相应个数的用户同时在线时的待测试游戏服务器的CPU占用量,曲线C表示现有技术测试过程中、相应个数的用户同时在线时的待测试游戏服务器的CPU占用量。
由上述曲线可知,现有技术中的测试结果与游戏的实际情况相差较多,而本申请的测试结果与实际情况很接近,进而提高对游戏服务器进行压力测试的准确性。
在上述任意一个实施例的基础上,可选的,还可以设置监控平台,例如,监控平台可以为web监控平台,通过监控平台可以实时检测待测试游戏服务器的性能变化,例如,性能可以包括CPU使用量、内存使用量以及流量等。当然,还可以自定义待测试游戏服务器的性能指标,本申请对此不作具体限定。
下面,结合图6,通过具体示例,对监控平台的检测结果进行详细说明。
图6为本发明实施例提供的监控平台的监控结果示意图。请参见图6,横坐标轴表示时间,纵坐标轴表示流量(单位为M)。
请参见图6,假设在5号时测试2000机器人角色在10s内集中登录游戏时,检测到网卡流量出现急剧增长,该急剧增长的网卡流量可能会导致游戏服务器的性能降低。在检测到该情况时,相关人员可以快速根据检测到的数据进行问题定位,并解决问题。在问题解决之后,在6号和7号进行相同测试(2000机器人角色在10s内集中登录游戏)时,则可以避免出现网卡流量急剧增长的情况。
图7为本发明实施例提供的一种游戏服务器压力测试装置的结构示意图。请参见图7,该游戏服务器压力测试装置10可以包括确定模块11、脚本处理模块12和测试模块13,其中,
所述确定模块11用于,在客户端游戏脚本中确定用户界面类型的第一脚本;
所述脚本处理模块12用于,在所述客户端游戏脚本对所述第一脚本执行第一处理操作,得到用于模拟游戏客户端行为的机器人脚本,所述第一处理操作用于使得客户端根据所述机器人脚本不执行用户界面操作;
所述测试模块13用于,根据所述机器人脚本和压力测试脚本,对所述待测试游戏服务器进行压力测试,所述压力测试脚本用于调用所述机器人脚本,以使所述客户端根据所述机器人脚本与所述待测试游戏服务器进行交互。
本发明实施例提供的游戏服务器压力测试装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述脚本处理模块12用于:
在所述客户端游戏脚本中删除所述第一脚本;或者,
将所述第一脚本修改为预设脚本,所述预设脚本用于使得所述客户端执行空操作。
在另一种可能的实施方式中,所述客户端游戏脚本包括多个文件,所述确定模块11具体用于:
在所述多个文件中确定至少一个第一文件,所述第一文件的文件名中包括预设字符;
将所述第一文件中的脚本确定为所述第一脚本。
在另一种可能的实施方式中,所述测试模块13具体用于:
在外网游戏服务器中获取至少一个游戏角色的属性信息,所述外网游戏服务器为与真实游戏客户端进行交互的服务器;
根据所述至少一个游戏角色的属性信息,在所述客户端中创建至少一个机器人角色;
根据所述机器人脚本、所述压力测试脚本和每个机器人角色的属性信息,对所述待测试游戏服务器进行压力测试。
图8为本发明实施例提供的另一种游戏服务器压力测试装置的结构示意图。在图7所示实施例的基础上,请参见图8,该游戏服务器压力测试装置10还包括创建模块14和拷贝模块15,其中,
所述创建模块14用于,创建所述待测试游戏服务器的第一数据库;
所述拷贝模块15用于,通过预设指令将外网游戏服务器的第二数据库中的数据拷贝至所述第一数据库,所述第一数据库和所述第二数据库的数据库名称相同。
本发明实施例提供的游戏服务器压力测试装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图9为本发明实施例提供的一种游戏服务器压力测试装置的硬件结构示意图。请参见图9,该游戏服务器压力测试装置20包括:存储器21和处理器22,其中,存储器21和处理器22通信;示例性的,存储器21和处理器22通过通信总线23通信,所述存储器21用于存储计算机程序,所述处理器22执行所述计算机程序实现上述任意方法实施例所示的方法。
可选的,游戏服务器压力测试装置20还可以包括发送器和/或接收器。
可选的,上述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本发明实施例还提供一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于实现上述任意方法实施例所述的游戏服务器压力测试方法。
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,缩写:ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppydisk)、光盘(英文:optical disc)及其任意组合。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
在本申请中,术语“包括”及其变形可以指非限制性的包括;术语“或”及其变形可以指“和/或”。本本申请中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本申请中,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

Claims (10)

1.一种游戏服务器压力测试方法,其特征在于,应用于客户端,所述方法包括:
在客户端游戏脚本中确定用户界面类型的第一脚本;所述第一脚本为能够使客户端执行用户界面操作的脚本;
在所述客户端游戏脚本对所述第一脚本执行第一处理操作,得到用于模拟游戏客户端行为的机器人脚本,所述第一处理操作用于使得所述客户端根据所述机器人脚本不执行用户界面操作;所述第一处理操作包括:在客户端游戏脚本中删除第一脚本;或者,将第一脚本修改为预设脚本,预设脚本用于使得客户端执行空操作;所述机器人脚本包括客户端脚本中除UI操作接口之外的所有接口;
根据所述机器人脚本和压力测试脚本,对待测试游戏服务器进行压力测试,所述压力测试脚本用于调用所述机器人脚本,以使所述客户端根据所述机器人脚本与所述待测试游戏服务器进行交互。
2.根据权利要求1所述的方法,其特征在于,所述客户端游戏脚本包括多个文件;所述在客户端的游戏脚本中确定用户界面类型的第一脚本,包括:
在所述多个文件中确定至少一个第一文件,所述第一文件的文件名中包括预设字符;
将所述第一文件中的脚本确定为所述第一脚本。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述根据所述机器人脚本和压力测试脚本,对所述待测试游戏服务器进行测试,包括:
在外网游戏服务器中获取至少一个游戏角色的属性信息,所述外网游戏服务器为与真实游戏客户端进行交互的服务器;
根据所述至少一个游戏角色的属性信息,在所述客户端中创建至少一个机器人角色;
根据所述机器人脚本、所述压力测试脚本和每个机器人角色的属性信息,对所述待测试游戏服务器进行压力测试。
4.根据权利要求1-2任一项所述的方法,其特征在于,所述方法还包括:
创建所述待测试游戏服务器的第一数据库;
通过预设指令将外网游戏服务器的第二数据库中的数据拷贝至所述第一数据库,所述第一数据库和所述第二数据库的数据库名称相同。
5.一种游戏服务器压力测试装置,其特征在于,包括确定模块、脚本处理模块和测试模块,其中,
所述确定模块用于,在客户端游戏脚本中确定用户界面类型的第一脚本;所述第一脚本为能够使客户端执行用户界面操作的脚本;
所述脚本处理模块用于,在所述客户端游戏脚本对所述第一脚本执行第一处理操作,得到用于模拟游戏客户端行为的机器人脚本,所述第一处理操作用于使得客户端根据所述机器人脚本不执行用户界面操作;所述第一处理操作包括:在客户端游戏脚本中删除第一脚本;或者,将第一脚本修改为预设脚本,预设脚本用于使得客户端执行空操作;所述机器人脚本包括客户端脚本中除UI操作接口之外的所有接口;
所述测试模块用于,根据所述机器人脚本和压力测试脚本,对待测试游戏服务器进行压力测试,所述压力测试脚本用于调用所述机器人脚本,以使所述客户端根据所述机器人脚本与所述待测试游戏服务器进行交互。
6.根据权利要求5所述的装置,其特征在于,所述客户端游戏脚本包括多个文件,所述确定模块具体用于:
在所述多个文件中确定至少一个第一文件,所述第一文件的文件名中包括预设字符;
将所述第一文件中的脚本确定为所述第一脚本。
7.根据权利要求5-6任一项所述的装置,其特征在于,所述测试模块具体用于:
在外网游戏服务器中获取至少一个游戏角色的属性信息,所述外网游戏服务器为与真实游戏客户端进行交互的服务器;
根据所述至少一个游戏角色的属性信息,在所述客户端中创建至少一个机器人角色;
根据所述机器人脚本、所述压力测试脚本和每个机器人角色的属性信息,对所述待测试游戏服务器进行压力测试。
8.根据权利要求5-6任一项所述的装置,其特征在于,所述装置还包括创建模块和拷贝模块,其中,
所述创建模块用于,创建所述待测试游戏服务器的第一数据库;
所述拷贝模块用于,通过预设指令将外网游戏服务器的第二数据库中的数据拷贝至所述第一数据库,所述第一数据库和所述第二数据库的数据库名称相同。
9.一种游戏服务器压力测试装置,其特征在于,包括存储器和处理器,所述处理器执行所述存储器中的程序指令,用于实现权利要求1-4任一项所述的游戏服务器压力测试方法。
10.一种存储介质,其特征在于,所述存储介质用于存储计算机程序,所述计算机程序用于实现权利要求1-4任一项所述的游戏服务器压力测试方法。
CN201811266872.7A 2018-10-29 2018-10-29 游戏服务器压力测试方法、装置及设备 Active CN109359003B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811266872.7A CN109359003B (zh) 2018-10-29 2018-10-29 游戏服务器压力测试方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811266872.7A CN109359003B (zh) 2018-10-29 2018-10-29 游戏服务器压力测试方法、装置及设备

Publications (2)

Publication Number Publication Date
CN109359003A CN109359003A (zh) 2019-02-19
CN109359003B true CN109359003B (zh) 2022-05-20

Family

ID=65347029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811266872.7A Active CN109359003B (zh) 2018-10-29 2018-10-29 游戏服务器压力测试方法、装置及设备

Country Status (1)

Country Link
CN (1) CN109359003B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110034972B (zh) * 2019-03-22 2021-07-06 深圳市腾讯信息技术有限公司 服务器压力测试方法和装置
CN110069375A (zh) * 2019-05-07 2019-07-30 北京天际启游科技有限公司 一种压力测试的方法以及相关装置
CN110209588B (zh) * 2019-06-04 2023-06-13 网易(杭州)网络有限公司 游戏服务端测试方法、装置、电子设备及介质
CN110362474A (zh) * 2019-06-13 2019-10-22 上海紫翊网络科技有限公司 一种分布式游戏测试方法、系统、装置及存储介质
CN111143214A (zh) * 2019-12-26 2020-05-12 上海米哈游天命科技有限公司 一种游戏性能监控方法、装置、服务器及存储介质
CN111400184B (zh) * 2020-03-17 2021-10-29 腾讯科技(深圳)有限公司 游戏测试方法、装置、系统、设备及云平台
CN114615171B (zh) * 2022-03-16 2024-01-30 网易(上海)网络有限公司 云游戏服务器的压测处理方法、设备、介质及程序产品
CN117762717B (zh) * 2024-02-18 2024-04-26 北京开源芯片研究院 处理器缓存的工作机制的测试方法以及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593294A (zh) * 2013-11-21 2014-02-19 福建天晴数码有限公司 网络游戏性能测试方法及系统
CN105704166A (zh) * 2016-04-27 2016-06-22 网易(杭州)网络有限公司 机器人系统及其实现方法、客户端、服务器以及游戏系统
CN106095666A (zh) * 2016-06-02 2016-11-09 腾讯科技(深圳)有限公司 游戏自动化测试方法及相关装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291387B2 (en) * 2005-11-22 2012-10-16 International Business Machines Corporation Method and system for testing a software application interfacing with multiple external software applications in a simulated test environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593294A (zh) * 2013-11-21 2014-02-19 福建天晴数码有限公司 网络游戏性能测试方法及系统
CN105704166A (zh) * 2016-04-27 2016-06-22 网易(杭州)网络有限公司 机器人系统及其实现方法、客户端、服务器以及游戏系统
CN106095666A (zh) * 2016-06-02 2016-11-09 腾讯科技(深圳)有限公司 游戏自动化测试方法及相关装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈明霞." 某网络游戏自动化测试工具的设计与实现".《中国优秀硕士学位论文全文数据库 信息科技辑》.2015,(第6期), *

Also Published As

Publication number Publication date
CN109359003A (zh) 2019-02-19

Similar Documents

Publication Publication Date Title
CN109359003B (zh) 游戏服务器压力测试方法、装置及设备
US10719431B2 (en) Graph based code performance analysis
CN105335283A (zh) 终端设备中的应用测试方法及装置
CN109586952A (zh) 服务器扩容方法、装置
CN109298855B (zh) 一种网络靶场管理系统及其实现方法、装置、存储介质
CN106294094A (zh) 游戏服务器的测试方法、客户端、服务器及系统
US20200104246A1 (en) Continuous automation with test suite engine
CN110474820B (zh) 流量回放方法、装置、电子设备
CN112732499A (zh) 一种基于微服务架构的测试方法、装置及计算机系统
US9983965B1 (en) Method and system for implementing virtual users for automated test and retest procedures
CN112306857A (zh) 用于测试应用的方法和装置
CN107018039B (zh) 测试服务器集群性能瓶颈的方法和装置
CN110737900B (zh) 网页功能测试方法及装置、服务器和计算机可读存储介质
CN115733741B (zh) 一种针对待测系统的异常场景测试方法和装置
CN114331167B (zh) 一种冠军挑战者策略的管理方法、系统、介质和设备
CN112882921B (zh) 故障模拟方法和装置
CN112346994B (zh) 一种测试信息关联方法、装置、计算机设备及存储介质
CN114285756B (zh) 服务调用依赖关系分析方法及相关装置
CN115391168A (zh) 沙盒测试方法、装置、设备及存储介质
CN114185773A (zh) 程序测试方法、装置、电子设备和计算机可读存储介质
US9483241B2 (en) Method ranking based on code invocation
CN113821443A (zh) 应用程序的功能检测方法、装置、设备及存储介质
CN106326354A (zh) 一种用户等级分析方法及装置
CN112306850A (zh) 一种测试用例生成方法、装置及存储介质
CN105930260A (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