CN117421196A - 性能测试方法及其装置、电子设备及存储介质 - Google Patents
性能测试方法及其装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117421196A CN117421196A CN202311485065.5A CN202311485065A CN117421196A CN 117421196 A CN117421196 A CN 117421196A CN 202311485065 A CN202311485065 A CN 202311485065A CN 117421196 A CN117421196 A CN 117421196A
- Authority
- CN
- China
- Prior art keywords
- performance
- interface
- tested
- data
- state
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000011056 performance test Methods 0.000 title claims abstract description 45
- 238000012360 testing method Methods 0.000 claims abstract description 235
- 230000008569 process Effects 0.000 claims abstract description 34
- 230000004044 response Effects 0.000 claims description 60
- 238000011084 recovery Methods 0.000 claims description 33
- 238000012544 monitoring process Methods 0.000 claims description 31
- 230000008859 change Effects 0.000 claims description 24
- 238000004458 analytical method Methods 0.000 claims description 21
- 238000005259 measurement Methods 0.000 claims description 9
- 230000006835 compression Effects 0.000 claims description 7
- 238000007906 compression Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 12
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000002688 persistence Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000013215 result calculation Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000009530 blood pressure measurement Methods 0.000 description 2
- 230000003750 conditioning effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种性能测试方法及其装置、电子设备及存储介质,涉及金融科技领域或其他相关领域,其中,该方法包括:构建测试任务,依据时间序列,将并发时长划分为多个时间段,基于初始并发数,执行测试任务,并在执行测试任务的过程中,采集每个时间段上的性能指标数据,对于每一时间段,分析时间段上的性能指标数据,得到待测试接口在时间段上的性能状态,并在性能状态是平稳状态的情况下,继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态或者测试任务执行完成,得到待测试接口的目标性能指标数据。本发明解决了相关技术中无法动态调整性能测试过程,导致测试成本较高以及测试效率较低的技术问题。
Description
技术领域
本发明涉及金融科技领域,具体而言,涉及一种性能测试方法及其装置、电子设备及存储介质。
背景技术
在IT(Internet Technology,即互联网技术)性能测试中,阶梯发压是一种测试策略,用于评估软件、应用程序或系统等在不同负载下的性能表现。这种方法涉及逐步增加并模拟用户或请求的数量,以观察被测系统在逐渐增加的负载下的反应和稳定性。
相关技术中,在通过测试策略确定了性能测试的范围和方式后,需要根据应用场景,设定性能测试并发数为一个固定梯度值,以一种固定的方式根据时间去分析对应的性能监控情况,以此来完成阶梯式发压,并分析各种负载下的接口性能表现情况。
然而,相关技术中的性能测试策略存在如下问题:(1)需要专项测试人员的人工分析成本,以及需要设定场景、编写梯度测试方案的人力成本:专项测试人员需要根据接口的业务需求判定一个基准的性能并发起初点,然后设计一定梯度,并对最后结果进行分析归纳,这在整个过程中都需要专项性能测试人员的人力成本;(2)测试可能需要反复,无法在执行过程中动态调整:因为相关技术中的阶梯式发压的性能测试工具都是先固定好一个阶梯式场景,整个测试在起初就是固定设置好的,需要按照完整流程执行完再分析结果,对于起始点设定过高,或者并发间隔设定过大,或是需要更加精确地调整并发数等,都是无法进行动态调整的,因此可能导致出现需要重复实验执行的情况;(3)成本过大需要值守的方式导致整体效率较差,无法并行执行性能测试,同样在不同接口同个容器或者服务上可能存在相互影响需要人工区分的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种性能测试方法及其装置、电子设备及存储介质,以至少解决相关技术中无法动态调整性能测试过程,导致测试成本较高以及测试效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种性能测试方法,包括:构建测试任务,其中,所述测试任务包括:待测试接口、初始并发数和并发时长,所述测试任务用于对预设领域系统的所述待测试接口进行性能测试;依据时间序列,将所述并发时长划分为多个时间段;基于所述初始并发数,执行所述测试任务,并在执行所述测试任务的过程中,采集每个所述时间段上的性能指标数据;对于每一所述时间段,分析所述时间段上的所述性能指标数据,得到所述待测试接口在所述时间段上的性能状态,并在所述性能状态是平稳状态的情况下,继续分析所述待测试接口在下一所述时间段上的所述性能状态,直到所述待测试接口在所述时间段上的所述性能状态是瓶颈状态或者所述测试任务执行完成,得到所述待测试接口的目标性能指标数据。
可选地,基于所述初始并发数,执行所述测试任务的步骤,包括:采用预设测试平台,模拟预设数量的发压请求,其中,所述预设数量与所述初始并发数相等;采用所述预设测试平台,将所有所述发压请求发送至所述待测试接口。
可选地,在基于所述初始并发数,执行所述测试任务的过程中,还包括:采集所述预设测试平台的平台资源数据;分析所述平台资源数据,得到所述预设测试平台的当前CPU使用率、当前内存空间回收率和当前连接数回收率,其中,连接数是所述预设测试平台同时发送所述发压请求的数量;在所述当前CPU使用率小于预设使用率阈值和/或所述当前内存空间回收率以及所述当前连接数回收率小于预设回收率阈值的情况下,对所述预设测试平台进行扩容调整,并采用扩容调整后的所述预设测试平台继续执行所述测试任务。
可选地,在执行所述测试任务的过程中,采集每个所述时间段上的性能指标数据的步骤,包括:通过预设测试平台采集所述待测试接口在所述时间段上的业务性能数据,其中,所述业务性能数据包括:并发数、响应时间、每秒事务数、平台资源数据,所述平台资源数据包括:CPU数据、内存数据、连接数数据、磁盘输入输出数据和网络输入输出数据;采用预设监控系统监控所述待测试接口所在的测试环境,得到在所述时间段上的资源性能数据;基于所述业务性能数据以及所述资源性能数据,生成所述性能指标数据。
可选地,分析所述时间段上的所述性能指标数据,得到所述待测试接口在所述时间段上的性能状态的步骤,包括:解析所述性能指标数据,得到所述待测试接口在所述时间段上的响应时间变化数据、每秒事务数变化数据和资源使用数据;在所述响应时间变化数据指示响应时间差值小于第一预设差值、所述每秒事务数变化数据指示每秒事务数处于线性增加状态以及每个资源的所述资源使用数据指示所述资源处于空闲状态的情况下,确定所述待测试接口在所述时间段上的所述性能状态是所述平稳状态;在所述响应时间变化数据指示所述响应时间差值大于等于所述第一预设差值、所述每秒事务数变化数据指示所述每秒事务数处于非线性增加状态以及存在至少一个所述资源的所述资源使用数据指示所述资源处于繁忙状态的情况下,确定所述待测试接口在所述时间段上的所述性能状态是拐点状态;在所述响应时间变化数据指示所述响应时间差值大于第二预设差值、所述每秒事务数变化数据指示所述每秒事务数处于下降状态以及存在至少一个所述资源的所述资源使用数据指示所述资源处于极限状态的情况下,确定所述待测试接口在所述时间段上的所述性能状态是所述瓶颈状态,其中,所述第二预设差值大于所述第一预设差值。
可选地,在分析所述时间段上的所述性能指标数据,得到所述待测试接口在所述时间段上的性能状态之后,还包括:在所述待测试接口在当前并发时长中的所有所述时间段上的所述性能状态都是所述平稳状态的情况下,继续在下一并发时长上执行所述测试任务,直到出现所述待测试接口在所述时间段上的所述性能状态是所述拐点状态或者所述瓶颈状态的;在所述待测试接口在所述时间段上的所述性能状态是所述拐点状态的情况下,基于所述时间段上的所述性能指标数据确定调整策略,并在所述调整策略执行完成的情况下,确定所述待测试接口的目标性能指标数据,其中,所述调整策略用于调整并发数或者测试环境上的所述资源;在所述待测试接口在所述时间段上的所述性能状态是所述瓶颈状态的情况下,基于所述时间段上的所述性能指标数据,确定处于所述极限状态的所述资源,并在所述资源是预设资源的情况下,调整所述资源,在所述资源调整完成的情况下,确定所述待测试接口的所述目标性能指标数据。
可选地,在确定所述待测试接口的所述目标性能指标数据之后,还包括:基于所述目标性能指标数据,确定所述待测试接口在各预设阶段的性能数据信息,其中,所述预设阶段包括:初始阶段、负载阶段、性能测量阶段、稳定阶段、极限阶段;基于各所述预设阶段的所述性能数据信息,绘制所述待测试接口的性能变化图。
根据本发明实施例的另一方面,还提供了一种性能测试装置,包括:构建单元,用于构建测试任务,其中,所述测试任务包括:待测试接口、初始并发数和并发时长,所述测试任务用于对预设领域系统的所述待测试接口进行性能测试;划分单元,用于依据时间序列,将所述并发时长划分为多个时间段;采集单元,用于基于所述初始并发数,执行所述测试任务,并在执行所述测试任务的过程中,采集每个所述时间段上的性能指标数据;分析单元,用于对于每一所述时间段,分析所述时间段上的所述性能指标数据,得到所述待测试接口在所述时间段上的性能状态,并在所述性能状态是平稳状态的情况下,继续分析所述待测试接口在下一所述时间段上的所述性能状态,直到所述待测试接口在所述时间段上的所述性能状态是瓶颈状态或者所述测试任务执行完成,得到所述待测试接口的目标性能指标数据。
可选地,所述采集单元包括:第一模拟模块,用于采用预设测试平台,模拟预设数量的发压请求,其中,所述预设数量与所述初始并发数相等;第一发送模块,用于采用所述预设测试平台,将所有所述发压请求发送至所述待测试接口。
可选地,所述性能测试装置还包括:第一采集模块,用于在基于所述初始并发数,执行所述测试任务的过程中,采集所述预设测试平台的平台资源数据;第一分析模块,用于分析所述平台资源数据,得到所述预设测试平台的当前CPU使用率、当前内存空间回收率和当前连接数回收率,其中,连接数是所述预设测试平台同时发送所述发压请求的数量;第一调整模块,用于在所述当前CPU使用率小于预设使用率阈值和/或所述当前内存空间回收率以及所述当前连接数回收率小于预设回收率阈值的情况下,对所述预设测试平台进行扩容调整,并采用扩容调整后的所述预设测试平台继续执行所述测试任务。
可选地,所述采集单元还包括:第二采集模块,用于通过预设测试平台采集所述待测试接口在所述时间段上的业务性能数据,其中,所述业务性能数据包括:并发数、响应时间、每秒事务数、平台资源数据,所述平台资源数据包括:CPU数据、内存数据、连接数数据、磁盘输入输出数据和网络输入输出数据;第一监控模块,用于采用预设监控系统监控所述待测试接口所在的测试环境,得到在所述时间段上的资源性能数据;第一生成模块,用于基于所述业务性能数据以及所述资源性能数据,生成所述性能指标数据。
可选地,所述分析单元包括:第一解析模块,用于解析所述性能指标数据,得到所述待测试接口在所述时间段上的响应时间变化数据、每秒事务数变化数据和资源使用数据;第一确定模块,用于在所述响应时间变化数据指示响应时间差值小于第一预设差值、所述每秒事务数变化数据指示每秒事务数处于线性增加状态以及每个资源的所述资源使用数据指示所述资源处于空闲状态的情况下,确定所述待测试接口在所述时间段上的所述性能状态是所述平稳状态;第二确定模块,用于在所述响应时间变化数据指示所述响应时间差值大于等于所述第一预设差值、所述每秒事务数变化数据指示所述每秒事务数处于非线性增加状态以及存在至少一个所述资源的所述资源使用数据指示所述资源处于繁忙状态的情况下,确定所述待测试接口在所述时间段上的所述性能状态是拐点状态;第三确定模块,用于在所述响应时间变化数据指示所述响应时间差值大于第二预设差值、所述每秒事务数变化数据指示所述每秒事务数处于下降状态以及存在至少一个所述资源的所述资源使用数据指示所述资源处于极限状态的情况下,确定所述待测试接口在所述时间段上的所述性能状态是所述瓶颈状态,其中,所述第二预设差值大于所述第一预设差值。
可选地,所述性能测试装置还包括:第一执行模块,用于在分析所述时间段上的所述性能指标数据,得到所述待测试接口在所述时间段上的性能状态之后,在所述待测试接口在当前并发时长中的所有所述时间段上的所述性能状态都是所述平稳状态的情况下,继续在下一并发时长上执行所述测试任务,直到出现所述待测试接口在所述时间段上的所述性能状态是所述拐点状态或者所述瓶颈状态的;第四确定模块,用于在所述待测试接口在所述时间段上的所述性能状态是所述拐点状态的情况下,基于所述时间段上的所述性能指标数据确定调整策略,并在所述调整策略执行完成的情况下,确定所述待测试接口的目标性能指标数据,其中,所述调整策略用于调整并发数或者测试环境上的所述资源;第五确定模块,用于在所述待测试接口在所述时间段上的所述性能状态是所述瓶颈状态的情况下,基于所述时间段上的所述性能指标数据,确定处于所述极限状态的所述资源,并在所述资源是预设资源的情况下,调整所述资源,在所述资源调整完成的情况下,确定所述待测试接口的所述目标性能指标数据。
可选地,所述性能测试装置还包括:第六确定模块,用于在确定所述待测试接口的所述目标性能指标数据之后,基于所述目标性能指标数据,确定所述待测试接口在各预设阶段的性能数据信息,其中,所述预设阶段包括:初始阶段、负载阶段、性能测量阶段、稳定阶段、极限阶段;第一绘制模块,用于基于各所述预设阶段的所述性能数据信息,绘制所述待测试接口的性能变化图。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项性能测试方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任意一项性能测试方法。
在本公开中,构建测试任务,依据时间序列,将并发时长划分为多个时间段,基于初始并发数,执行测试任务,并在执行测试任务的过程中,采集每个时间段上的性能指标数据,对于每一时间段,分析时间段上的性能指标数据,得到待测试接口在时间段上的性能状态,并在性能状态是平稳状态的情况下,继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态或者测试任务执行完成,得到待测试接口的目标性能指标数据。
在本公开中,可以先构建测试任务,再依据时间序列将测试任务设定的并发时长划分为多个时间段,然后根据测试任务设定的初始并发数执行测试任务,并在执行测试任务的过程中采集每个时间段上的性能指标数据,以根据性能指标数据分析得到待测试接口在相应时间段上的性能状态,如果性能状态是平稳状态,则继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态或者测试任务执行完成,以得到待测试接口的目标性能指标数据,通过根据分析得到的待测试接口的性能状态,能够动态调整测试任务,有效提高了测试效率并降低了测试成本,进而解决了相关技术中无法动态调整性能测试过程,导致测试成本较高以及测试效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的性能测试方法的流程图;
图2是根据本发明实施例的一种可选的基于性能测试自适应调节算法的梯度调节执行系统结构的示意图;
图3是根据本发明实施例的一种可选的性能测试装置的示意图;
图4是根据本发明实施例的一种用于性能测试方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本公开中的性能测试方法及其装置可用于金融科技领域在进行性能测试的情况下,也可用于除金融科技领域之外的任意领域在进行性能测试的情况下,本公开中对性能测试方法及其装置的应用领域不做限定。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
本发明下述各实施例可应用于各种进行性能测试的系统/应用/设备中。本发明对于相关技术中由于性能测试流程中存在的人工设置测试场景、需要专项分析调整、以及需要重复实验发压,无法并行执行测试的问题,提出了一种基于性能测试自适应调节算法的梯度调节执行方法,在可视化监控以及性能数据智能分析的基础上,更改性能测试发压器,综合运用数据处理分析并结合发压器动态调整发压策略,能够自动完成性能测试发压过程,并在性能测试发压过程进行自适应调整,不仅节省了专项测试人力成本,而且可以有效完成动态调整性能发压过程以及获取性能测试全方面评估结果。
下面结合各个实施例来详细说明本发明。
实施例一
根据本发明实施例,提供了一种性能测试方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的性能测试方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,构建测试任务,其中,测试任务包括:待测试接口、初始并发数和并发时长,测试任务用于对预设领域系统的待测试接口进行性能测试。
步骤S102,依据时间序列,将并发时长划分为多个时间段。
步骤S103,基于初始并发数,执行测试任务,并在执行测试任务的过程中,采集每个时间段上的性能指标数据。
步骤S104,对于每一时间段,分析时间段上的性能指标数据,得到待测试接口在时间段上的性能状态,并在性能状态是平稳状态的情况下,继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态或者测试任务执行完成,得到待测试接口的目标性能指标数据。
通过上述步骤,可以构建测试任务,依据时间序列,将并发时长划分为多个时间段,基于初始并发数,执行测试任务,并在执行测试任务的过程中,采集每个时间段上的性能指标数据,对于每一时间段,分析时间段上的性能指标数据,得到待测试接口在时间段上的性能状态,并在性能状态是平稳状态的情况下,继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态或者测试任务执行完成,得到待测试接口的目标性能指标数据。在本发明实施例中,可以先构建测试任务,再依据时间序列将测试任务设定的并发时长划分为多个时间段,然后根据测试任务设定的初始并发数执行测试任务,并在执行测试任务的过程中采集每个时间段上的性能指标数据,以根据性能指标数据分析得到待测试接口在相应时间段上的性能状态,如果性能状态是平稳状态,则继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态或者测试任务执行完成,以得到待测试接口的目标性能指标数据,通过根据分析得到的待测试接口的性能状态,能够动态调整测试任务,有效提高了测试效率并降低了测试成本,进而解决了相关技术中无法动态调整性能测试过程,导致测试成本较高以及测试效率较低的技术问题。
下面结合上述各步骤对本发明实施例进行详细说明。
在本发明实施例中,采用阶梯发压测试方法进行性能测试有助于发现系统/软件/应用等在各种负载下的弱点,为系统优化和扩展提供指导,确保在实际使用中能够保持稳定的性能水平。阶梯发压测试包括:(1)初始阶段:以较低的负载开始测试,模拟轻负载的用户请求;(2)逐步增加负载阶段:随着时间的推移,逐步增加并模拟用户或请求的数量,以观察系统性能如何随之变化;(3)性能测量阶段:在每个阶段记录关键性能指标,例如,响应时间、吞吐量、资源利用率等;(4)稳定性观察阶段:观察系统在每个负载级别下的稳定性和性能变化情况;(5)容量极限阶段:继续逐步增加负载,直到系统达到其性能极限或出现性能下降;(6)分析结果阶段:根据数据分析,确定系统在不同负载下的性能趋势、瓶颈和可能的改进点。
在本发明实施例中,对于相关技术中的采用阶梯发压方法进行性能测试需要较高人工成本的问题,提出了一种自适应调节算法,能够在无需进行压测场景规划的情况下,通过业务接口性能表现情况、系统监控性能表现情况和并发执行算法,建立一个能够自我调节的模型,自动执行得到初始阶段、逐步增加负载阶段、性能测量阶段、稳定性观察阶段、容量极限阶段的相关指标,替代相关技术中的人工介入的执行步骤。
图2是根据本发明实施例的一种可选的基于性能测试自适应调节算法的梯度调节执行系统结构的示意图,如图2所示,包括:性能监控数据获取模块、算法计算模型模块、压测任务执行调整模块、结果计算整理模块,其中,性能监控数据获取模块能够采集测试过程中产生的业务性能数据(业务性能数据是性能测试发压器产生的响应时间、tps(Transaction Per Second,即每秒处理的消息数)等数据)以及系统性能数据(系统性能数据是第三方监控对被测应用所在的测试环境进行监控得到的数据),然后通过算法计算模型模块对性能监控数据获取模块采集的业务性能数据以及系统性能数据进行分析,能够对测试任务进行合理判断和动态调整,之后压测任务执行调整模块可以基于算法计算模型模块生成的调整结果调用性能测试发压器,以对被测应用进行并发发压,结果计算整理模块能够根据算法计算模型模块的整体执行流程和结果,对所有持久化数据进行统计整合,以得出各个阶段的性能数据信息。
步骤S101,构建测试任务,其中,测试任务包括:待测试接口、初始并发数和并发时长,测试任务用于对预设领域系统的待测试接口进行性能测试。
在本发明实施例中,可以先构建测试任务,测试任务是对预设领域系统(例如,金融领域系统)的待测试接口进行性能测试的任务,测试任务可以预先设定待测试系统/软件/应用的各个接口(即待测试接口),初始并发数,以及相同并发数需要执行的并发时长等。
步骤S102,依据时间序列,将并发时长划分为多个时间段。
在本发明实施例中,算法计算模型模块具有数据问题及时间分段的判定能力,能够通过时序时间的判别需要划分每次发压前后调整的时间段,获取拆分需要判定的时间段(即依据时间序列,将并发时长划分为多个时间段)。在本实施例中,稳定判定的时间段为压力发起调整后至获取数据时,此时需要判定的是在固定的压力情况下,所有性能指标处于小幅波动的数据统计,从总体判定处于平稳状态,此时的数据进行持久化记录具有较大的有效性。
步骤S103,基于初始并发数,执行测试任务,并在执行测试任务的过程中,采集每个时间段上的性能指标数据。
可选地,基于初始并发数,执行测试任务的步骤,包括:采用预设测试平台,模拟预设数量的发压请求,其中,预设数量与初始并发数相等;采用预设测试平台,将所有发压请求发送至待测试接口。
在本发明实施例中,压测任务执行调整模块可以调用性能测试发压器(即预设测试平台)执行测试任务,具体为:可以采用预设测试平台模拟预设数量(该预设数量与初始并发数相等)的发压请求,然后采用预设测试平台将所有发压请求同时发送至待测试接口,以对待测试接口进行初始并发数的发压负载模拟。
在本发明实施例中,在执行测试任务的过程中,可以通过性能监控数据获取模块采集每个时间段上的性能指标数据,以使性能监控数据获取模块根据性能指标数据判定待测试接口在相应时间段上的性能状态,从而得到相应的调整结果,如此,压测任务执行调整模块可以根据性能监控数据获取模块的调整结果进行相应调整,并通过接口、性能测试发压器和服务器进行调整交互,以在确认调整成功后继续执行测试任务。
可选地,在基于初始并发数,执行测试任务的过程中,还包括:采集预设测试平台的平台资源数据;分析平台资源数据,得到预设测试平台的当前CPU使用率、当前内存空间回收率和当前连接数回收率,其中,连接数是预设测试平台同时发送发压请求的数量;在当前CPU使用率小于预设使用率阈值和/或当前内存空间回收率以及当前连接数回收率小于预设回收率阈值的情况下,对预设测试平台进行扩容调整,并采用扩容调整后的预设测试平台继续执行测试任务。
在本发明实施例中,算法计算模型模块还具有发压器的发压端性能识别能力,算法计算模型模块通过采集发压器参数以及资源的使用情况,可判定发压器瓶颈,防止动态调整中由于测试发压器性能导致整体发压不准的测试无效问题,并可以对测试平台(即预设测试平台)进行动态扩容调整,具体为:可以先采集预设测试平台(即发压器)的平台资源数据,然后分析平台资源数据,以得到预设测试平台的当前CPU使用率、当前内存空间回收率(即内存空闲的回收波动空间)和当前连接数回收率(连接数是预设测试平台同时发送发压请求的数量,连接数回收率是能够发起的发压请求的波动数量)。如果当前CPU使用率小于预设使用率阈值(例如,80%)和/或当前内存空间回收率以及当前连接数回收率小于预设回收率阈值(例如,50%)下,则需要对预设测试平台进行扩容调整(例如,当CPU使用率小于80%、内存使用及空闲存在小于50%的回收波动空间或者可使用的连接数小于50%,则需要对发压器进行动态扩容调整),以避免由于发压器性能导致整体发压不准的测试无效问题,之后可以采用扩容调整后的预设测试平台继续执行测试任务。
可选地,在执行测试任务的过程中,采集每个时间段上的性能指标数据的步骤,包括:通过预设测试平台采集待测试接口在时间段上的业务性能数据,其中,业务性能数据包括:并发数、响应时间、每秒事务数、平台资源数据,平台资源数据包括:CPU数据、内存数据、连接数数据、磁盘输入输出数据和网络输入输出数据;采用预设监控系统监控待测试接口所在的测试环境,得到在时间段上的资源性能数据;基于业务性能数据以及资源性能数据,生成性能指标数据。
在本发明实施例中,性能监控数据获取模块可以通过不同的采集方式获取性能指标数据(即在执行测试任务的过程中,采集每个时间段上的性能指标数据),具体为:可以采集业务性能数据,该业务性能数据来源于预设测试平台的统计结果(即通过预设测试平台采集待测试接口在时间段上的业务性能数据),包括业务核心指标,例如,并发数、响应时间、tps(即每秒事务),测试平台自身负载资源情况(即平台资源数据,如,CPU、内存、连接数、磁盘io(即磁盘输入输出数据)、网络io(即网络输入输出数据)等)。还可以采集系统性能数据(即资源性能数据),该系统性能数据来源于各类第三方监控系统,第三方监控系统可以获取被测接口环境的系统性能监控数据,包括普罗米修斯(即一种分布式监控平台)、数据库等监控平台信息,然后收集汇总被测交易环境性能数据(即资源性能数据)(即采用预设监控系统监控待测试接口所在的测试环境,得到在时间段上的资源性能数据)。之后,根据业务性能数据以及资源性能数据,生成性能指标数据。
步骤S104,对于每一时间段,分析时间段上的性能指标数据,得到待测试接口在时间段上的性能状态,并在性能状态是平稳状态的情况下,继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态或者测试任务执行完成,得到待测试接口的目标性能指标数据。
在本发明实施例中,算法计算模型模块可以分析每一时间段上的性能指标数据,以得到待测试接口在时间段上的性能状态,如果性能状态是平稳状态,则表明该时间段的性能指标数据是能够持久化记录的数据,可以继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态(即表明该时间段的性能指标数据已到达容量极限,需要进一步进行调整优化)或者测试任务执行完成,以最终得到待测试接口的目标性能指标数据(即能够持久化记录的数据)。
可选地,分析时间段上的性能指标数据,得到待测试接口在时间段上的性能状态的步骤,包括:解析性能指标数据,得到待测试接口在时间段上的响应时间变化数据、每秒事务数变化数据和资源使用数据;在响应时间变化数据指示响应时间差值小于第一预设差值、每秒事务数变化数据指示每秒事务数处于线性增加状态以及每个资源的资源使用数据指示资源处于空闲状态的情况下,确定待测试接口在时间段上的性能状态是平稳状态;在响应时间变化数据指示响应时间差值大于等于第一预设差值、每秒事务数变化数据指示每秒事务数处于非线性增加状态以及存在至少一个资源的资源使用数据指示资源处于繁忙状态的情况下,确定待测试接口在时间段上的性能状态是拐点状态;在响应时间变化数据指示响应时间差值大于第二预设差值、每秒事务数变化数据指示每秒事务数处于下降状态以及存在至少一个资源的资源使用数据指示资源处于极限状态的情况下,确定待测试接口在时间段上的性能状态是瓶颈状态,其中,第二预设差值大于第一预设差值。
在本发明实施例中,算法计算模型模块还具有对被测接口性能判定和对应调整能力,能够对被测接口(即待测试接口)的性能情况进行综合判定,具体为:算法计算模型模块可以先解析性能指标数据,以得到待测试接口在时间段上的响应时间变化数据(即在该时间段上得到的所有响应时间之间的差值)、每秒事务数变化数据(即在该时间段上得到的所有每秒事务数之间的差值)和资源使用数据(例如,CPU、内存等资源的使用情况),如果响应时间变化数据指示响应时间差值小于第一预设差值(是一个较小的数值,可以根据实际情况进行设置)(即在时间段内响应时间相对平稳)、每秒事务数变化数据指示每秒事务数处于线性增加状态(即在时间段内tps线性增大)以及每个资源的资源使用数据指示资源处于空闲状态(即资源使用都有空闲),则可以确定待测试接口在时间段上的性能状态是平稳状态;如果响应时间变化数据指示响应时间差值大于等于第一预设差值(即在时间段内响应时间略微增大)、每秒事务数变化数据指示每秒事务数处于非线性增加状态(即在时间段内tps非线性增加)以及存在至少一个资源的资源使用数据指示资源处于繁忙状态(即性能整体资源有至少一项接近繁忙状态),则可以确定待测试接口在时间段上的性能状态是拐点状态;如果响应时间变化数据指示响应时间差值大于第二预设差值(该第二预设差值大于第一预设差值)(即在时间段内响应时间增大)、每秒事务数变化数据指示每秒事务数处于下降状态(即在时间段内tps下降)以及存在至少一个资源的资源使用数据指示资源处于极限状态(即性能整体资源有至少一项处于极限状态),则可以确定待测试接口在时间段上的性能状态是瓶颈状态。例如,当待测试接口在某一时间段上时响应时间平稳、tps线性增大、并发数随之逐渐增高,资源使用都有空闲,则可以确定待测试接口处于平稳空闲阶段。当待测试接口在某一时间段上时tps增非线性加、响应时间略微增大、性能整体资源有一项接近繁忙状态,可判定为性能拐点。当待测试接口在某一时间段上时tps下降、响应时间增大或性能整体资源有一项处于瓶颈状态,可判定为容量极限状态。
在本实施例中,性能判定指标可以通过聚类算法实现多维度指标差异化评判。
可选地,在分析时间段上的性能指标数据,得到待测试接口在时间段上的性能状态之后,还包括:在待测试接口在当前并发时长中的所有时间段上的性能状态都是平稳状态的情况下,继续在下一并发时长上执行测试任务,直到出现待测试接口在时间段上的性能状态是拐点状态或者瓶颈状态的;在待测试接口在时间段上的性能状态是拐点状态的情况下,基于时间段上的性能指标数据确定调整策略,并在调整策略执行完成的情况下,确定待测试接口的目标性能指标数据,其中,调整策略用于调整并发数或者测试环境上的资源;在待测试接口在时间段上的性能状态是瓶颈状态的情况下,基于时间段上的性能指标数据,确定处于极限状态的资源,并在资源是预设资源的情况下,调整资源,在资源调整完成的情况下,确定待测试接口的目标性能指标数据。
在本发明实施例中,如果待测试接口在当前并发时长中的所有时间段上的性能状态都是平稳状态(即在当前并发时长的性能测试中,待测试接口一直处于平稳状态),则可以继续在下一并发时长上执行测试任务,直到出现待测试接口在时间段上的性能状态是拐点状态或者瓶颈状态的(即在性能测试中,如果待测试接口的性能状态出现拐点状态或者瓶颈状态,则需要调整测试环境或者测试参数,以确定待测试接口的最佳性能指标数据)。如果待测试接口在时间段上的性能状态是拐点状态,则表明需要调整测试参数或者测试资源,以确定待测试接口的最佳性能,因此,可以根据时间段上的性能指标数据确定调整策略(该调整策略用于调整并发数或者测试环境上的资源,例如,降低并发数增加量,继续测试待测试接口在响应时间以及tps不变的情况下,能够负载的最高并发数),并在调整策略执行完成后,确定待测试接口的目标性能指标数据(即最佳性能指标数据)。如果待测试接口在时间段上的性能状态是瓶颈状态,则表明测试资源限制了待测试接口的性能,可以根据时间段上的性能指标数据,确定处于极限状态的资源,并在资源是预设资源(即能够调整的资源,例如,内存、CPU等),调整资源(例如,如果是CPU资源限制了待测试接口的性能,则可以扩充CPU),在资源调整完成后确定待测试接口的目标性能指标数据。
可选地,在确定待测试接口的目标性能指标数据之后,还包括:基于目标性能指标数据,确定待测试接口在各预设阶段的性能数据信息,其中,预设阶段包括:初始阶段、负载阶段、性能测量阶段、稳定阶段、极限阶段;基于各预设阶段的性能数据信息,绘制待测试接口的性能变化图。
在本发明实施例中,结果计算整理模块可以根据通过算法计算模型模块以及压测任务执行调整模块的整体执行流程和结果,对所有持久化数据(即目标性能指标数据)进行统计整合,以得出各个阶段的性能数据信息(即基于目标性能指标数据,确定待测试接口在各预设阶段的性能数据信息),其中,各个阶段分为初始阶段、逐步增加负载阶段(即负载阶段)、性能测量阶段、稳定性观察阶段(即稳定阶段)、容量极限阶段(即极限阶段),同时还可以绘制成待测试接口的性能变化图(即基于各预设阶段的性能数据信息,绘制待测试接口的性能变化图,该性能变化图可以体现待测试接口的每个指标在时间序列上的变化,并能够标记最佳性能点以及瓶颈性能点),并标注对应节点(即生成该性能点参与的节点(例如,数据库、服务器等资源)),以生成可视化性能测试情况,便于相关人员对待测试接口进行优化。
本发明实施例中,提出了一个可以动态调整发压的方法,通过对性能结果的实时判定和分析,简化了性能测试的执行步骤,减少了人工执行分析成本,降低了重做成本,同时也提高了测试的精准度与完整性,实现了对性能测试发压过程的自动化执行以及动态调整能力,能够获取性能测试全方面评估结果。
下面结合另一实施例进行详细说明。
实施例二
本实施例中提供的一种性能测试装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。
图3是根据本发明实施例的一种可选的性能测试装置的示意图,如图3所示,该性能测试装置可以包括:构建单元30,划分单元31,采集单元32,分析单元33,其中,
构建单元30,用于构建测试任务,其中,测试任务包括:待测试接口、初始并发数和并发时长,测试任务用于对预设领域系统的待测试接口进行性能测试;
划分单元31,用于依据时间序列,将并发时长划分为多个时间段;
采集单元32,用于基于初始并发数,执行测试任务,并在执行测试任务的过程中,采集每个时间段上的性能指标数据;
分析单元33,用于对于每一时间段,分析时间段上的性能指标数据,得到待测试接口在时间段上的性能状态,并在性能状态是平稳状态的情况下,继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态或者测试任务执行完成,得到待测试接口的目标性能指标数据。
上述性能测试装置,可以通过构建单元30构建测试任务,通过划分单元31依据时间序列,将并发时长划分为多个时间段,通过采集单元32基于初始并发数,执行测试任务,并在执行测试任务的过程中,采集每个时间段上的性能指标数据,通过分析单元33对于每一时间段,分析时间段上的性能指标数据,得到待测试接口在时间段上的性能状态,并在性能状态是平稳状态的情况下,继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态或者测试任务执行完成,得到待测试接口的目标性能指标数据。在本发明实施例中,可以先构建测试任务,再依据时间序列将测试任务设定的并发时长划分为多个时间段,然后根据测试任务设定的初始并发数执行测试任务,并在执行测试任务的过程中采集每个时间段上的性能指标数据,以根据性能指标数据分析得到待测试接口在相应时间段上的性能状态,如果性能状态是平稳状态,则继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态或者测试任务执行完成,以得到待测试接口的目标性能指标数据,通过根据分析得到的待测试接口的性能状态,能够动态调整测试任务,有效提高了测试效率并降低了测试成本,进而解决了相关技术中无法动态调整性能测试过程,导致测试成本较高以及测试效率较低的技术问题。
可选地,采集单元包括:第一模拟模块,用于采用预设测试平台,模拟预设数量的发压请求,其中,预设数量与初始并发数相等;第一发送模块,用于采用预设测试平台,将所有发压请求发送至待测试接口。
可选地,性能测试装置还包括:第一采集模块,用于在基于初始并发数,执行测试任务的过程中,采集预设测试平台的平台资源数据;第一分析模块,用于分析平台资源数据,得到预设测试平台的当前CPU使用率、当前内存空间回收率和当前连接数回收率,其中,连接数是预设测试平台同时发送发压请求的数量;第一调整模块,用于在当前CPU使用率小于预设使用率阈值和/或当前内存空间回收率以及当前连接数回收率小于预设回收率阈值的情况下,对预设测试平台进行扩容调整,并采用扩容调整后的预设测试平台继续执行测试任务。
可选地,采集单元还包括:第二采集模块,用于通过预设测试平台采集待测试接口在时间段上的业务性能数据,其中,业务性能数据包括:并发数、响应时间、每秒事务数、平台资源数据,平台资源数据包括:CPU数据、内存数据、连接数数据、磁盘输入输出数据和网络输入输出数据;第一监控模块,用于采用预设监控系统监控待测试接口所在的测试环境,得到在时间段上的资源性能数据;第一生成模块,用于基于业务性能数据以及资源性能数据,生成性能指标数据。
可选地,分析单元包括:第一解析模块,用于解析性能指标数据,得到待测试接口在时间段上的响应时间变化数据、每秒事务数变化数据和资源使用数据;第一确定模块,用于在响应时间变化数据指示响应时间差值小于第一预设差值、每秒事务数变化数据指示每秒事务数处于线性增加状态以及每个资源的资源使用数据指示资源处于空闲状态的情况下,确定待测试接口在时间段上的性能状态是平稳状态;第二确定模块,用于在响应时间变化数据指示响应时间差值大于等于第一预设差值、每秒事务数变化数据指示每秒事务数处于非线性增加状态以及存在至少一个资源的资源使用数据指示资源处于繁忙状态的情况下,确定待测试接口在时间段上的性能状态是拐点状态;第三确定模块,用于在响应时间变化数据指示响应时间差值大于第二预设差值、每秒事务数变化数据指示每秒事务数处于下降状态以及存在至少一个资源的资源使用数据指示资源处于极限状态的情况下,确定待测试接口在时间段上的性能状态是瓶颈状态,其中,第二预设差值大于第一预设差值。
可选地,性能测试装置还包括:第一执行模块,用于在分析时间段上的性能指标数据,得到待测试接口在时间段上的性能状态之后,在待测试接口在当前并发时长中的所有时间段上的性能状态都是平稳状态的情况下,继续在下一并发时长上执行测试任务,直到出现待测试接口在时间段上的性能状态是拐点状态或者瓶颈状态的;第四确定模块,用于在待测试接口在时间段上的性能状态是拐点状态的情况下,基于时间段上的性能指标数据确定调整策略,并在调整策略执行完成的情况下,确定待测试接口的目标性能指标数据,其中,调整策略用于调整并发数或者测试环境上的资源;第五确定模块,用于在待测试接口在时间段上的性能状态是瓶颈状态的情况下,基于时间段上的性能指标数据,确定处于极限状态的资源,并在资源是预设资源的情况下,调整资源,在资源调整完成的情况下,确定待测试接口的目标性能指标数据。
可选地,性能测试装置还包括:第六确定模块,用于在确定待测试接口的目标性能指标数据之后,基于目标性能指标数据,确定待测试接口在各预设阶段的性能数据信息,其中,预设阶段包括:初始阶段、负载阶段、性能测量阶段、稳定阶段、极限阶段;第一绘制模块,用于基于各预设阶段的性能数据信息,绘制待测试接口的性能变化图。
上述的性能测试装置还可以包括处理器和存储器,上述构建单元30,划分单元31,采集单元32,分析单元33等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来分析时间段上的性能指标数据,得到待测试接口在时间段上的性能状态,并在性能状态是平稳状态的情况下,继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态或者测试任务执行完成,得到待测试接口的目标性能指标数据。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:构建测试任务,依据时间序列,将并发时长划分为多个时间段,基于初始并发数,执行测试任务,并在执行测试任务的过程中,采集每个时间段上的性能指标数据,对于每一时间段,分析时间段上的性能指标数据,得到待测试接口在时间段上的性能状态,并在性能状态是平稳状态的情况下,继续分析待测试接口在下一时间段上的性能状态,直到待测试接口在时间段上的性能状态是瓶颈状态或者测试任务执行完成,得到待测试接口的目标性能指标数据。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述的性能测试方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的性能测试方法。
图4是根据本发明实施例的一种用于性能测试方法的电子设备(或移动设备)的硬件结构框图。如图4所示,电子设备可以包括一个或多个(图4中采用402a、402b,……,402n来示出)处理器402(处理器402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器404。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种性能测试方法,其特征在于,包括:
构建测试任务,其中,所述测试任务包括:待测试接口、初始并发数和并发时长,所述测试任务用于对预设领域系统的所述待测试接口进行性能测试;
依据时间序列,将所述并发时长划分为多个时间段;
基于所述初始并发数,执行所述测试任务,并在执行所述测试任务的过程中,采集每个所述时间段上的性能指标数据;
对于每一所述时间段,分析所述时间段上的所述性能指标数据,得到所述待测试接口在所述时间段上的性能状态,并在所述性能状态是平稳状态的情况下,继续分析所述待测试接口在下一所述时间段上的所述性能状态,直到所述待测试接口在所述时间段上的所述性能状态是瓶颈状态或者所述测试任务执行完成,得到所述待测试接口的目标性能指标数据。
2.根据权利要求1所述的性能测试方法,其特征在于,基于所述初始并发数,执行所述测试任务的步骤,包括:
采用预设测试平台,模拟预设数量的发压请求,其中,所述预设数量与所述初始并发数相等;
采用所述预设测试平台,将所有所述发压请求发送至所述待测试接口。
3.根据权利要求2所述的性能测试方法,其特征在于,在基于所述初始并发数,执行所述测试任务的过程中,还包括:
采集所述预设测试平台的平台资源数据;
分析所述平台资源数据,得到所述预设测试平台的当前CPU使用率、当前内存空间回收率和当前连接数回收率,其中,连接数是所述预设测试平台同时发送所述发压请求的数量;
在所述当前CPU使用率小于预设使用率阈值和/或所述当前内存空间回收率以及所述当前连接数回收率小于预设回收率阈值的情况下,对所述预设测试平台进行扩容调整,并采用扩容调整后的所述预设测试平台继续执行所述测试任务。
4.根据权利要求1所述的性能测试方法,其特征在于,在执行所述测试任务的过程中,采集每个所述时间段上的性能指标数据的步骤,包括:
通过预设测试平台采集所述待测试接口在所述时间段上的业务性能数据,其中,所述业务性能数据包括:并发数、响应时间、每秒事务数、平台资源数据,所述平台资源数据包括:CPU数据、内存数据、连接数数据、磁盘输入输出数据和网络输入输出数据;
采用预设监控系统监控所述待测试接口所在的测试环境,得到在所述时间段上的资源性能数据;
基于所述业务性能数据以及所述资源性能数据,生成所述性能指标数据。
5.根据权利要求1所述的性能测试方法,其特征在于,分析所述时间段上的所述性能指标数据,得到所述待测试接口在所述时间段上的性能状态的步骤,包括:
解析所述性能指标数据,得到所述待测试接口在所述时间段上的响应时间变化数据、每秒事务数变化数据和资源使用数据;
在所述响应时间变化数据指示响应时间差值小于第一预设差值、所述每秒事务数变化数据指示每秒事务数处于线性增加状态以及每个资源的所述资源使用数据指示所述资源处于空闲状态的情况下,确定所述待测试接口在所述时间段上的所述性能状态是所述平稳状态;
在所述响应时间变化数据指示所述响应时间差值大于等于所述第一预设差值、所述每秒事务数变化数据指示所述每秒事务数处于非线性增加状态以及存在至少一个所述资源的所述资源使用数据指示所述资源处于繁忙状态的情况下,确定所述待测试接口在所述时间段上的所述性能状态是拐点状态;
在所述响应时间变化数据指示所述响应时间差值大于第二预设差值、所述每秒事务数变化数据指示所述每秒事务数处于下降状态以及存在至少一个所述资源的所述资源使用数据指示所述资源处于极限状态的情况下,确定所述待测试接口在所述时间段上的所述性能状态是所述瓶颈状态,其中,所述第二预设差值大于所述第一预设差值。
6.根据权利要求5所述的性能测试方法,其特征在于,在分析所述时间段上的所述性能指标数据,得到所述待测试接口在所述时间段上的性能状态之后,还包括:
在所述待测试接口在当前并发时长中的所有所述时间段上的所述性能状态都是所述平稳状态的情况下,继续在下一并发时长上执行所述测试任务,直到出现所述待测试接口在所述时间段上的所述性能状态是所述拐点状态或者所述瓶颈状态的;
在所述待测试接口在所述时间段上的所述性能状态是所述拐点状态的情况下,基于所述时间段上的所述性能指标数据确定调整策略,并在所述调整策略执行完成的情况下,确定所述待测试接口的目标性能指标数据,其中,所述调整策略用于调整并发数或者测试环境上的所述资源;
在所述待测试接口在所述时间段上的所述性能状态是所述瓶颈状态的情况下,基于所述时间段上的所述性能指标数据,确定处于所述极限状态的所述资源,并在所述资源是预设资源的情况下,调整所述资源,在所述资源调整完成的情况下,确定所述待测试接口的所述目标性能指标数据。
7.根据权利要求6所述的性能测试方法,其特征在于,在确定所述待测试接口的所述目标性能指标数据之后,还包括:
基于所述目标性能指标数据,确定所述待测试接口在各预设阶段的性能数据信息,其中,所述预设阶段包括:初始阶段、负载阶段、性能测量阶段、稳定阶段、极限阶段;
基于各所述预设阶段的所述性能数据信息,绘制所述待测试接口的性能变化图。
8.一种性能测试装置,其特征在于,包括:
构建单元,用于构建测试任务,其中,所述测试任务包括:待测试接口、初始并发数和并发时长,所述测试任务用于对预设领域系统的所述待测试接口进行性能测试;
划分单元,用于依据时间序列,将所述并发时长划分为多个时间段;
采集单元,用于基于所述初始并发数,执行所述测试任务,并在执行所述测试任务的过程中,采集每个所述时间段上的性能指标数据;
分析单元,用于对于每一所述时间段,分析所述时间段上的所述性能指标数据,得到所述待测试接口在所述时间段上的性能状态,并在所述性能状态是平稳状态的情况下,继续分析所述待测试接口在下一所述时间段上的所述性能状态,直到所述待测试接口在所述时间段上的所述性能状态是瓶颈状态或者所述测试任务执行完成,得到所述待测试接口的目标性能指标数据。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的性能测试方法。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的性能测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311485065.5A CN117421196A (zh) | 2023-11-08 | 2023-11-08 | 性能测试方法及其装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311485065.5A CN117421196A (zh) | 2023-11-08 | 2023-11-08 | 性能测试方法及其装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117421196A true CN117421196A (zh) | 2024-01-19 |
Family
ID=89526338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311485065.5A Pending CN117421196A (zh) | 2023-11-08 | 2023-11-08 | 性能测试方法及其装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117421196A (zh) |
-
2023
- 2023-11-08 CN CN202311485065.5A patent/CN117421196A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106294120B (zh) | 测试代码的方法、设备和计算机程序产品 | |
US7107187B1 (en) | Method for modeling system performance | |
US7035766B1 (en) | System and method for diagnosing computer system operational behavior | |
WO2019153487A1 (zh) | 系统性能的度量方法、装置、存储介质和服务器 | |
US7082381B1 (en) | Method for performance monitoring and modeling | |
CN106055464B (zh) | 数据缓存集群压力测试装置及方法 | |
Chen et al. | From tpc-c to big data benchmarks: A functional workload model | |
US7197428B1 (en) | Method for performance monitoring and modeling | |
CN113268403B (zh) | 时间序列的分析预测方法、装置、设备及存储介质 | |
Kalita et al. | Investigation on performance testing and evaluation of prewebd: A. net technique for implementing web application | |
US7617313B1 (en) | Metric transport and database load | |
CN109634820A (zh) | 一种云端移动端协同的故障预警方法、相关设备及系统 | |
US9317387B2 (en) | Methods and systems for reducing metrics used to monitor resources | |
CN112346962B (zh) | 一种应用于对照测试系统中的对照数据测试方法及装置 | |
CN115794570A (zh) | 压力测试方法、装置、设备及计算机可读存储介质 | |
CN112948262A (zh) | 一种系统测试方法、装置、计算机设备和存储介质 | |
CN111611521B (zh) | 一种流量作弊的监测方法、装置、电子设备及存储介质 | |
CN117539754A (zh) | 压力测试方法、装置、存储介质及电子设备 | |
CN107844496B (zh) | 统计信息输出方法及装置 | |
RU2532714C2 (ru) | Способ получения данных при оценке ресурсов сети и устройство для осуществления способа | |
CN117421196A (zh) | 性能测试方法及其装置、电子设备及存储介质 | |
CN115994093A (zh) | 测试用例推荐方法和装置 | |
CN110489201B (zh) | 容器性能测试装置及方法 | |
CN113656314A (zh) | 压力测试处理方法及装置 | |
CN106855840B (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 |