System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及性能测试,尤其涉及一种基于jmeter集群的压力测试方法、装置、计算机设备及存储介质。
技术介绍
1、目前jmeter(基于java开发的压力测试工具,用于对软件做压力测试)作为使用最广泛的性能测试工具,已经被很多企业运用到实际环境中。企业往往会搭建jmeter集群方式进行压测,即由jmeter主控节点将大量并发请求分配给多台从压力机,压测完后主控节点再进行结果汇总。但原生的主从集群模式存在性能瓶颈,并且需要大量人工部署,会带来运维管理方面的困难。目前,此类jmeter集群压测技术方案尚存在一些不足之处:
2、1.现有技术方案本质都是主从集群模式,多个从节点将测试结果实时同步发送到主节点计算,会造成大量的带宽消耗和单点瓶颈,无法支持大规模性能测试。
3、2.主从集群都需要预先创建,造成资源浪费。如果从节点硬件性能差别过大,也没法控制不同节点的压力分配来减轻某些节点的压力。因为从节点只有发压功能,没有差异控制功能,线程设置为多大,每个节点就都复用一样的配置,资源得不到合理利用。
4、3.主从集群方案部署繁琐,除了考虑端口因素,还要考虑版本一致性,插件依赖包一致性。其中一个节点崩溃,就可能导致整个压测任务失败(因为要保证调度和主从数据的一致性),并且压测依赖数据无法统一管理和留存,管理上会造成不便和混乱。
5、上述问题将导致jmeter集群压测服务资源浪费以及压测规模受限,因此如何提高jmeter集群压测服务的资源利用率以及扩大压测服务规模成为了亟需解决的问题。
/>技术实现思路
1、本申请提供了一种基于jmeter集群的压力测试方法、装置、计算机设备及存储介质,以提高jmeter集群压测服务的资源利用率以及扩大压测服务规模。
2、第一方面,本申请提供了一种基于jmeter集群的压力测试方法,所述方法包括:
3、在所述控制节点接收到压测任务的启动指令时,基于各压测节点的资源信息,动态调整各所述压测节点的实际分配并发数;
4、基于所示实际分配并发数对初始压测脚本进行修改,获得目标压测脚本,并基于所述控制节点向所述压测节点分发压测数据以及所述目标压测脚本;
5、在所述压测节点接收到所述目标压测节点以及所述压测数据时,基于目标jmeter环境以及所述压测节点,执行所述压测任务,获得各所述压测节点的执行结果;
6、基于各所述压测节点的执行结果,获得所述压测任务的压测结果。
7、进一步地,所述基于各压测节点的资源信息,动态调整各所述压测节点的实际分配并发数,包括:
8、基于各所述压测节点的资源信息,获得各所述压测节点的并发上限,并将目标并发数与所述并发上限进行对比;
9、当所述目标并发数大于全部所述压测节点的并发上限时,生成压测节点资源不足提示;
10、当存在所述目标并发数不大于所述并发上限的压测节点时,基于所述目标并发数以及各所述压测节点的并发上限,获得各压测节点的实际分配并发数。
11、进一步地,所述在所述压测节点接收到所述目标压测节点以及所述压测数据时,基于目标jmeter环境以及所述压测节点,执行所述压测任务,获得各所述压测节点的执行结果之前,还包括:
12、基于所述预测节点确定所述目标jmeter环境是否存在;
13、若不存在所述目标jmeter环境,则从所述控制节点的控制中心下载所述目标jmeter环境,并解压到对应的目录中,以部署所述目标jmeter环境;
14、基于所述压测任务的标识,创建压测任务目录,以接收所述目标压测脚本以及所述压测数据。
15、进一步地,所述基于各所述压测节点的执行结果,获得所述压测任务的压测结果,包括:
16、基于所述压测节点对所述执行结果进行处理,获得结果数据,并将所述结果数据发送到所述控制节点;
17、基于所述控制节点,对所述压测任务的标识对应的结果数据进行处理,获得压测结果。
18、进一步地,所述基于所述压测节点对所述执行结果进行处理,获得结果数据,并将所述结果数据发送到所述控制节点,包括:
19、基于所述压测节点对所述执行结果进行分段,获得分段数据,并创建线程池对每个所述分段数据进行计算,获得各所述压测节点对应的结果数据;
20、基于消息队列,将各所述结果数据异步发送到所述控制节点。
21、进一步地,所述基于所述控制节点,对所述压测任务的标识对应的结果数据进行处理,获得压测结果,包括:
22、基于所述控制节点,将所述标识相同的结果数据进行合并;
23、当全部压测节点执行结束时,将合并后的结果数据写入压测结果分片文件;
24、基于所述控制节点对所述压测任务的全部压测结果分片文件进行汇总,获得所述压测结果。
25、进一步地,所述在所述控制节点接收到压测任务的启动指令时,基于各压测节点的资源信息,动态调整各所述压测节点的实际分配并发数之前,还包括:
26、基于用户操作,创建压测任务并确定所述压测任务对应的目标jmeter环境,并生成所述压测任务的启动指令。
27、第二方面,本申请还提供了一种基于jmeter集群的压力测试装置,所述装置包括:
28、实际分配并发数调整模块,用于在所述控制节点接收到压测任务的启动指令时,基于各压测节点的资源信息,动态调整各所述压测节点的实际分配并发数;
29、分发模块,用于基于所示实际分配并发数对初始压测脚本进行修改,获得目标压测脚本,并基于所述控制节点向所述压测节点分发压测数据以及所述目标压测脚本;
30、执行结果获得模块,用于在所述压测节点接收到所述目标压测节点以及所述压测数据时,基于目标jmeter环境以及所述压测节点,执行所述压测任务,获得各所述压测节点的执行结果;
31、压测结果获得模块,用于基于各所述压测节点的执行结果,获得所述压测任务的压测结果。
32、第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的基于jmeter集群的压力测试方法。
33、第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的基于jmeter集群的压力测试方法。
34、本申请公开了一种基于jmeter集群的压力测试方法、装置、计算机设备及存储介质,在所述控制节点接收到压测任务的启动指令时,基于各压测节点的资源信息,动态调整各所述压测节点的实际分配并发数;基于所示实际分配并发数对初始压测脚本进行修改,获得目标压测脚本,并基于所述控制节点向所述压测节点分发压测数据以及所述目标压测脚本;在所述压测节点接收到所述目标压测节点本文档来自技高网...
【技术保护点】
1.一种基于JMeter集群的压力测试方法,其特征在于,包括:
2.根据权利要求1所述的基于JMeter集群的压力测试方法,其特征在于,所述基于各压测节点的资源信息,动态调整各所述压测节点的实际分配并发数,包括:
3.根据权利要求1所述的基于JMeter集群的压力测试方法,其特征在于,所述在所述压测节点接收到所述目标压测节点以及所述压测数据时,基于目标JMeter环境以及所述压测节点,执行所述压测任务,获得各所述压测节点的执行结果之前,还包括:
4.根据权利要求1所述的基于JMeter集群的压力测试方法,其特征在于,所述基于各所述压测节点的执行结果,获得所述压测任务的压测结果,包括:
5.根据权利要求4所述的基于JMeter集群的压力测试方法,其特征在于,所述基于所述压测节点对所述执行结果进行处理,获得结果数据,并将所述结果数据发送到所述控制节点,包括:
6.根据权利要求4所述的基于JMeter集群的压力测试方法,其特征在于,所述基于所述控制节点,对所述压测任务的标识对应的结果数据进行处理,获得压测结果,包括:
< ...【技术特征摘要】
1.一种基于jmeter集群的压力测试方法,其特征在于,包括:
2.根据权利要求1所述的基于jmeter集群的压力测试方法,其特征在于,所述基于各压测节点的资源信息,动态调整各所述压测节点的实际分配并发数,包括:
3.根据权利要求1所述的基于jmeter集群的压力测试方法,其特征在于,所述在所述压测节点接收到所述目标压测节点以及所述压测数据时,基于目标jmeter环境以及所述压测节点,执行所述压测任务,获得各所述压测节点的执行结果之前,还包括:
4.根据权利要求1所述的基于jmeter集群的压力测试方法,其特征在于,所述基于各所述压测节点的执行结果,获得所述压测任务的压测结果,包括:
5.根据权利要求4所述的基于jmeter集群的压力测试方法,其特征在于,所述基于所述压测节点对所述执行结果进行处理,获得结果数据,并将所述结果数...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。