CN109344059B - 一种服务器压力测试方法及装置 - Google Patents

一种服务器压力测试方法及装置 Download PDF

Info

Publication number
CN109344059B
CN109344059B CN201811102426.2A CN201811102426A CN109344059B CN 109344059 B CN109344059 B CN 109344059B CN 201811102426 A CN201811102426 A CN 201811102426A CN 109344059 B CN109344059 B CN 109344059B
Authority
CN
China
Prior art keywords
test
load unit
module
program
modules
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
CN201811102426.2A
Other languages
English (en)
Other versions
CN109344059A (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.)
Tianjin Dragon Punch Storm Technology Co ltd
Original Assignee
Tianjin Dragon Punch Storm Technology 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 Tianjin Dragon Punch Storm Technology Co ltd filed Critical Tianjin Dragon Punch Storm Technology Co ltd
Priority to CN201811102426.2A priority Critical patent/CN109344059B/zh
Publication of CN109344059A publication Critical patent/CN109344059A/zh
Application granted granted Critical
Publication of CN109344059B publication Critical patent/CN109344059B/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/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明实施例公开了一种服务器压力测试方法及装置,方法包括:根据三层测试结构将用户的测试需求拆分为模组、策略和行为;对分布式部署的各负载单元加载对应的模组;通过控制台程序对各负载单元进行管理,执行所述测试需求对应的服务器压力测试;其中,每个模组管理若干个策略,每个策略管理若干个行为。本发明实施例通过将用户的测试需求拆分为模组、策略和行为这三层测试结构,不同组件任意组合,可满足不同网络协议和通讯方式的服务器的压力测试需要;通过控制台程序对测试程序进行管理,管理更为高效;并通过分布式集群化部署,可以满足更大规模的测试要求。

Description

一种服务器压力测试方法及装置
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种服务器压力测试方法及装置。
背景技术
大型网络游戏上线前都有压力测试的需求,通常需要使用特殊工具来模拟海量玩家同时对服务器进行施压,以验证服务器面对高负载的性能和稳定性。
现有技术中虽然有一些可以进行压力测试的成熟工具,如LoadRunner、JMeter等,但通常都是面向Web服务,难以满足游戏服务器的以下业务特征:高复杂性,游戏业务的逻辑复杂性比传统Web业务高很多,难以通过简单的脚本录制实现业务覆盖;强状态,游戏业务对于状态的依赖很大,需要测试工具能够建立并且管理状态(登录、在线、玩家信息等);强交互,游戏业务有很多交互机制,要求测试工具能够管理人机(用户和系统)、人人(不同用户之间)的行为关联;实时反馈,测试工具不仅需要单方面施压,还需要能根据服务器的反馈进行应对。
因此,游戏公司一般会自行编写适合自己游戏的压力测试工具。然而大部分游戏项目的压力测试工具和测试方法都有很多局限性,包括:通用性不强,只能服务于一个游戏,难以复用;操作不便,甚至无法在运行中操作和控制,无法即时调整策略;测试模型没有经过良好抽象,经常难以满足扩展需要;压力测试需要统筹大量的测试资源,一般的测试工具无法做到这一点,只能人工安排和干预,费时费力。
发明内容
由于现有方法存在上述问题,本发明实施例提出一种服务器压力测试方法及装置。
第一方面,本发明实施例提出一种服务器压力测试方法,包括:
根据三层测试结构将用户的测试需求拆分为模组、策略和行为;
对分布式部署的各负载单元加载对应的模组;
通过控制台程序对各负载单元进行管理,执行所述测试需求对应的服务器压力测试;
其中,每个模组管理若干个策略,每个策略管理若干个行为。
可选地,所述通过控制台程序对各负载单元进行管理,执行所述测试需求对应的服务器压力测试,具体包括:
通过控制台程序对各负载单元进行管理,并通过ymal配置脚本将各负载单元对应的模组组装成测试实例,并执行所述测试实例进行服务器压力测试。
可选地,所述控制台程序包括若干个接口,所述若干个接口用于与扩展程序连接。
可选地,所述通过控制台程序对各负载单元进行管理,执行所述测试需求对应的服务器压力测试,具体包括:
通过控制台程序对各负载单元进行实时管理,执行所述测试需求对应的服务器压力测试。
第二方面,本发明实施例还提出一种服务器压力测试装置,包括:
需求拆分模块,用于根据三层测试结构将用户的测试需求拆分为模组、策略和行为;
模组加载模块,用于对分布式部署的各负载单元加载对应的模组;
压力测试模块,用于通过控制台程序对各负载单元进行管理,执行所述测试需求对应的服务器压力测试;
其中,每个模组管理若干个策略,每个策略管理若干个行为。
可选地,所述压力测试模块具体用于:
通过控制台程序对各负载单元进行管理,并通过ymal配置脚本将各负载单元对应的模组组装成测试实例,并执行所述测试实例进行服务器压力测试。
可选地,所述控制台程序包括若干个接口,所述若干个接口用于与扩展程序连接。
可选地,所述压力测试模块具体用于:
通过控制台程序对各负载单元进行实时管理,执行所述测试需求对应的服务器压力测试。
第三方面,本发明实施例还提出一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述方法。
第四方面,本发明实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述方法。
由上述技术方案可知,本发明实施例通过将用户的测试需求拆分为模组、策略和行为这三层测试结构,不同组件任意组合,可满足不同网络协议和通讯方式的服务器的压力测试需要;通过控制台程序对测试程序进行管理,管理更为高效;并通过分布式集群化部署,可以满足更大规模的测试要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明一实施例提供的一种服务器压力测试方法的流程示意图;
图2为本发明一实施例提供的一种服务器压力测试结构的示意图;
图3为本发明一实施例提供的一种服务器压力测试的实体关系示意图;
图4为本发明另一实施例提供的一种服务器压力测试方法的流程示意图;
图5为本发明一实施例提供的一种服务器压力测试装置的结构示意图;
图6为本发明一实施例提供的电子设备的逻辑框图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本实施例提供的一种服务器压力测试方法的流程示意图,包括:
S101、根据三层测试结构将用户的测试需求拆分为模组、策略和行为。
其中,每个模组管理若干个策略,每个策略管理若干个行为。
本实施例结合状态机和行为树的三层抽象模型,针对游戏业务特征,高度抽象测试模型,将测试需求拆分成模组、策略、行为等多层结构,可对不同组件进行任意组合,提供功能强大的基础模型,可满足不同网络协议和通讯方式的游戏服务器的压力测试需要。
S102、对分布式部署的各负载单元加载对应的模组。
对各负载单元采用分布式集群化部署,以满足更大规模的测试要求。
S103、通过控制台程序对各负载单元进行管理,执行所述测试需求对应的服务器压力测试;
所述控制台程序包括若干个接口,所述若干个接口用于与扩展程序连接。
本实施例中的核心程序通过Java开发,分为Rider(负载单元)、Console(控制台程序)两个应用程序,结合python进行开发,依赖类库:akka-actor、akka-cluster、netty、amqp、jackson,采用通用多接口、集群化部署的测试工具集,是一款高可用性和可扩展性的游戏服务器压测工具,可以满足当前和未来的各项目测试需要,且部署和使用简单,并可以通过控制台程序对测试程序进行实时管理。
本实施例通过将用户的测试需求拆分为模组、策略和行为这三层测试结构,不同组件任意组合,可满足不同网络协议和通讯方式的服务器的压力测试需要;通过控制台程序对测试程序进行管理,管理更为高效;并通过分布式集群化部署,可以满足更大规模的测试要求。
进一步地,在上述方法实施例的基础上,S103具体包括:
通过控制台程序对各负载单元进行管理,并通过ymal配置脚本将各负载单元对应的模组组装成测试实例,并执行所述测试实例进行服务器压力测试。
具体地,使用yaml配置测试脚本,akka-conf配置集群,maven发布管理,集成了多种网络组件、基本策略和行为单元,可以通过ymal配置脚本将其组装成需要的测试实例,还可以对以上接口进行更多的扩展;且采用Actor模型作为底层实现,可以充分且高效的利用计算资源,并且容错性很高。
进一步地,在上述方法实施例的基础上,S103具体包括:
通过控制台程序对各负载单元进行实时管理,执行所述测试需求对应的服务器压力测试。
通过对各负载单元进行实时管理,能够及时满足用户的测试需求。
举例来说,如图2所示为本实施例提供的一种服务器压力测试结构的示意图,包括3个服务器,每个服务器对应多个机器人群组,通过不同的策略模拟机器人的不同行为。
在本实施例中,服务器压力测试的实体关系示意图如图3所示,包括3个框架层次:机器人集群、机器人群组和机器人个体,其中机器人集群管理机器人群组,机器人群组包含机器人个体,机器人集群的属性包括物理地址,机器人群组的属性包括区段和统计数据采集,机器人个体的属性包括编号和网络连接;对应地,包括3个业务层次:集群配置、测试策略和测试行为,其中集群配置组装测试策略,测试策略组装测试行为,三者分别包含不同的属性:规模、运行时间、后续行为、执行时间和执行操作,如图3所示。
图4示出了服务器压力测试方法的流程示意图,启动后登录或初始化连接,计算下一条行为,执行行为停止或完成后,断开链接,销毁自身;如果执行行为未停止,则调度下次逻辑心跳,通过调度器触发调度,再循环计算下一条行为。
图5示出了本实施例提供的一种服务器压力测试装置的结构示意图,所述装置包括:需求拆分模块501、模组加载模块502和压力测试模块503,其中:
所述需求拆分模块501用于根据三层测试结构将用户的测试需求拆分为模组、策略和行为;
所述模组加载模块502用于对分布式部署的各负载单元加载对应的模组;
所述压力测试模块503用于通过控制台程序对各负载单元进行管理,执行所述测试需求对应的服务器压力测试;
其中,每个模组管理若干个策略,每个策略管理若干个行为。
具体地,所述需求拆分模块501根据三层测试结构将用户的测试需求拆分为模组、策略和行为;所述模组加载模块502对分布式部署的各负载单元加载对应的模组;所述压力测试模块503通过控制台程序对各负载单元进行管理,执行所述测试需求对应的服务器压力测试。
本实施例通过将用户的测试需求拆分为模组、策略和行为这三层测试结构,不同组件任意组合,可满足不同网络协议和通讯方式的服务器的压力测试需要;通过控制台程序对测试程序进行管理,管理更为高效;并通过分布式集群化部署,可以满足更大规模的测试要求。
进一步地,在上述方法实施例的基础上,所述压力测试模块503具体用于:
通过控制台程序对各负载单元进行管理,并通过ymal配置脚本将各负载单元对应的模组组装成测试实例,并执行所述测试实例进行服务器压力测试。
进一步地,在上述方法实施例的基础上,所述控制台程序包括若干个接口,所述若干个接口用于与扩展程序连接。
进一步地,在上述方法实施例的基础上,所述压力测试模块503具体用于:
通过控制台程序对各负载单元进行实时管理,执行所述测试需求对应的服务器压力测试。
本实施例所述的服务器压力测试装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
参照图6,所述电子设备,包括:处理器(processor)601、存储器(memory)602和总线603;
其中,
所述处理器601和存储器602通过所述总线603完成相互间的通信;
所述处理器601用于调用所述存储器602中的程序指令,以执行上述各方法实施例所提供的方法。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (4)

1.一种服务器压力测试方法,其特征在于,包括:
根据三层测试结构将用户的测试需求拆分为模组、策略和行为;
对分布式部署的各负载单元加载对应的模组;
通过控制台程序对各负载单元进行实时管理,并通过yaml配置脚本将各负载单元对应的模组组装成测试实例,并执行所述测试实例进行游戏服务器压力测试;
其中,每个模组管理若干个策略,每个策略管理若干个行为;所述控制台程序包括若干个接口,所述若干个接口用于与扩展程序连接。
2.一种服务器压力测试装置,其特征在于,包括:
需求拆分模块,用于根据三层测试结构将用户的测试需求拆分为模组、策略和行为;
模组加载模块,用于对分布式部署的各负载单元加载对应的模组;
压力测试模块,用于通过控制台程序对各负载单元进行实时管理,并通过yaml配置脚本将各负载单元对应的模组组装成测试实例,并执行所述测试实例进行游戏服务器压力测试;
其中,每个模组管理若干个策略,每个策略管理若干个行为;所述控制台程序包括若干个接口,所述若干个接口用于与扩展程序连接。
3.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1所述的方法。
4.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行如权利要求1所述的方法。
CN201811102426.2A 2018-09-20 2018-09-20 一种服务器压力测试方法及装置 Active CN109344059B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811102426.2A CN109344059B (zh) 2018-09-20 2018-09-20 一种服务器压力测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811102426.2A CN109344059B (zh) 2018-09-20 2018-09-20 一种服务器压力测试方法及装置

Publications (2)

Publication Number Publication Date
CN109344059A CN109344059A (zh) 2019-02-15
CN109344059B true CN109344059B (zh) 2023-04-11

Family

ID=65306279

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811102426.2A Active CN109344059B (zh) 2018-09-20 2018-09-20 一种服务器压力测试方法及装置

Country Status (1)

Country Link
CN (1) CN109344059B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110688301B (zh) * 2019-08-22 2021-03-02 浙江口碑网络技术有限公司 服务器测试方法、装置、存储介质及计算机设备
CN114020575A (zh) * 2021-11-10 2022-02-08 支付宝(杭州)信息技术有限公司 用于将产品接入监控系统的方法、装置及异构系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066375A (zh) * 2015-11-20 2017-08-18 通用电气公司 安全关键软件自动化基于需求的测试实例生成系统和方法
CN108345532A (zh) * 2017-01-23 2018-07-31 中国移动通信集团浙江有限公司 一种自动化测试用例生成方法和装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6983400B2 (en) * 2002-05-16 2006-01-03 Sun Microsystems Inc. Distributed test harness model
US8930758B2 (en) * 2012-01-16 2015-01-06 Siemens Aktiengesellschaft Automated testing of mechatronic systems
CN102866944B (zh) * 2012-06-12 2015-04-29 中国联合网络通信集团有限公司 一种压力测试系统及方法
CN102981951B (zh) * 2012-11-01 2016-03-09 珠海金山网络游戏科技有限公司 云测试开发平台及云测试开发方法
IN2013CH04617A (zh) * 2013-10-14 2015-04-24 Cognizant Technology Solutions India Pvt Ltd
US9298597B2 (en) * 2014-06-17 2016-03-29 International Business Machines Corporation Automated testing of websites based on mode
CN104077230B (zh) * 2014-07-11 2017-01-18 百度在线网络技术(北京)有限公司 在分布式系统上执行压力测试的方法以及装置
CN107608901B (zh) * 2017-10-20 2019-12-31 京东数字科技控股有限公司 基于Jmeter的测试方法及装置、存储介质、电子设备
CN107992418A (zh) * 2017-12-05 2018-05-04 郑州云海信息技术有限公司 一种提高软件测试稳定性的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066375A (zh) * 2015-11-20 2017-08-18 通用电气公司 安全关键软件自动化基于需求的测试实例生成系统和方法
CN108345532A (zh) * 2017-01-23 2018-07-31 中国移动通信集团浙江有限公司 一种自动化测试用例生成方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
许蕾等.一种面向用户需求的Web服务测试方法.《计算机学报》.2014,全文. *
邹明.组合测试用例生成技术研究.中国优秀硕士论文 信息科技.2013,全文. *

Also Published As

Publication number Publication date
CN109344059A (zh) 2019-02-15

Similar Documents

Publication Publication Date Title
Peng et al. Comparison of several cloud computing platforms
Dantas et al. An availability model for eucalyptus platform: An analysis of warm-standy replication mechanism
EP2614436B1 (en) Controlled automatic healing of data-center services
US9218231B2 (en) Diagnosing a problem of a software product running in a cloud environment
CN108737168B (zh) 一种基于容器的微服务架构应用自动构建方法
Koslovski et al. Reliability support in virtual infrastructures
Vayghan et al. Kubernetes as an availability manager for microservice applications
CN100589422C (zh) 一种仿真单板及其仿真方法
US10795735B1 (en) Method and apparatus for load balancing virtual data movers between nodes of a storage cluster
CN107666493B (zh) 一种数据库配置方法及其设备
CN103369054A (zh) 一种采集任务管理方法及系统
CN109344059B (zh) 一种服务器压力测试方法及装置
CN112527647B (zh) 基于NS-3的Raft共识算法测试系统
CN105653401A (zh) 应用系统灾备、运维、监控和应急启停调度方法及装置
CN111813495A (zh) 节点测试方法和装置、存储介质和电子装置
CN103995772A (zh) 一种基于linux操作系统的raid卡日志完整保存的方法
JP5949785B2 (ja) 情報処理方法、装置及びプログラム
CN110750445A (zh) 一种yarn组件高可用性功能的测试方法、系统及设备
CN111259066A (zh) 服务器集群数据同步方法及装置
CN114610440A (zh) 模拟机系统的运行环境构建方法及系统
CN114510317A (zh) 虚拟机管理方法、装置、设备及存储介质
CN110071918A (zh) 一种基于混合云的数据通信方法及装置
CN105827744A (zh) 云存储平台的数据处理方法
CN102196016B (zh) 控制跨服务器的服务的执行
CN110868330B (zh) 云平台可划分cpu资源的评估方法、装置及评估系统

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