分布式压力测试系统和方法

文档序号:9646513阅读:967来源:国知局
分布式压力测试系统和方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其是涉及一种分布式压力测试系统和方法。
【背景技术】
[0002]应用在上线前,通常要进行性能测试,模拟实际场景找出性能瓶颈。单台测试服务器资源有限,无法满足测试一些复杂系统所需达到的并发峰值,所以就需要考虑协同多台测试服务器,以形成足够的并发压力,这就需要采用分布式压力测试方法,利用测试服务器集群产生模拟真实业务的压力对被测系统进行加压,分析被测系统在不同压力情况下的表现,找出其潜在的瓶颈。
[0003]然而,目前的分布式压力测试方法,测试服务器在执行测试任务时,缺乏安全机制,如果在外网环境下,测试过程中容易遇到外来不明请求(如病毒)的攻击,因此测试应用范围只能局限于同一操作系统和同一网络环境。

【发明内容】

[0004]本发明的主要目的在于提供一种分布式压力测试系统和方法,旨在提高测试系统的安全性,扩展测试应用范围。
[0005]为达以上目的,本发明提出一种分布式压力测试系统,包括控制服务器和由至少两个测试服务器组成的测试服务器集群,其中:
[0006]所述控制服务器,用于组建所述测试服务器集群,为所述测试服务器集群中的每一个测试服务器分配一个身份识别码;向所述测试服务器集群派发测试任务,为每一个测试任务分配一个密钥;
[0007]所述测试服务器集群,用于接收所述测试任务,判断所述测试任务的密钥与接收测试任务的测试服务器的身份识别码是否匹配,当二者匹配时执行所述测试任务,否则不予执行所述测试任务。
[0008]进一步地,还包括监控服务器,所述监控服务器用于:实时监控被测系统的负载状况和所述测试服务器不予执行所述测试任务的状况。
[0009]进一步地,所述监控服务器还用于:通过可视化视图实时展示监控结果。
[0010]进一步地,所述分布式压力测试系统基于JMeter工具进行压力测试。
[0011]进一步地,所述控制服务器还用于:设置JMeter线程数量和循环测试次数。
[0012]进一步地,所述控制服务器还用于:将本机加入所述测试服务器集群,为本机分配一个身份识别码,作为测试服务器执行测试任务。
[0013]本发明同时提出一种分布式压力测试方法,包括步骤:
[0014]控制服务器组建测试服务器集群,为所述测试服务器集群中的每一个测试服务器分配一个身份识别码,所述测试服务器集群由至少两个测试服务器组成;
[0015]所述控制服务器向所述测试服务器集群派发测试任务,为每一个测试任务分配一个密钥;
[0016]所述测试服务器集群接收所述测试任务,判断所述测试任务的密钥与接收所述测试任务的测试服务器的身份识别码是否匹配,当二者匹配时执行所述测试任务,否则不予执行所述测试任务。
[0017]进一步地,所述方法还包括:监控服务器实时监控被测系统的负载状况和所述测试服务器不予执行所述测试任务的状况。
[0018]进一步地,所述方法还包括:所述监控服务器通过可视化视图实时展示监控结果。
[0019]进一步地,所述方法还包括:所述控制服务器将本机加入所述测试服务器集群,为本机分配一个身份识别码,作为测试服务器执行测试任务。
[0020]本发明所提供的一种分布式压力测试系统,通过对测试任务进行验证,只有携带了密钥并匹配成功的测试任务才允许执行,避免了测试过程中遇到外来不明请求(如病毒)的攻击,使得分布式测试过程更加安全,强化了整个测试系统或框架的安全性、稳定性以及健壮性。由于对测试任务的验证可在外网环境测试中起到保护盾的作用,可以避免受到外来不明请求(如病毒)的攻击,因此本发明的测试系统不再局限于同一操作系统和同一网络环境,扩展了测试应用范围,还可以应用于任何跨网络、跨区域、跨操作系统的测试,被测对象可分布在不同环境的测试,如被测对象环境可以为内外网测试、window操作系统与linux系统的测试等等。
【附图说明】
[0021]图1是本发明的分布式压力测试系统第一实施例的模块示意图;
[0022]图2是图1的分布式压力测试系统进行压力测试时各服务器的交互示意图;
[0023]图3是本发明的分布式压力测试系统第二实施例的模块示意图;
[0024]图4是图3中的分布式压力测试系统进行压力测试时各服务器的交互示意图;
[0025]图5是本发明的分布式压力测试方法第一实施例的流程图;
[0026]图6是本发明的分布式压力测试方法第二实施例的流程图。
[0027]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0028]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0029]参见图1、图2,提出本发明的分布式压力测试系统第一实施例,所述系统包括控制服务器和测试服务器集群,所述测试服务器集群由至少两个测试服务器组成。所述系统基于压力测试工具进行压力测试,系统中的每一台服务器上均安装有压力测试工具,其中最典型的压力测试工具为JMeter工具。
[0030]控制服务器:用于利用压力测试工具组建测试服务器集群,为测试服务器集群中的每一个测试服务器分配一个身份识别码(ID)。然后解释测试计划,获得需要执行的任务列表,根据测试执行时间向测试服务器集群派发测试任务,并为每一个测试任务分配一个密钥,以此指定执行该任务的测试服务器,实现各测试服务器负载均衡。
[0031]测试完成后,控制服务器可收集集群中各测试服务器的测试情况,并汇总打印。控制服务器端的压力测试工具打印log日志,查看整个集群测试情况。
[0032]测试服务器集群:用于接收控制服务器派发的测试任务,对测试任务进行验证,判断该测试任务的密钥与接收测试任务的测试服务器的身份识别码是否匹配(如二者的数字是否相同),当二者匹配时则执行该测试任务,向被测系统发送请求,当二者不匹配时则不予执行该测试任务。其中,被测系统包括Web服务器、应用服务器、数据库服务器等。
[0033]从而,通过对测试任务进行验证,只有携带了密钥并匹配成功的测试任务才允许执行,避免了测试过程中遇到外来不明请求(如病毒)的攻击,使得分布式测试过程更加安全,强化了整个测试框架的安全性、稳定性以及健壮性。由于对测试任务的验证可在外网环境测试中起到保护盾的作用,可以避免受到外来不明请求(如病毒)的攻击,因此本发明的测试系统不再局限于同一操作系统和同一网络环境,还可以应用于任何跨网络、跨区域、跨操作系统的测试,被测对象可分布在不同环境的测试,如被测对象环境可以为内外网测试、window操作系统与linux系统的测试等等。
[0034]进一步地,当测试服务器数量不够,不能满足测试需求时,控制服务器还可以将本机加入测试服务器集群,为本机分配一个身份识别码,作为测试服务器执行测试任务。
[0035]进一步地,控制服务器还可以根据实际需要设置测试线程数量(如JMeter线程数量)和循环测试次数,如需进行负载测试,可连续运行几天,观察系统的负载情况。从而可满足目前大数据时代的测试,当系统实际场景处理并发数上万、十万、上百万甚至更多时,都可适用于本发明的分布式压力测试系统。当当前的测试服务器数量无法满足当前并发时,可无限拓展集群中的测试服务器来满足实际业务需求,灵活拓展,无需修改整体测试架构,方便、简单、快速,提高了测试效率。
[0036]参见图3、图4,提出本发明的分布式压力测试系统第二实施例,本实施例与第一实施例的区别是增加了一监控服务器,所述监控服务器用于实时监控被测系统的负载状况,如被测系统的内存、CPU、10等运行情况,还可以进一步监控测试任验证失败,测试服务器不予执行测试任务的状况。
[0037]进一步地,监控服务器还可以通过可视化视图实时展
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1