CN109460348B - 游戏服务器的压测方法和装置 - Google Patents
游戏服务器的压测方法和装置 Download PDFInfo
- Publication number
- CN109460348B CN109460348B CN201811289996.7A CN201811289996A CN109460348B CN 109460348 B CN109460348 B CN 109460348B CN 201811289996 A CN201811289996 A CN 201811289996A CN 109460348 B CN109460348 B CN 109460348B
- Authority
- CN
- China
- Prior art keywords
- test
- robots
- testing
- server
- target
- 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/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
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)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种游戏服务器的压测方法和装置,控制服务器通过对待测试的目标功能进行M次预测试,得到预M次预测试过程中游戏服务器的性能数据,通过线性回归方法对预测试结果进行处理,确定达到目标功能预期的测试目标值需要的测试机器人的第一预估数量和需要的测试服务器的第二预估数量,根据第二预估数量和第一预估数量,向云服务系统申请测试服务器进行测试。通过多次预测试和线性回归方法预测得到各功能达到预期的目标测试值所需的机器人的数量,从而能够按需向云服务系统申请压测服务器,避免压测服务器资源浪费,并且能够在无人值守的情况下自动执行压测,节约人力成本。
Description
技术领域
本发明涉及游戏领域,尤其涉及一种游戏服务器的压测方法和装置。
背景技术
网络游戏会有海量的玩家同时对游戏服务器进行访问,游戏服务器可能由于负载压力过大而出现响应迟缓、服务器宕机等情况,严重影响玩家的游戏体验。为了在游戏上线前掌握游戏服务器的承载能力,快速定位游戏服务器的性能瓶颈,游戏服务器的压测(即压力测试)是一个非常重要的环节。游戏服务器的压测是指:通过工具模拟大规模用户同时在线的情形,测试游戏服务器的各项性能指标是否正常。通过压测可以获取游戏服务器在一定条件下所能承受的并发用户量、运行时间、数据量等,以确定游戏服务器所能承受的最大负载压力。
传统的游戏服务器压力测试流程通常为:测试人员开发好游戏的各个功能的测试用例后,根据执行测试用例的测试机器人的资源消耗,计算出运行目标数量的测试机器人所需的服务器的数量,在准备好所需数量的服务器后,测试人员在各服务器上同时运行测试机器人,执行各个功能的测试用例,并统计游戏服务器的各项性能指标,最后根据测试机器人的数量以及游戏服务器的各项系能指标得到压测结果。即在测试游戏的各个功能时,都采用相同数量的服务器。现有技术中,为了满足该游戏的所有功能的测试要求,在确定压测所需服务器的数量时,通常根据所需测试机器人数量最大(即用户量最大)的游戏功能的测试机器人的资源消耗和测试机器人数量,计算所需服务器的数量。
一方面,由于同一游戏的不同功能需要的测试机器人的数量不同,比如A功能需要100万玩家,B功能只需要10万玩家;另一方面,不同游戏功能使用的测试用例不同,执行不同的测试用例消耗的资源(内存、CPU)也不同,(测试用例越复杂消耗资源越多),采用固定数量的服务器进行压测,会导致服务器资源的浪费。
发明内容
本发明提供一种游戏服务器的压测方法和装置,能够避免压测服务器资源浪费,并且能够节约人力成本。
本发明第一方面提供一种游戏服务器的压测方法,包括:
控制服务器对待测试的目标功能进行M次预测试,得到预测试结果,所述预测试结果中包括所述M次预测试过程中游戏服务器的性能数据,所述M次预测试启动的测试机器人的数量不同,所述测试机器人用于执行所述目标功能的测试用例,与所述游戏服务器通信,M为大于或等于2的整数;
所述控制服务器通过线性回归方法对所述预测试结果进行处理,确定达到所述目标功能预期的测试目标值需要的测试机器人的第一预估数量;
所述控制服务器根据所述测试机器人的第一预估数量,确定达到所述目标功能预期的测试目标值需要的测试服务器的第二预估数量;
所述控制服务器根据所述测试服务器的第二预估数量和所述测试机器人的第一预估数量,向云服务系统申请测试服务器进行测试;
所述控制服务器接收所述游戏服务器发送的所述游戏服务器的性能数据。
可选的,所述控制服务器对待测试的目标功能进行M次预测试,得到预测试结果,包括:
所述控制服务器向所述云服务系统申请N个测试服务器;
所述控制服务器将所述目标功能的测试用例脚本发送给所述N个测试服务器;
针对每次预测试,所述控制服务器在所述N个测试服务器上启动预设数量的测试机器人;
所述控制服务器接收所述游戏服务器发送的所述预测试结果。
可选的,所述控制服务器通过线性回归方法对所述预测试结果进行处理,确定达到所述目标功能预期的测试目标值时需要的测试机器人的第一预估数量,包括:
所述控制服务器对所述预测试结果和所述M次预测试启动的测试机器人的数量进行预处理,得到二维数组;
所述控制服务器建立回归模型;
所述控制服务器将所述二维数组作为所述回归模型的输入,进行模型训练;
所述控制服务器对所述回归模型进行评估;
所述控制服务器将所述目标功能预期的测试目标值作为所述回归模型的自变量,得到所述测试机器人的第一预估数量。
可选的,所述控制服务器根据所述测试服务器的第二预估数量和所述测试机器人的第一预估数量,向云服务系统申请测试服务器进行测试,包括:
所述控制服务器根据所述测试服务器的第二预估数量,向所述云服务系统申请目标测试服务器;
所述控制服务器根据所述测试机器人的第一预估数量通过负载均衡的方式,向所述目标测试服务器发送测试任务,所述测试任务中包括所述目标测试服务器上启动的测试机器人的数量和所述目标功能的测试用例脚本。
可选的,所述方法还包括:
当启动所述第一预估数量的测试机器人,所述目标功能没有达到预期的测试目标值时,所述控制服务器添加测试机器人直至目标功能达到预期的测试目标值或者测试时间超过预设的最大测试时长。
本发明第二方面提供一种游戏服务器的压测装置,包括:
测试模块,用于对待测试的目标功能进行M次预测试,得到预测试结果,所述预测试结果中包括所述M次预测试过程中游戏服务器的性能数据,所述M次预测试启动的测试机器人的数量不同,所述测试机器人用于执行所述目标功能的测试用例,与所述游戏服务器通信,M为大于或等于2的整数;
压力预估模块,用于通过线性回归方法对所述预测试结果进行处理,确定达到所述目标功能预期的测试目标值需要的测试机器人的第一预估数量;
计算模块,用于根据所述测试机器人的第一预估数量,确定达到所述目标功能预期的测试目标值需要的测试服务器的第二预估数量;
所述测试模块,还用于根据所述测试服务器的第二预估数量和所述测试机器人的第一预估数量,向云服务系统申请测试服务器进行测试;
接收模块,用于接收所述游戏服务器发送的所述游戏服务器的性能数据。
可选的,所述测试模块具体用于:
向所述云服务系统申请N个测试服务器;
将所述目标功能的测试用例脚本发送给所述N个测试服务器;
针对每次预测试,在所述N个测试服务器上启动预设数量的测试机器人;
接收所述游戏服务器发送的所述预测试结果。
可选的,所述压力预估模块具体用于:
对所述预测试结果和所述M次预测试启动的测试机器人的数量进行预处理,得到二维数组;
建立回归模型;
将所述二维数组作为所述回归模型的输入,进行模型训练;
对所述回归模型进行评估;
将所述目标功能预期的测试目标值作为所述回归模型的自变量,得到所述测试机器人的第一预估数量。
可选的,所述测试模块具体用于:
根据所述测试服务器的第二预估数量,向所述云服务系统申请目标测试服务器;
根据所述测试机器人的第一预估数量通过负载均衡的方式,向所述目标测试服务器发送测试任务,所述测试任务中包括所述目标测试服务器上启动的测试机器人的数量和所述目标功能的测试用例脚本。
可选的,所述测试模块还用于:
当启动所述第一预估数量的测试机器人,所述目标功能没有达到预期的测试目标值时,添加测试机器人直至目标功能达到预期的测试目标值或者测试时间超过预设的最大测试时长。
本发明第三方面提供一种控制服务器,包括:处理器、存储器和收发器,所述存储器用于存储指令,所述收发器用于和其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述控制服务器执行如本发明第一方面所述的方法。
本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如本发明第一方面所述的方法。
本发明提供的游戏服务器的压测方法和装置,控制服务器通过对待测试的目标功能进行M次预测试,得到预M次预测试过程中游戏服务器的性能数据,M次预测试启动的测试机器人的数量不同,通过线性回归方法对该预测试结果进行处理,确定达到目标功能预期的测试目标值需要的测试机器人的第一预估数量和需要的测试服务器的第二预估数量,根据测试服务器的第二预估数量和测试机器人的第一预估数量,向云服务系统申请测试服务器进行测试。通过多次预测试和线性回归方法预测得到各功能达到预期的目标测试值所需的机器人的数量,从而能够按需向云服务系统申请压测服务器,避免压测服务器资源浪费,并且能够在无人值守的情况下自动执行压测,节约人力成本。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为压测系统的一种示意图;
图2为本发明实施例一提供的游戏服务器的压测方法的流程图;
图3为本发明实施例二提供的游戏服务器的压测装置的结构示意图;
图4为本发明实施例三提供的控制服务器的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本发明提供一种游戏服务器的压测方法,该方法应用在压测系统中,图1为压测系统的一种示意图,如图1所示,该压测系统包括:控制服务器、云服务系统、游戏服务器和Web服务器。
控制服务器负责控制整个系统的运行,主要功能包括:管理用户上传的测试用例脚本及任务,生成测试用例(Test Case)、分发测试用例、动态向云服务系统申请测试服务器、进行压力预估、发送压力测试命令给测试服务器、接收游戏服务器的性能数据并转发给web服务器。
其中,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。压力预估是通过一定的算法提前估计好测试目标功能需要的游戏服务器的数量和测试机器人的数量,在测试时根据预估结果申请测试服务器,避免资源浪费。
云服务系统中包括多个测试服务器,测试服务器是指用于运行压测机器人的服务器。测试服务器启动以后会运行一个守护进程服务,该进程负责与控制服务器交互,包括向控制服务器注册,接收控制服务器的命令(添加、删除机器人),向控制服务器定时发送自身的状态信息。每个测试服务器上可以运行多个测试机器人。
测试机器人通过游戏脚本的方式发送和接收游戏服务器的协议,通过一定的组织方式(状态机、行为树、脚本流程控制等方式)来模拟玩家行为,按照用户预设的行为来实现测试用例。通过执行机器人启动脚本可以启动测试机器人连接游戏服务器,进行压力测试。
该云服务系统可以采用亚马逊云计算服务(Amazon Web Services,简称AWS),具体可以采用AWS提供的弹性云计算服务(Elastic Compute Cloud,简称EC2)服务。EC2可以为用户提供弹性可变的计算容量,用户可以创建和管理多个虚拟机,在虚拟机上部署自己的业务,虚拟机的计算能力(CPU、内存等)可以根据业务需求随时调整。将游戏服务器压力测试用例及整个测试框架搭建在EC2上,利用亚马逊提供的各种应用接口,可以按照自己的需求随时创建、增加或删除实例,进行游戏服务器的性能测试。
游戏服务器是指运行游戏功能逻辑的服务器,测试机器人连接、登录到游戏服务器并按测试用例执行各种行为,游戏服务器的性能指标通常包括:进程中央处理器(Central Processing Unit,简称CPU)使用率、内存使用率、网络流量、磁盘输入/输出(Input/Output,简称IO)的使用率等。通过运行性能监控进程可以实时记录并推送各种服务器性能数据。
Web服务器在接收到控制服务器发送过来的本次压力测试计划及各个功能的性能数据后,将性能数据持久化存储到数据库中,生成各种性能的测试报告,以web网页的形式分别展示给测试人员;在压力测试结束后,Web服务器通过即时通讯工具通知测试人员,并推送测试报告结果。
基于图1所示的测试系统,本发明实施例一提供一种游戏服务器的压测方法,图2为本发明实施例一提供的游戏服务器的压测方法的流程图,如图2所示,本实施例提供的方法包括以下步骤:
步骤S101、控制服务器对待测试的目标功能进行M次预测试,得到预测试结果。
游戏具有多个功能,对于每个功能都可以按照本实施例的方法进行测试,本实施例中的目标功能是游戏的多个功能中的任意一个功能,并不是特指某个功能,在测试之前测试人员会提前准备好如下资源:本次需要测试的游戏功能列表、游戏各个功能的测试用例脚本、每个功能需要关注的游戏服务器的性能指标(进程CPU使用率,内存使用率,网络速率,磁盘IO使用率等)以及每个功能预期的测试目标值(如进程CPU使用率达到70%),并将上述资源部署到控制服务器上。
测试服务器启动后,主动连接注册到控制服务器,注册过程中将测试服务器的地址、CPU、内存等硬件信息发送给控制服务器,注册成功后,控制服务器得到一份可控制的测试服务器列表。
在进行预测试时,控制服务器利用云服务系统提供的接口,向云服务系统申请N个测试服务器,申请的测试服务器的数量根据游戏规模确定。云服务系统需要提前调试确定好所需的测试服务器的硬件配置、操作系统环境、所需的代码环境等,并制作成镜像。
控制服务器将目标功能的测试用例脚本发送给该N个测试服务器,测试服务器保存测试用例脚本。针对不同的游戏功能,有不同的测试用例,每个游戏功能只有一个测试用例,机器人在执行不同的测试用例时,机器人本身消耗的资源(内存、CPU)不同。
针对每次预测试,控制服务器在N个测试服务器上启动预设数量的测试机器人,控制服务器可以根据可控制的测试服务器列表,向N个测试服务器分别发送测试命令,该测试命令中包括测试服务器需要启动的测试机器人的数量。可选的,控制服务器也可以将测试用例脚本携带在测试命令中。
测试服务器接收到测试命令后,执行命令启动测试机器人开始测试。每个测试服务器上的多个测试机器人并行执行测试用例,以模仿多用户同时在线玩游戏的场景。测试机器人在测试过程中,先与游戏服务器建立连接,并登陆游戏服务器,然后模拟用户操作与游戏服务器进行交互,完成游戏的逻辑功能。
该N个测试服务器上运行的测试机器人的数量可以相同也可以不同。可以根据测试服务器的硬件资源决定,当N个测试服务器的硬件相同时,为了实现负载均衡,该N个测试服务器上测试机器人的数量相同。当N个测试服务器的硬件不同时,也能够实现负载均衡,此时N个测试服务器上的测试机器人的数量不同。
每个测试服务器上能够运行的测试机器人的数量是时有限的,可以根据测试机器人运行时占用的资源的瓶颈以及测试服务器的总资源确定测试服务器上能够运行的测试机器人的最大数量。假设测试机器人在执行时占用的内存资源是瓶颈,每个测试机器人运行时占用的内存为a MB,每个测试服务器的总内存为b MB,那么每个测试服务器上能够运行的测试机器人的最大数量为x=(b-1024)/a,其中1024MB是根据经验预留的内存,当测试服务器的内存小于预留的1024MB时,操作系统容易宕机。
游戏服务器在测试过程中,监测自身的性能指标,并将本次测试得到的游戏服务器的性能数据发送给控制服务器。控制服务器对目标功能进行M次预测试,M次预测试启动的测试机器人的数量不同,控制服务器可以在前一次预测试的基础上不断增加测试机器人的数量,游戏服务器收集到M次预测试得到的游戏服务器的性能数据。
步骤S102、控制服务器通过线性回归(Linear Regression)方法对预测试结果进行处理,确定达到目标功能预期的测试目标值需要的测试机器人的第一预估数量。
线性回归是利用线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析,该函数是一个或多个称为回归系数的模型参数的线性组合。线性回归试图学习得到一个线性模型以尽可能准确地预测值。假设训练集包含(x1,x2,y),线性回归就是要找到一个函数使下列的式子成立:y=θ0+θ1x1+θ2x2,其中自变量在函数中的最高次项为1,θ0、θ1、θ2为自变量因子,通过该公式,我们可以用已知的x1和x2预测y。
线性回归方法的流程可以包括以下步骤:
(1)控制服务器对该预测试结果和M次预测试启动的测试机器人的数量进行预处理,得到二维数组。
该预测试结果中包括M次预测试过程中游戏服务器的性能数据,性能数据包括进程CPU使用率、内存使用率、网络速率和磁盘IO使用率,目标功能预期的测试目标值为游戏服务器的一个或者多个性能指标。预处理需要确定自变量和因变量,由于测试目标值是已知的,所以游戏服务器的性能数据是自变量,测试机器人的数量是因变量,然后,将自变量和因变量数据转换为二维数组的格式。
(2)控制服务器建立回归模型(regression model)。
回归模型是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。为了使尽可能多的数据点落在或者更加靠近拟合出来的直线上,采用最小二乘法,通过最小化误差的平方和寻找数据的最佳直线。
(3)控制服务器将该二维数组作为回归模型的输入,进行模型训练。
模型训练过程是参数求解的过程,并对模型进行拟合,通过模型训练利用已有的数据得出最优的参数来进行下面的预测。
(4)控制服务器对回归模型进行评估。
回归模型的精度是用来表示实际观测点和回归模型的拟合程度的指标,使用判定系数来度量,判定系数越接近于1,表示回归模型拟合效果越好。如果拟合出来的回归模型的精度符合要求,则可以使用拟合出来的回归模型,根据已有的自变量来预测需要的因变量。
(5)控制服务器将目标功能预期的测试目标值作为回归模型的自变量,得到测试机器人的第一预估数量。
步骤S103、控制服务器根据测试机器人的第一预估数量,确定达到目标功能预期的测试目标值需要的测试服务器的第二预估数量。
假设控制服务器管理的各个测试服务器上能够运行的测试机器人的数量为固定值x,测试机器人的预估数量为n,则达到目标功能预期的测试目标值需要的测试服务器的预估数量为 表示向上取整运算。当然,各个测试服务器上能够运行的测试机器人的数量也可能不同,控制服务器根据测试机器人的预估数量和各测试服务器上能够运行的测试机器人的数量,确定需要的测试服务器的第二预估数量。
步骤S104、控制服务器根据测试服务器的第二预估数量和测试机器人的第一预估数量,向云服务系统申请测试服务器进行测试。
在进行测试之前,控制服务器需要重启游戏服务器,清理压测环境,控制服务器根据测试服务器的第二预估数量,向云服务系统申请目标测试服务器,根据测试机器人的第一预估数量通过负载均衡的方式,向目标测试服务器发送测试任务,该测试任务中包括目标测试服务器上启动的测试机器人的数量和目标功能的测试用例脚本。测试服务器接收到测试任务后,启动测试机器人,测试机器人运行测试用例脚本与游戏服务器建立连接并登陆到游戏服务器,执行预先定义的操作。
由于是预估的测试机器人数量,可能会存在误差,当启动预估数量的测试机器人的时候,可能没有达到目标功能预期的测试目标值,此时控制服务器可以继续添加测试机器人直至目标功能达到预期的测试目标值。对于游戏功能来说,随着参与人数增加理论上是存在性能极限的,为了保证系统的高可行性,可以设置一个最大测试时长(比如每个功能的最大测试时长为2小时),当测试时间超时该最大测试时长并且还没有达到预期的测试目标值时,由测试人员根据报告判断分析原因(有可能是该功能确实性能很好或者程序在实现功能时有限制操作频率,导致不可能达到测试目标值)。
步骤S105、控制服务器接收游戏服务器发送的游戏服务器的性能数据。
游戏服务器可以按照预设的周期将性能数据发送给控制服务器,例如,游戏每十分钟发送一次性能数据,并且达到预期的测试目标时或超时结束时发送一次性能数据。当然,游戏服务器也可以在达到预期的测试目标时或超时结束时发送一次性能数据。
控制服务器在所有游戏功能都测试完毕后,将每个游戏功能达到预期的测试目标时的性能数据和需要的测试机器人的数量发送给Web服务器,Web服务器将所有性能数据汇总,将测试结果存入数据库进行数据持久化,生成压力测试报告,将本次测试结果在Web前端显示。
如果游戏服务器周期性将性能数据发送给了控制服务器,则Web服务器可以根据每个功能在测试过程中的所有数据,生成性能数据与测试机器人的数量的变换趋势曲线,并显示给测试人员,便于测试人员分析、定位问题。
Web服务器对游戏服务器的性能数据的处理,也可以有控制服务器完成。
本实施例中,控制服务器对待测试的目标功能进行M次预测试,得到预M次预测试过程中游戏服务器的性能数据,M次预测试启动的测试机器人的数量不同,通过线性回归方法对该预测试结果进行处理,确定达到目标功能预期的测试目标值需要的测试机器人的第一预估数量和需要的测试服务器的第二预估数量,根据测试服务器的第二预估数量和测试机器人的第一预估数量,向云服务系统申请测试服务器进行测试。通过多次预测试和线性回归方法预测得到各功能达到预期的目标测试值所需的机器人的数量,从而能够按需向云服务系统申请压测服务器,避免压测服务器资源浪费,并且能够在无人值守的情况下自动执行压测,节约人力成本。
图3为本发明实施例二提供的游戏服务器的压测装置的结构示意图,该装置可以应用在控制服务器中,如图3所示,本实施例提供的装置,包括:
测试模块11,用于对待测试的目标功能进行M次预测试,得到预测试结果,所述预测试结果中包括所述M次预测试过程中游戏服务器的性能数据,所述M次预测试启动的测试机器人的数量不同,所述测试机器人用于执行所述目标功能的测试用例,与所述游戏服务器通信,M为大于或等于2的整数;
压力预估模块12,用于通过线性回归方法对所述预测试结果进行处理,确定达到所述目标功能预期的测试目标值需要的测试机器人的第一预估数量;
计算模块13,用于根据所述测试机器人的第一预估数量,确定达到所述目标功能预期的测试目标值需要的测试服务器的第二预估数量;
所述测试模块11,还用于根据所述测试服务器的第二预估数量和所述测试机器人的第一预估数量,向云服务系统申请测试服务器进行测试;
接收模块14,用于接收所述游戏服务器发送的所述游戏服务器的性能数据。
可选的,所述测试模块11具体用于:
向所述云服务系统申请N个测试服务器;
将所述目标功能的测试用例脚本发送给所述N个测试服务器;
针对每次预测试,在所述N个测试服务器上启动预设数量的测试机器人;
接收所述游戏服务器发送的所述预测试结果。
可选的,所述压力预估模块12具体用于:
对所述预测试结果和所述M次预测试启动的测试机器人的数量进行预处理,得到二维数组;
建立回归模型;
将所述二维数组作为所述回归模型的输入,进行模型训练;
对所述回归模型进行评估;
将所述目标功能预期的测试目标值作为所述回归模型的自变量,得到所述测试机器人的第一预估数量。
可选的,所述测试模块11具体用于:
根据所述测试服务器的第二预估数量,向所述云服务系统申请目标测试服务器;
根据所述测试机器人的第一预估数量通过负载均衡的方式,向所述目标测试服务器发送测试任务,所述测试任务中包括所述目标测试服务器上启动的测试机器人的数量和所述目标功能的测试用例脚本。
可选的,所述测试模块11还用于:
当启动所述第一预估数量的测试机器人,所述目标功能没有达到预期的测试目标值时,添加测试机器人直至目标功能达到预期的测试目标值或者测试时间超过预设的最大测试时长。
本实施例提供的游戏服务器的压测装置,可用于执行上述实施例一的方法,具体实现方式和技术效果类似,请参照上述方法实施例,此处不再赘述。
图4为本发明实施例三提供的控制服务器的结构示意图,如图4所示,本实施例提供的控制服务器,包括:处理器21、存储器22和收发器23,所述存储器22用于存储指令,所述收发器23用于和其他设备通信,所述处理器21用于执行所述存储器22中存储的指令,以使所述控制服务器执行如上述实施例一的方法,具体实现方式和技术效果类似,这里不再赘述。
本发明实施例四提供一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如上述实施例一所述的方法,具体实现方式和技术效果类似,这里不再赘述。
应理解,上述实施例中,处理器可以是中央处理单元(英文:Central ProcessingUnit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital SignalProcessor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种游戏服务器的压测方法,其特征在于,包括:
控制服务器向云服务系统申请N个测试服务器;
所述控制服务器将目标功能的测试用例脚本发送给所述N个测试服务器;
针对每次预测试,所述控制服务器在所述N个测试服务器上启动预设数量的测试机器人;
所述控制服务器接收所述游戏服务器发送的预测试结果,所述预测试结果中包括M次预测试过程中游戏服务器的性能数据,所述M次预测试启动的测试机器人的数量不同,所述测试机器人用于执行所述目标功能的测试用例,所述测试机器人与所述游戏服务器通信,M为大于或等于2的整数;
所述控制服务器通过线性回归方法对所述预测试结果进行处理,确定达到所述目标功能预期的测试目标值需要的测试机器人的第一预估数量;
所述控制服务器根据所述测试机器人的第一预估数量,确定达到所述目标功能预期的测试目标值需要的测试服务器的第二预估数量;
所述控制服务器根据所述测试服务器的第二预估数量和所述测试机器人的第一预估数量,向云服务系统申请测试服务器进行测试;
所述控制服务器接收所述游戏服务器发送的所述游戏服务器的性能数据。
2.根据权利要求1所述的方法,其特征在于,所述控制服务器通过线性回归方法对所述预测试结果进行处理,确定达到所述目标功能预期的测试目标值时需要的测试机器人的第一预估数量,包括:
所述控制服务器对所述预测试结果和所述M次预测试启动的测试机器人的数量进行预处理,得到二维数组;
所述控制服务器建立回归模型;
所述控制服务器将所述二维数组作为所述回归模型的输入,进行模型训练;
所述控制服务器对所述回归模型进行评估;
所述控制服务器将所述目标功能预期的测试目标值作为所述回归模型的自变量,得到所述测试机器人的第一预估数量。
3.根据权利要求2所述的方法,其特征在于,所述控制服务器根据所述测试服务器的第二预估数量和所述测试机器人的第一预估数量,向云服务系统申请测试服务器进行测试,包括:
所述控制服务器根据所述测试服务器的第二预估数量,向所述云服务系统申请目标测试服务器;
所述控制服务器根据所述测试机器人的第一预估数量通过负载均衡的方式,向所述目标测试服务器发送测试任务,所述测试任务中包括所述目标测试服务器上启动的测试机器人的数量和所述目标功能的测试用例脚本。
4.根据权利要求1所述的方法,其特征在于,还包括:
当启动所述第一预估数量的测试机器人,所述目标功能没有达到预期的测试目标值时,所述控制服务器添加测试机器人直至目标功能达到预期的测试目标值或者测试时间超过预设的最大测试时长。
5.一种游戏服务器的压测装置,其特征在于,包括:
测试模块,用于对待测试的目标功能进行M次预测试,得到预测试结果,所述预测试结果中包括所述M次预测试过程中游戏服务器的性能数据,所述M次预测试启动的测试机器人的数量不同,所述测试机器人用于执行所述目标功能的测试用例,所述测试机器人与所述游戏服务器通信,M为大于或等于2的整数;
压力预估模块,用于通过线性回归方法对所述预测试结果进行处理,确定达到所述目标功能预期的测试目标值需要的测试机器人的第一预估数量;
计算模块,用于根据所述测试机器人的第一预估数量,确定达到所述目标功能预期的测试目标值需要的测试服务器的第二预估数量;
所述测试模块,还用于根据所述测试服务器的第二预估数量和所述测试机器人的第一预估数量,向云服务系统申请测试服务器进行测试;
接收模块,用于接收所述游戏服务器发送的所述游戏服务器的性能数据;
所述测试模块具体用于:向所述云服务系统申请N个测试服务器;将所述目标功能的测试用例脚本发送给所述N个测试服务器;针对每次预测试,在所述N个测试服务器上启动预设数量的测试机器人;接收所述游戏服务器发送的所述预测试结果。
6.根据权利要求5所述的装置,其特征在于,所述压力预估模块具体用于:
对所述预测试结果和所述M次预测试启动的测试机器人的数量进行预处理,得到二维数组;
建立回归模型;
将所述二维数组作为所述回归模型的输入,进行模型训练;
对所述回归模型进行评估;
将所述目标功能预期的测试目标值作为所述回归模型的自变量,得到所述测试机器人的第一预估数量。
7.根据权利要求6所述的装置,其特征在于,所述测试模块具体用于:
根据所述测试服务器的第二预估数量,向所述云服务系统申请目标测试服务器;
根据所述测试机器人的第一预估数量通过负载均衡的方式,向所述目标测试服务器发送测试任务,所述测试任务中包括所述目标测试服务器上启动的测试机器人的数量和所述目标功能的测试用例脚本。
8.根据权利要求5所述的装置,其特征在于,所述测试模块还用于:
当启动所述第一预估数量的测试机器人,所述目标功能没有达到预期的测试目标值时,添加测试机器人直至目标功能达到预期的测试目标值或者测试时间超过预设的最大测试时长。
9.一种控制服务器,其特征在于,包括:处理器、存储器和收发器,所述存储器用于存储指令,所述收发器用于和其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述控制服务器执行如权利要求1-4任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811289996.7A CN109460348B (zh) | 2018-10-31 | 2018-10-31 | 游戏服务器的压测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811289996.7A CN109460348B (zh) | 2018-10-31 | 2018-10-31 | 游戏服务器的压测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109460348A CN109460348A (zh) | 2019-03-12 |
CN109460348B true CN109460348B (zh) | 2022-02-22 |
Family
ID=65609318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811289996.7A Active CN109460348B (zh) | 2018-10-31 | 2018-10-31 | 游戏服务器的压测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109460348B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688301B (zh) * | 2019-08-22 | 2021-03-02 | 浙江口碑网络技术有限公司 | 服务器测试方法、装置、存储介质及计算机设备 |
CN110677321B (zh) * | 2019-09-25 | 2021-09-17 | 广州通导信息技术服务有限公司 | 一种弹性伸缩的云压测方法、装置、设备及存储介质 |
CN111666197B (zh) * | 2020-06-05 | 2024-05-24 | 北京百度网讯科技有限公司 | 压力测试方法和装置、电子设备以及计算机可读介质 |
CN112100067B (zh) * | 2020-09-10 | 2023-08-25 | 北京完美赤金科技有限公司 | 一种基于回归分析的测试方法、系统及存储介质 |
CN112506751B (zh) * | 2020-11-27 | 2022-11-18 | 浪潮电子信息产业股份有限公司 | 一种服务器整机性能的对比测试方法、装置、设备及介质 |
CN112799950A (zh) * | 2021-02-04 | 2021-05-14 | 北京中交兴路信息科技有限公司 | 后台服务的负载能力测试系统、方法、存储介质及电子设备 |
CN113704038B (zh) * | 2021-09-03 | 2024-01-23 | 广州因陀罗软件有限公司 | 一种自动化游戏服务器压测方法及系统 |
CN114615171B (zh) * | 2022-03-16 | 2024-01-30 | 网易(上海)网络有限公司 | 云游戏服务器的压测处理方法、设备、介质及程序产品 |
CN117194131B (zh) * | 2023-11-06 | 2024-02-27 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106971297A (zh) * | 2016-01-13 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种离线支付方法、装置及系统 |
CN105959177B (zh) * | 2016-04-26 | 2018-12-11 | 网易(杭州)网络有限公司 | 一种游戏服务器压力测试脚本的生成方法和装置 |
CN107102935A (zh) * | 2017-03-01 | 2017-08-29 | 网易(杭州)网络有限公司 | 一种服务器压力测试方法及装置 |
CN107015892B (zh) * | 2017-03-30 | 2020-11-03 | 腾讯科技(深圳)有限公司 | 一种压力测试方法、装置和系统 |
CN108376112B (zh) * | 2018-02-09 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 压力测试方法、装置及可读介质 |
-
2018
- 2018-10-31 CN CN201811289996.7A patent/CN109460348B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109460348A (zh) | 2019-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109460348B (zh) | 游戏服务器的压测方法和装置 | |
CN106294120B (zh) | 测试代码的方法、设备和计算机程序产品 | |
GB2587765A (en) | Auto tuner for cloud micro services embeddings | |
US6434513B1 (en) | Method of load testing web applications based on performance goal | |
US10838840B2 (en) | Generating different workload types for cloud service testing | |
CN110618924B (zh) | 一种web应用系统的链路压力测试方法 | |
US11086752B2 (en) | Methods, systems, and computer readable media for vendor-neutral testing and scoring of systems under test | |
CN108075951B (zh) | 一种基于玩家分布的服务器压力测试方法和装置 | |
WO2022120717A1 (zh) | 仿真任务调度方法、执行方法、仿真实现方法及装置 | |
CN114564374A (zh) | 算子性能评估方法、装置、电子设备及存储介质 | |
CN108052444A (zh) | 一种用于移动应用的性能测试的方法与装置 | |
CN109324962A (zh) | 一种基于云物联技术的应用程序的测试方法及设备 | |
WO2017142393A1 (en) | System for managing user experience test in controlled test environment and method thereof | |
CN113342515A (zh) | 一种无服务器计算资源选择方法、装置、设备及存储介质 | |
US7478018B1 (en) | System and methods for network call load simulation | |
EP4152715A1 (en) | Method and apparatus for determining resource configuration of cloud service system | |
CN113448730A (zh) | 服务的处理方法、装置、计算机设备及存储介质 | |
CN109918275A (zh) | 一种实现对服务器性能进行压力测试的方法、装置及系统 | |
CN111061618B (zh) | 云平台仿真系统、云平台性能测试方法和计算机设备 | |
CN106648895A (zh) | 一种处理数据的方法、装置及终端 | |
Vedam et al. | Demystifying cloud benchmarking paradigm-an in depth view | |
US20130282337A1 (en) | Performance evaluation device and performance evaluation method | |
CN115037665B (zh) | 设备测试方法和装置 | |
US20180203628A1 (en) | Method, apparatus and computer program product for evaluating data storage systems for energy efficiency | |
Suffian et al. | The design and execution of performance testing strategy for cloud-based system |
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 |