CN109406025B - 压力测试方法、装置及电子设备 - Google Patents
压力测试方法、装置及电子设备 Download PDFInfo
- Publication number
- CN109406025B CN109406025B CN201811201688.4A CN201811201688A CN109406025B CN 109406025 B CN109406025 B CN 109406025B CN 201811201688 A CN201811201688 A CN 201811201688A CN 109406025 B CN109406025 B CN 109406025B
- Authority
- CN
- China
- Prior art keywords
- press
- idle
- exclusive
- preset
- computing power
- 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
- G01—MEASURING; TESTING
- G01L—MEASURING FORCE, STRESS, TORQUE, WORK, MECHANICAL POWER, MECHANICAL EFFICIENCY, OR FLUID PRESSURE
- G01L5/00—Apparatus for, or methods of, measuring force, work, mechanical power, or torque, specially adapted for specific purposes
- G01L5/0028—Force sensors associated with force applying means
Landscapes
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Control Of Presses (AREA)
Abstract
本发明涉及一种压力测试方法、装置及电子设备。压力测试方法包括:从预设任务列表中选取目标任务,并获取执行目标任务所需的消耗算力;判断目标任务是否为独占任务;若是,则从预设施压机集群中选取承载算力之和大于或等于消耗算力的至少一个普通空闲施压机,作为独占空闲施压机;利用独占空闲施压机执行目标任务的脚本文件,获得压力测试结果,并将独占空闲施压机作为至少一个普通空闲施压机;若否,则从预设施压机集群中选取承载算力大于或等于消耗算力的普通空闲施压机,或剩余承载算力大于或等于消耗算力的非空闲施压机,作为非独占施压机;利用非独占施压机执行目标任务的脚本文件,获得压力测试结果。如此,便能够提高压力测试的整体效率。
Description
技术领域
本发明涉及计算机网络技术领域,具体而言,涉及一种压力测试方法、装置及电子设备。
背景技术
压力测试,是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患。目前,传统的压力测试平台如Ngrinder、Jmeter等在压力测试过程中,通常是一个施压机对应多个任务,但是每个施压机在同一执行时段只能执行对应的多个任务中的一个任务,如此,针对某个施压机,当该施压机对应的任务数量较多时,执行完这些任务所需的时长就会明显加长,从而严重影响压力测试的整体效率。
发明内容
有鉴于此,本发明实施例的目的在于提供一种压力测试方法、装置及电子设备,以有效改善上述问题。
本发明实施例提供的压力测试方法,包括:
从预设任务列表中选取目标任务,并获取执行所述目标任务所需的消耗算力;
判断所述目标任务是否为独占任务;
若所述目标任务为独占任务,则从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机;
利用所述独占空闲施压机执行所述目标任务的脚本文件,获得压力测试结果,并在获得所述压力测试结果之后,将所述独占空闲施压机作为至少一个普通空闲施压机;
若所述目标任务为非独占任务,则从预设施压机集群中选取承载算力大于或等于所述消耗算力的普通空闲施压机,作为非独占施压机,或从预设施压机集群中选取剩余承载算力大于或等于所述消耗算力的非空闲施压机,作为非独占施压机;
利用所述非独占施压机执行所述目标任务的脚本文件,获得压力测试结果。
进一步地,所述从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机之前,所述方法还包括:
判断所述预设施压机集群中是否具有承载算力之和大于或等于所述消耗算力的普通空闲施压机;
若所述预设施压机集群中具有承载算力之和大于或等于所述消耗算力的普通空闲施压机,则执行从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机的步骤;
若所述预设施压机集群中所有普通空闲施压机的承载算力之和小于所述消耗算力,则从所述预设施压机集群中选取至少一个非空闲施压机,作为目标非空闲施压机;
在所述目标非空闲施压机的剩余任务执行完成,以使所述目标非空闲施压机得到释放而作为普通空闲施压机之后,执行从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机的步骤。
进一步地,所述从所述预设施压机集群中选取至少一个非空闲施压机,作为目标非空闲施压机,包括:
按预设时间间隔对所述预设施压机集群中包括的非空闲施压机进行检测,以判断所述预设施压机集群中是否具有剩余任务执行完成的非空闲施压机;
若所述预设施压机集群中具有剩余任务执行完成的非空闲施压机,则将所述剩余任务执行完成的非空闲施压机作为待定非空闲施压机;
在所述待定非空闲施压机的承载算力与所述普通空闲施压机的承载算力之和大于或等于所述消耗算力时,将所述待定非空闲施压机作为所述目标非空闲施压机。
进一步地,所述从所述预设施压机集群中选取至少一个非空闲施压机,作为目标非空闲施压机,包括:
获取所述预设施压机集群中包括的非空闲施压机的剩余任务执行时间;
选取剩余任务执行时间最短,且承载算力与所述普通空闲施压机的承载算力之和大于或等于所述消耗算力的非空闲施压机,作为所述目标非空闲施压机。
进一步地,所述利用所述独占空闲施压机执行所述目标任务的脚本文件,获得压力测试结果,包括:
在所述独占空闲施压机的数量为多个时,根据多个所述独占空闲施压机的承载算力对所述独占任务进行分割,获得与多个所述独占空闲施压机一一对应的多个子独占任务;
针对每个所述子独占任务,利用与该子独占任务对应的所述独占空闲施压机执行该子独占任务的脚本文件,获得对应的子压力测试结果;
根据每个所述子独占任务对应的所述子压力测试结果,获得所述压力测试结果。
进一步地,所述从预设施压机集群中选取承载算力大于或等于所述消耗算力的普通空闲施压机,作为非独占施压机,或从预设施压机集群中选取剩余承载算力大于或等于所述消耗算力的非空闲施压机,作为非独占施压机,包括:
从预设施压机集群中选取承载算力大于或等于所述消耗算力,且承载算力与所述消耗算力差值最小的普通空闲施压机,作为非独占施压机,或从预设施压机集群中选取剩余承载算力大于或等于所述消耗算力,且剩余承载算力与所述消耗算力差值最小的非空闲施压机,作为非独占施压机。
进一步地,
所述从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机,包括:
从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机;
分别对所述至少一个普通空闲施压机进行标识,以将所述至少一个普通空闲施压机作为所述独占空闲施压机;
所述将所述独占空闲施压机作为至少一个普通空闲施压机,包括:
去除所述独占空闲施压机的标识,以将所述独占空闲施压机作为所述至少一个所述普通空闲施压机。
本发明实施例提供的压力测试装置,包括:
目标任务确定模块,用于从预设任务列表中选取目标任务,并获取执行所述目标任务所需的消耗算力;
目标任务判断模块,用于判断所述目标任务是否为独占任务;
独占空闲施压机确定模块,用于在所述目标任务为独占任务时,从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机;
第一压力测试模块,用于利用所述独占空闲施压机执行所述目标任务的脚本文件,获得压力测试结果,并在获得所述压力测试结果之后,将所述独占空闲施压机作为至少一个普通空闲施压机;
非独占施压机确定模块,用于在所述目标任务为非独占任务时,从预设施压机集群中选取承载算力大于或等于所述消耗算力的普通空闲施压机,作为非独占施压机,或从预设施压机集群中选取剩余承载算力大于或等于所述消耗算力的非空闲施压机,作为非独占施压机;
第二压力测试模块,用于利用所述非独占施压机执行所述目标任务的脚本文件,获得压力测试结果。
本发明实施例提供的电子设备,包括处理器、存储器和上述压力测试装置,所述压力测试装置包括一个或多个存储于所述存储器并由所述处理器执行的软件功能模块。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时,可实现上述压力测试方法
本发明实施例提供的压力测试方法、装置及电子设备,能够从预设任务列表中选取目标任务,并获取执行所述目标任务所需的消耗算力,判断所述目标任务是否为独占任务,在所述目标任务为独占任务时,从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机,利用所述独占空闲施压机执行所述目标任务的脚本文件,获得压力测试结果,并在获得所述压力测试结果之后,将所述独占空闲施压机作为普通空闲施压机,以及,在所述目标任务为非独占任务时,从预设施压机集群中选取承载算力大于或等于所述消耗算力的普通空闲施压机,或剩余承载算力大于或等于所述消耗算力的非空闲施压机,作为非独占施压机,利用所述非独占施压机执行所述目标任务的脚本文件,获得压力测试结果。如此,在从预设任务列表中选取目标任务之后,便能够快速的为所述目标任务选取到施压机,以利用选取的施压机执行所述目标任务的脚本文件,获得压力测试结果,有效地提高了压力测试的整体效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的电子设备的示意性结构框图。
图2为本发明实施例提供的一种压力测试方法的流程示意图。
图3为本发明实施例提供的一种压力测试装置的示意性结构框图。
图标:100-电子设备;110-压力测试装置;111-目标任务确定模块;112-目标任务判断模块;113-独占空闲施压机确定模块;114-第一压力测试模块;115-非独占施压机确定模块;116-第二压力测试模块;120-处理器;130-存储器。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
请参阅图1,为本发明实施例提供的一种应用压力测试方法及装置的电子设备100的示意性结构框图。进一步地,本发明实施例中,所述电子设备100包括压力测试装置110、处理器120和存储器130。
处理器120和存储器130之间直接或间接地电性连接,以实现数据的传输或交互,例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。压力测试装置110包括至少一个可以以软件或固件(Firmware)的形式存储在存储器130中或固化在电子设备100的操作系统(Operating System,OS)中的软件模块。处理器120用于执行存储器130中存储的可执行模块,例如,压力测试装置110所包括的软件功能模块及计算机程序等。处理器120可以在接收到执行指令后,执行计算机程序。
其中,处理器120可以是一种集成电路芯片,具有信号处理能力。处理器120也可以是通用处理器,例如,可以是数字信号处理器(DSP)、专用集成电路(ASIC)、分立门或晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。此外,通用处理器可以是微处理器或者任何常规处理器等。
存储器130可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦可编程序只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦编程只读存储器Electric Erasable Programmable Read-Only Memory,EEPROM)等。存储器130用于存储程序,处理器120在接收到执行指令后,执行该程序。
应当理解,图1所示的结构仅为示意,本发明实施例提供的电子设备100还可以具有比图1更少或更多的组件,或是具有与图1所示不同的配置。此外,图1所示的各组件可以通过软件、硬件或其组合实现。
请参阅图2,图2为本发明实施例提供的压力测试方法的流程示意图,该方法应用于图1所示的电子设备100。所应说明的是,本发明实施例提供的方法不以图2及以下所示的顺序为限制,以下结合图2对所述压力测试方法的具体流程及步骤进行详细阐述。
步骤S100,从预设任务列表中选取目标任务,并获取执行所述目标任务所需的消耗算力。
本发明实施例中,在获取到目标任务之后,可以提取出所述目标任务携带的算力表征数据,也即,所述消耗算力。算力,顾名思义,可以理解为计算能力,本发明实施例中,所述执行所述目标任务所需的消耗算力,即为施压机执行所述目标任务需占用的计算能力。此外,本发明实施例中,用于选取目标任务的模型位于Console调度集群,Console调度集群中的每个Cosole按预设时间间隔进行任务的选取。
进一步地,本发明实施例中,为避免多个Cosole在同一任务选取时间段选取到同一个任务,作为目标任务,可以采用分布式锁进行解决,也即,在某任务选取时间段,针对某个Cosole,该Cosole在从所述预设任务列表包括的多个任务中确定意向任务后,可以对该意向任务的前序上分布式锁,以避免其他Cosole选取该任务,作为目标任务,在该任务选取时间段的任务选取结束后,再释放分布式锁。
此外,本发明实施例中,在当前任务选取时间段结束后,为了避免下一任务选取时间段选取到的任务具有选取历史,而使得同一任务的脚本文件被施压机重复执行,可以在当前任务选取时间段结束之后,对所述预设任务列表进行更新,实际实施时,可以在所述预设任务列表中将在当前任务选取时间段被选取过的任务进行标识,或从所述预设任务列表中将在当前任务选取时间段被选取过的任务删除。
步骤S200,判断所述目标任务是否为独占任务。
本发明实施例中,从预设任务列表中选取到目标任务之后,可以提取出所述目标任务携带的任务类型表征数据,并根据所述任务类型表征数据,确定所述目标任务的类型。
其中,所述目标任务的类型包括独占任务和非独占任务。需要说明的是,本发明实施例中,所述独占任务,即为在执行时间段无法与其他任务共享施压机的任务,也即,当某施压机在执行某独占任务的脚本文件时,无法同时执行其他任务的脚本文件。相对的,所述非独占任务,即为在执行时间段可以与其他任务共享施压机的任务,也即,当某施压机在执行某非独占任务的脚本文件时,可以同时执行其他非独占任务的脚本文件。此外,本发明实施例中,所述施压机,即为用于执行任务的脚本文件并生成负载压力,以作为压力测试结果的代理服务器。
步骤S300,若所述目标任务为独占任务,则从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机。
本发明实施例中,所述普通空闲施压机的承载算力,即为普通空闲施压机的总计算能力。进一步地,本发明实施例中,从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机之后,可以分别对所述至少一个普通空闲施压机进行标识,以将所述至少一个普通空闲施压机作为所述独占空闲施压机。
此外,针对每台施压机,其承载算力可以根据自身资源进行转换获得。其中,施压机的资源包括CPU的主频和核数。进一步地,本发明实施例中,每施压机的承载算力可以根据自身CPU的主频和核数、标准算力机CPU的主频和核数,以及所述标准算力机的算力系数获得。
实际实施时,所述预设施压机集群中可能会包括多组承载算力之和大于或等于所述消耗算力的普通空闲施压机组合,而每组普通空闲施压机组合包括至少一个普通空闲施压机,这种情况下,为了提供给其他非独占任务更多的算力资源,可以选取包括的至少一个普通空闲施压机的承载算力之和与所述消耗算力的差值最小的普通空闲施压机组合,作为目标普通空闲施压机组合,并将所述目标普通空闲施压机组合包括的所有普通空闲施压机作为所述独占空闲施压机。
例如,目标任务1为独占任务,所述目标任务1的消耗算力为200,所述预设施压机集群中包括普通空闲施压机1,且普通空闲施压机1的承载算力为300,则可以将所述普通空闲施压机1作为所述独占空闲施压机。再例如,所述预设施压机集群中还包括普通空闲施压机2和普通空闲施压机3,且普通空闲施压机2的承载算力为150,普通空闲施压机3的承载算力为120,则也可以将所述普通空闲施压机2和普通空闲施压机3作为所述独占空闲施压机。又例如,所述预设施压机集群中还包括普通空闲施压机4、普通空闲施压机5和普通空闲施压机6,且普通空闲施压机4的承载算力为100,普通空闲施压机5的承载算力为70,普通空闲施压机6的承载算力为50,则也可以将所述普通空闲施压机4、普通空闲施压机5和普通空闲施压机6作为所述独占空闲施压机。普通空闲施压机1的承载算力为300,而普通空闲施压机2和普通空闲施压机3的承载算力之和为270,普通空闲施压机4、普通空闲施压机5和普通空闲施压机6的承载算力之和为220,因此,基于以上描述,实际实施时,为了提供给其他非独占任务更多的算力资源,优选将包括所述普通空闲施压机4、普通空闲施压机5和普通空闲施压机6的组合作为所述目标普通空闲施压机组合,也即,将普通空闲施压机4、普通空闲施压机5和普通空闲施压机6作为所述独占空闲施压机。
此外,实际实施时,还可以会出现所述预设施压机集群中所有普通空闲施压机的承载算力之和小于所述消耗算力的情况。鉴于此,本发明实施例中,在所述从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机之前,所述压力测试方法还包括判断所述预设施压机集群中是否具有承载算力之和大于或等于所述消耗算力的普通空闲施压机。
若所述预设施压机集群中具有承载算力之和大于或等于所述消耗算力的普通空闲施压机,则执行从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机的步骤。
若所述预设施压机集群中所有普通空闲施压机的承载算力之和小于所述消耗算力,则从所述预设施压机集群中选取至少一个非空闲施压机,作为目标非空闲施压机,并在所述目标非空闲施压机的剩余任务执行完成,以使所述目标非空闲施压机得到释放而作为普通空闲施压机之后,执行从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机的步骤。
进一步地,本发明实施例中,所述从所述预设施压机集群中选取至少一个非空闲施压机,作为目标非空闲施压机的实现方式有多种。
作为第一种实施方式,可以按预设时间间隔对所述预设施压机集群中包括的非空闲施压机进行检测,以判断所述预设施压机集群中是否具有剩余任务执行完成的非空闲施压机,若所述预设施压机集群中具有剩余任务执行完成的非空闲施压机,则将所述剩余任务执行完成的非空闲施压机作为待定非空闲施压机,在所述待定非空闲施压机的承载算力与所述普通空闲施压机的承载算力之和大于或等于所述消耗算力时,将所述待定非空闲施压机作为所述目标非空闲施压机。
例如,目标任务1为独占任务,所述目标任务1的消耗算力为200,所述预设施压机集群中包括的普通空闲施压机仅有普通空闲施压机1,且普通空闲施压机1的承载算力为100,这种情况下,可以按预设时间间隔对所述预设施压机集群中包括的非空闲施压机进行检测,假设,第一次检测时,所述预设施压机集群中具有剩余任务执行完成的非空闲施压机1,则将非空闲施压机1作为待定非空闲施压机,并立即判断非空闲施压机1与普通空闲施压机1的承载算力之和是否大于或等于目标任务1的消耗算力,若非空闲施压机1与普通空闲施压机1的承载算力之和大于或等于目标任务1的消耗算力,则将非空闲施压机1作为所述目标非空闲施压机,若非空闲施压机1与普通空闲施压机1的承载算力之和小于目标任务1的消耗算力,则继续进行第二次检测,假设,第二次检测时,所述预设施压机集群中具有剩余任务执行完成的非空闲施压机1和非空闲施压机2,则将非空闲施压机1和非空闲施压机2作为待定非空闲施压机,并立即判断非空闲施压机1、非空闲施压机2与普通空闲施压机1的承载算力之和是否大于或等于目标任务1的消耗算力,若非空闲施压机1、非空闲施压机2与普通空闲施压机1的承载算力之和大于或等于目标任务1的消耗算力,则将非空闲施压机1和非空闲施压机2作为所述目标非空闲施压机,若非空闲施压机1、非空闲施压机2与普通空闲施压机1的承载算力之和小于目标任务1的消耗算力,则继续进行第三次检测,甚至第四次检测,直至所述待定非空闲施压机的承载算力与所述普通空闲施压机的承载算力之和大于或等于所述消耗算力为止。
作为第二种实施方式,可以获取所述预设施压机集群中包括的非空闲施压机的剩余任务执行时间,并选取剩余任务执行时间最短,且承载算力与所述普通空闲施压机的承载算力之和大于或等于所述消耗算力的非空闲施压机,作为所述目标非空闲施压机。
例如,目标任务1为独占任务,所述目标任务1的消耗算力为200,所述预设施压机集群中包括的普通空闲施压机仅有普通空闲施压机1,且普通空闲施压机1的承载算力为100,这种情况下,可以获取所述预设施压机集群中包括的非空闲施压机的剩余任务执行时间,假设,非空闲施压机1的剩余任务执行时间为10min,且非空闲施压机1的承载算力为70,非空闲施压机2的剩余任务执行时间为5min,且非空闲施压机2的承载算力为50,非空闲施压机3的剩余任务执行时间为15min,且非空闲施压机3的承载算力为100,则可以将非空闲施压机1和非空闲施压机2作为所述目标非空闲施压机,但,若非空闲施压机3的剩余任务执行时间并非15min,而为小于或等于5min的任意数值,则可以将非空闲施压机3作为所述目标非空闲施压机。此外,实际实施时,当确定目标非空闲施压机为非空闲施压机1和非空闲施压机2后,若检测到从预设任务列表中选取到的另一个目标任务2还未被执行,且执行所述目标任务2所需执行时间为3min,所需的消耗算力为40,则可以在所述非空闲施压机2的剩余任务执行完成,处于等待非空闲施压机1状态的时间间隙,利用非空闲施压机2执行目标任务2的脚本文件,以获得与目标任务2对应的压力测试结果。如此,即可进一步地提高压力测试的整体效率。
步骤S400,利用所述独占空闲施压机执行所述目标任务的脚本文件,获得压力测试结果,并在获得所述压力测试结果之后,将所述独占空闲施压机作为至少一个普通空闲施压机。
在所述独占空闲施压机的数量为一个时,可以直接利用所述独占空闲施压机执行所述目标任务的脚本文件,获得压力测试结果。此后,将所述独占空闲施压机作为普通空闲施压机。
在所述独占空闲施压机的数量为多个时,所述独占空闲施压机执行所述目标任务的脚本文件,获得压力测试结果。此后,将所述多个独占空闲施压机作为多个普通空闲施压机。进一步地,可以根据多个所述独占空闲施压机的承载算力对所述独占任务进行分割,获得与多个所述独占空闲施压机一一对应的多个子独占任务,针对每个所述子独占任务,利用与该子独占任务对应的所述独占空闲施压机执行该子独占任务的脚本文件,获得对应的子压力测试结果,再根据每个所述子独占任务对应的所述子压力测试结果,获得所述压力测试结果。
例如,目标任务1为独占任务,所述目标任务1的消耗算力为200,所述独占空闲施压机的数量为三个,包括普通空闲施压机1、普通空闲施压机2和普通空闲施压机3,且普通空闲施压机1的承载算力为100,普通空闲施压机2的承载算力为70,普通空闲施压机3的承载算力为50。则将目标任务1分割为与普通空闲施压机1对应的子独占任务1、与普通空闲施压机2对应的子独占任务2,以及与普通空闲施压机3对应的子独占任务3,且子独占任务1的消耗算力为100,子独占任务2的消耗算力为70,子独占任务3的消耗算力为30,此后,利用普通空闲施压机1执行子独占任务1的脚本文件,获得对应的子压力测试结果1,利用普通空闲施压机2执行子独占任务2的脚本文件,获得对应的子压力测试结果2,以及利用普通空闲施压机3执行子独占任务3的脚本文件,获得对应的子压力测试结果3,最后,根据子压力测试结果1、子压力测试结果2和子压力测试结果3获得与所述目标任务1对应的压力测试结果。
此外,若本发明实施例中,从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机的具体过程若为,从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机之后,分别对所述至少一个普通空闲施压机进行标识,以将所述至少一个普通空闲施压机作为所述独占空闲施压机,则所述将所述独占空闲施压机作为至少一个普通空闲施压机的具体过程可以为,去除所述独占空闲施压机的标识,以将所述独占空闲施压机作为所述至少一个所述普通空闲施压机。
步骤S500,若所述目标任务为非独占任务,则从预设施压机集群中选取承载算力大于或等于所述消耗算力的普通空闲施压机,作为非独占施压机,或从预设施压机集群中选取剩余承载算力大于或等于所述消耗算力的非空闲施压机,作为非独占施压机。
本发明实施例中,所述剩余承载算力,即为非空闲施压机施压机的承载算力与正在执行的所有任务的消耗算力的差值。其中,所述非空闲施压机施压机的承载算力,即为所述非空闲施压机处于空闲状态时的总计算能力。此外,为保证施压机资源的有效利用,本发明实施例中,可以从预设施压机集群中选取承载算力大于或等于所述消耗算力,且承载算力与所述消耗算力差值最小的普通空闲施压机,作为非独占施压机,或从预设施压机集群中选取剩余承载算力大于或等于所述消耗算力,且剩余承载算力与所述消耗算力差值最小的非空闲施压机,作为非独占施压机。
例如,目标任务1为独占任务,所述目标任务1的消耗算力为20,预设施压机集群中包括普通空闲施压机1、普通空闲施压机2、非空闲施压机1和非空闲施压机2,且普通空闲施压机1的承载算力为100,普通空闲施压机2的承载算力为70,非空闲施压机1的剩余承载算力为30,非空闲施压机1的剩余承载算力为60,则将非空闲施压机1作为非独占施压机。
步骤S600,利用所述非独占施压机执行所述目标任务的脚本文件,获得压力测试结果。
基于与上述压力测试方法同样的发明构思,本发明实施例还提供了一种压力测试装置110。请参阅图3,所述压力测试装置110包括目标任务确定模块111、目标任务判断模块112、独占空闲施压机确定模块113、第一压力测试模块114、非独占施压机确定模块115和第二压力测试模块116。
其中,所述目标任务确定模块111用于从预设任务列表中选取目标任务,并获取执行所述目标任务所需的消耗算力。关于所述目标任务确定模块111的描述具体可参考对图2中所示的步骤S100的详细描述,也即,步骤S100可以由所述目标任务确定模块111执行。
所述目标任务判断模块112用于判断所述目标任务是否为独占任务。关于所述目标任务判断模块112的描述具体可参考对图2中所示的步骤S200的详细描述,也即,步骤S200可以由所述目标任务判断模块112执行。
所述独占空闲施压机确定模块113用于在所述目标任务为独占任务时,从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机。关于所述独占空闲施压机确定模块113的描述具体可参考对图2中所示的步骤S300的详细描述,也即,步骤S300可以由所述独占空闲施压机确定模块113执行。
所述第一压力测试模块114用于利用所述独占空闲施压机执行所述目标任务的脚本文件,获得压力测试结果,并在获得所述压力测试结果之后,将所述独占空闲施压机作为至少一个普通空闲施压机。关于所述第一压力测试模块114的描述具体可参考对图2中所示的步骤S400的详细描述,也即,步骤S400可以由所述第一压力测试模块114执行。
所述非独占施压机确定模块115用于在所述目标任务为非独占任务时,从预设施压机集群中选取承载算力大于或等于所述消耗算力的普通空闲施压机,作为非独占施压机,或从预设施压机集群中选取剩余承载算力大于或等于所述消耗算力的非空闲施压机,作为非独占施压机。关于所述非独占施压机确定模块115的描述具体可参考对图2中所示的步骤S500的详细描述,也即,步骤S500可以由所述非独占施压机确定模块115执行。
所述第二压力测试模块116用于利用所述非独占施压机执行所述目标任务的脚本文件,获得压力测试结果。关于所述第二压力测试模块116的描述具体可参考对图2中所示的步骤S600的详细描述,也即,步骤S600可以由所述第二压力测试模块116执行。
综上所述,本发明实施例提供的压力测试方法、装置及电子设备,能够从预设任务列表中选取目标任务,并获取执行所述目标任务所需的消耗算力,判断所述目标任务是否为独占任务,在所述目标任务为独占任务时,从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机,利用所述独占空闲施压机执行所述目标任务的脚本文件,获得压力测试结果,并在获得所述压力测试结果之后,将所述独占空闲施压机作为普通空闲施压机,以及,在所述目标任务为非独占任务时,从预设施压机集群中选取承载算力大于或等于所述消耗算力的普通空闲施压机,或剩余承载算力大于或等于所述消耗算力的非空闲施压机,作为非独占施压机,利用所述非独占施压机执行所述目标任务的脚本文件,获得压力测试结果。如此,在从预设任务列表中选取目标任务之后,便能够快速的为所述目标任务选取到施压机,以利用选取的施压机执行所述目标任务的脚本文件,获得压力测试结果,有效地提高了压力测试的整体效率。
在本发明实施例所提供的上述实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅为本公开的可选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (8)
1.一种压力测试方法,其特征在于,包括:
从预设任务列表中选取目标任务,并获取执行所述目标任务所需的消耗算力;
判断所述目标任务是否为独占任务;
若所述目标任务为独占任务时,判断预设施压机集群中是否具有承载算力之和大于或等于所述消耗算力的普通空闲施压机;
若所述预设施压机集群中具有承载算力之和大于或等于所述消耗算力的普通空闲施压机,则从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机;
若所述预设施压机集群中所有普通空闲施压机的承载算力之和小于所述消耗算力,则从所述预设施压机集群中选取至少一个非空闲施压机,作为目标非空闲施压机;所述从所述预设施压机集群中选取至少一个非空闲施压机,作为目标非空闲施压机,包括:按预设时间间隔对所述预设施压机集群中包括的非空闲施压机进行检测,以判断所述预设施压机集群中是否具有剩余任务执行完成的非空闲施压机;若所述预设施压机集群中具有剩余任务执行完成的非空闲施压机,则将所述剩余任务执行完成的非空闲施压机作为待定非空闲施压机;在所述待定非空闲施压机的承载算力与所述普通空闲施压机的承载算力之和大于或等于所述消耗算力时,将所述待定非空闲施压机作为所述目标非空闲施压机;
在所述目标非空闲施压机的剩余任务执行完成,以使所述目标非空闲施压机得到释放而作为普通空闲施压机之后,从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机;
利用所述独占空闲施压机执行所述目标任务的脚本文件,获得压力测试结果,并在获得所述压力测试结果之后,将所述独占空闲施压机作为至少一个普通空闲施压机;
若所述目标任务为非独占任务,则从预设施压机集群中选取承载算力大于或等于所述消耗算力的普通空闲施压机,作为非独占施压机,或从预设施压机集群中选取剩余承载算力大于或等于所述消耗算力的非空闲施压机,作为非独占施压机;
利用所述非独占施压机执行所述目标任务的脚本文件,获得压力测试结果。
2.根据权利要求1所述的压力测试方法,其特征在于,所述从所述预设施压机集群中选取至少一个非空闲施压机,作为目标非空闲施压机,包括:
获取所述预设施压机集群中包括的非空闲施压机的剩余任务执行时间;
选取剩余任务执行时间最短,且承载算力与所述普通空闲施压机的承载算力之和大于或等于所述消耗算力的非空闲施压机,作为所述目标非空闲施压机。
3.根据权利要求1所述的压力测试方法,其特征在于,所述利用所述独占空闲施压机执行所述目标任务的脚本文件,获得压力测试结果,包括:
在所述独占空闲施压机的数量为多个时,根据多个所述独占空闲施压机的承载算力对所述独占任务进行分割,获得与多个所述独占空闲施压机一一对应的多个子独占任务;
针对每个所述子独占任务,利用与该子独占任务对应的所述独占空闲施压机执行该子独占任务的脚本文件,获得对应的子压力测试结果;
根据每个所述子独占任务对应的所述子压力测试结果,获得所述压力测试结果。
4.根据权利要求1所述的压力测试方法,其特征在于,所述从预设施压机集群中选取承载算力大于或等于所述消耗算力的普通空闲施压机,作为非独占施压机,或从预设施压机集群中选取剩余承载算力大于或等于所述消耗算力的非空闲施压机,作为非独占施压机,包括:
从预设施压机集群中选取承载算力大于或等于所述消耗算力,且承载算力与所述消耗算力差值最小的普通空闲施压机,作为非独占施压机,或从预设施压机集群中选取剩余承载算力大于或等于所述消耗算力,且剩余承载算力与所述消耗算力差值最小的非空闲施压机,作为非独占施压机。
5.根据权利要求1所述的压力测试方法,其特征在于,
所述从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机,包括:
从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机;
分别对所述至少一个普通空闲施压机进行标识,以将所述至少一个普通空闲施压机作为所述独占空闲施压机;
所述将所述独占空闲施压机作为至少一个普通空闲施压机,包括:
去除所述独占空闲施压机的标识,以将所述独占空闲施压机作为所述至少一个所述普通空闲施压机。
6.一种压力测试装置,其特征在于,包括:
目标任务确定模块,用于从预设任务列表中选取目标任务,并获取执行所述目标任务所需的消耗算力;
目标任务判断模块,用于判断所述目标任务是否为独占任务;
独占空闲施压机确定模块,用于在所述目标任务为独占任务时,判断预设施压机集群中是否具有承载算力之和大于或等于所述消耗算力的普通空闲施压机;若所述预设施压机集群中具有承载算力之和大于或等于所述消耗算力的普通空闲施压机,则从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机;若所述预设施压机集群中所有普通空闲施压机的承载算力之和小于所述消耗算力,则从所述预设施压机集群中选取至少一个非空闲施压机,作为目标非空闲施压机;所述从所述预设施压机集群中选取至少一个非空闲施压机,作为目标非空闲施压机,包括:按预设时间间隔对所述预设施压机集群中包括的非空闲施压机进行检测,以判断所述预设施压机集群中是否具有剩余任务执行完成的非空闲施压机;若所述预设施压机集群中具有剩余任务执行完成的非空闲施压机,则将所述剩余任务执行完成的非空闲施压机作为待定非空闲施压机;在所述待定非空闲施压机的承载算力与所述普通空闲施压机的承载算力之和大于或等于所述消耗算力时,将所述待定非空闲施压机作为所述目标非空闲施压机;在所述目标非空闲施压机的剩余任务执行完成,以使所述目标非空闲施压机得到释放而作为普通空闲施压机之后,从预设施压机集群中选取承载算力之和大于或等于所述消耗算力的至少一个普通空闲施压机,作为独占空闲施压机;
第一压力测试模块,用于利用所述独占空闲施压机执行所述目标任务的脚本文件,获得压力测试结果,并在获得所述压力测试结果之后,将所述独占空闲施压机作为至少一个普通空闲施压机;
非独占施压机确定模块,用于在所述目标任务为非独占任务时,从预设施压机集群中选取承载算力大于或等于所述消耗算力的普通空闲施压机,作为非独占施压机,或从预设施压机集群中选取剩余承载算力大于或等于所述消耗算力的非空闲施压机,作为非独占施压机;
第二压力测试模块,用于利用所述非独占施压机执行所述目标任务的脚本文件,获得压力测试结果。
7.一种电子设备,其特征在于,包括处理器、存储器和权利要求6所述的压力测试装置,所述压力测试装置包括一个或多个存储于所述存储器并由所述处理器执行的软件功能模块。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时,可实现权利要求1-5中任意一项所述的压力测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811201688.4A CN109406025B (zh) | 2018-10-16 | 2018-10-16 | 压力测试方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811201688.4A CN109406025B (zh) | 2018-10-16 | 2018-10-16 | 压力测试方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109406025A CN109406025A (zh) | 2019-03-01 |
CN109406025B true CN109406025B (zh) | 2020-12-15 |
Family
ID=65467272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811201688.4A Active CN109406025B (zh) | 2018-10-16 | 2018-10-16 | 压力测试方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109406025B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111405012A (zh) * | 2020-03-06 | 2020-07-10 | 深圳市瑞驰信息技术有限公司 | 一种基于mqtt及http的ai算力池集群管理方法 |
CN114567578B (zh) * | 2022-03-14 | 2023-09-26 | 重庆紫光华山智安科技有限公司 | 一种压力测试方法、装置、测试平台及存储介质 |
CN114844888B (zh) * | 2022-04-01 | 2024-01-19 | 杭州安存网络科技有限公司 | 算力机及其处理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447892A (zh) * | 2008-11-24 | 2009-06-03 | 中兴通讯股份有限公司 | 分布式测试方法和系统、以及测试服务器 |
CN107341051A (zh) * | 2016-05-03 | 2017-11-10 | 北京京东尚科信息技术有限公司 | 集群任务协调方法、系统和装置 |
CN107656813A (zh) * | 2017-09-29 | 2018-02-02 | 上海联影医疗科技有限公司 | 一种负载调度的方法、装置及终端 |
CN107783894A (zh) * | 2016-08-26 | 2018-03-09 | 上海计算机软件技术开发中心 | 一种多任务多终端移动应用测试方法及其系统 |
CN107992362A (zh) * | 2016-10-27 | 2018-05-04 | 北京京东尚科信息技术有限公司 | 自动化性能测试的方法、装置及系统 |
CN108052384A (zh) * | 2017-12-27 | 2018-05-18 | 联想(北京)有限公司 | 一种任务处理方法、服务平台及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386778B2 (en) * | 2005-10-20 | 2008-06-10 | Jon Udell | Methods for distributing programs for generating test data |
-
2018
- 2018-10-16 CN CN201811201688.4A patent/CN109406025B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447892A (zh) * | 2008-11-24 | 2009-06-03 | 中兴通讯股份有限公司 | 分布式测试方法和系统、以及测试服务器 |
CN107341051A (zh) * | 2016-05-03 | 2017-11-10 | 北京京东尚科信息技术有限公司 | 集群任务协调方法、系统和装置 |
CN107783894A (zh) * | 2016-08-26 | 2018-03-09 | 上海计算机软件技术开发中心 | 一种多任务多终端移动应用测试方法及其系统 |
CN107992362A (zh) * | 2016-10-27 | 2018-05-04 | 北京京东尚科信息技术有限公司 | 自动化性能测试的方法、装置及系统 |
CN107656813A (zh) * | 2017-09-29 | 2018-02-02 | 上海联影医疗科技有限公司 | 一种负载调度的方法、装置及终端 |
CN108052384A (zh) * | 2017-12-27 | 2018-05-18 | 联想(北京)有限公司 | 一种任务处理方法、服务平台及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109406025A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109406025B (zh) | 压力测试方法、装置及电子设备 | |
CN106294120B (zh) | 测试代码的方法、设备和计算机程序产品 | |
CN109240802B (zh) | 请求处理方法和装置 | |
CN112083971B (zh) | 组件处理方法、设备及存储介质 | |
CN107741910B (zh) | 应用程序安装性能测试方法、装置、计算设备及存储介质 | |
CN113408828A (zh) | 基于智能制造的生产线优化方法、装置及服务器 | |
CN109558315B (zh) | 测试范围的确定方法、装置及设备 | |
CN115190010B (zh) | 基于软件服务依赖关系的分布推荐方法和装置 | |
CN116932072A (zh) | 服务配置方法、装置、计算机可读存储介质及终端设备 | |
CN109600245B (zh) | 服务器自动配置方法及装置 | |
CN114880157B (zh) | 一种故障注入方法及装置 | |
CN114297067A (zh) | 脚本测试方法及装置 | |
CN110457187B (zh) | 基于备份测试数据可便捷运行的tpc-e测试方法及测试服务器 | |
CN114637526A (zh) | 产品组件升级方法以及相关设备 | |
CN113297149A (zh) | 数据处理请求的监测方法及装置 | |
CN112631577A (zh) | 一种模型的调度方法、模型调度器以及模型安全测试平台 | |
CN111078550A (zh) | 软件测试方法及装置、计算机装置及存储介质 | |
CN113127479A (zh) | 一种Elasticsearch索引的加载方法、装置、计算机设备和存储介质 | |
CN115309597B (zh) | 一种服务器集群测试的方法、装置、存储介质及电子设备 | |
CN112732664B (zh) | 证据提取方法、装置、电子设备及存储介质 | |
CN114816876B (zh) | 一种服务器Redfish接口规范的自动化测试系统 | |
CN115964537A (zh) | 一种行为数据处理方法、装置、设备及可读存储介质 | |
CN113286148A (zh) | 一种基于大数据和物联网的视频设备优化方法、装置及服务器 | |
CN113904916A (zh) | 一种在线办公网络修复方法、装置及服务器 | |
CN108345526B (zh) | 钩子处理方法及装置 |
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 |