一种服务器压力测试方法及装置制造方法及图纸

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

【技术实现步骤摘要】
一种服务器压力测试方法及装置
本专利技术实施例涉及计算机
,具体涉及一种服务器压力测试方法及装置。
技术介绍
大型网络游戏上线前都有压力测试的需求,通常需要使用特殊工具来模拟海量玩家同时对服务器进行施压,以验证服务器面对高负载的性能和稳定性。现有技术中虽然有一些可以进行压力测试的成熟工具,如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具体包括:通过控制台程序对各负载单元进行实时管理,执行所述测试需求对应的服务器压力测试。通过对各负载单元进行实时管理,能够及时满足用户的测试需求。举例来说,如本文档来自技高网...

【技术保护点】
1.一种服务器压力测试方法,其特征在于,包括:根据三层测试结构将用户的测试需求拆分为模组、策略和行为;对分布式部署的各负载单元加载对应的模组;通过控制台程序对各负载单元进行管理,执行所述测试需求对应的服务器压力测试;其中,每个模组管理若干个策略,每个策略管理若干个行为。

【技术特征摘要】
1.一种服务器压力测试方法,其特征在于,包括:根据三层测试结构将用户的测试需求拆分为模组、策略和行为;对分布式部署的各负载单元加载对应的模组;通过控制台程序对各负载单元进行管理,执行所述测试需求对应的服务器压力测试;其中,每个模组管理若干个策略,每个策略管理若干个行为。2.根据权利要求1所述的方法,其特征在于,所述通过控制台程序对各负载单元进行管理,执行所述测试需求对应的服务器压力测试,具体包括:通过控制台程序对各负载单元进行管理,并通过ymal配置脚本将各负载单元对应的模组组装成测试实例,并执行所述测试实例进行服务器压力测试。3.根据权利要求1所述的方法,其特征在于,所述控制台程序包括若干个接口,所述若干个接口用于与扩展程序连接。4.根据权利要求1所述的方法,其特征在于,所述通过控制台程序对各负载单元进行管理,执行所述测试需求对应的服务器压力测试,具体包括:通过控制台程序对各负载单元进行实时管理,执行所述测试需求对应的服务器压力测试。5.一种服务器压力测试装置,其特征在于,包括:需求拆分模块,用于根据三层测试结构将用户的测试需求拆分为模组、策略和行为;模组加载模块,用于对分布式部...

【专利技术属性】
技术研发人员:严越
申请(专利权)人:天津龙拳风暴科技有限公司
类型:发明
国别省市:天津,12

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

1