CN116302989A - 压力测试方法及系统、存储介质、计算机设备 - Google Patents
压力测试方法及系统、存储介质、计算机设备 Download PDFInfo
- Publication number
- CN116302989A CN116302989A CN202310164282.8A CN202310164282A CN116302989A CN 116302989 A CN116302989 A CN 116302989A CN 202310164282 A CN202310164282 A CN 202310164282A CN 116302989 A CN116302989 A CN 116302989A
- Authority
- CN
- China
- Prior art keywords
- pressure test
- test task
- execution
- performance index
- parameter
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 334
- 238000013515 script Methods 0.000 claims abstract description 53
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000002159 abnormal effect Effects 0.000 claims abstract description 32
- 230000005856 abnormality Effects 0.000 claims abstract description 4
- 238000012544 monitoring process Methods 0.000 claims description 42
- 238000004891 communication Methods 0.000 claims description 31
- 238000013507 mapping Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 15
- 238000010998 test method Methods 0.000 abstract description 7
- 230000003993 interaction Effects 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000013480 data collection Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000009662 stress testing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Testing Of Devices, Machine Parts, Or Other Structures Thereof (AREA)
Abstract
本申请公开了一种压力测试方法及系统、存储介质、计算机设备,涉及软件测试领域、数字医疗领域以及金融领域,主要目的在于改善现有不能及时发现压力测试过程中产生的系统异常情况,进而导致系统崩坏风险升高,并且只能通过人工定期查看,导致人工成本的增加的技术问题。包括:接收针对目标业务项目进行压力测试的执行指令;基于所述执行参数选取相匹配的压力测试任务执行组件以及压力测试脚本,并控制所述压力测试任务执行组件执行所述压力测试脚本;周期性获取所述压力测试任务执行组件的性能指标参数,并判断所述性能指标参数是否超过所述熔断阈值;若超过,则输出异常告警信息,并控制所述压力测试任务执行组件停止当前压力测试任务。
Description
技术领域
本申请涉及软件测试技术领域、数字医疗技术领域以及金融技术领域,特别是涉及一种压力测试方法及系统、存储介质、计算机设备。
背景技术
通常情况下,业务项目(如智能医疗小程序、金融支付小程序等)在发布前都需要进行压力测试,即确定系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能的极限和隐患,压力测试作为检验业务或中间组件相关性能、容量的一种重要手段,在中大型企业中应用十分广泛。
目前,现有技术中有基于业务测试工具Jmeter,通过配置业务相关测试脚本以进行压力测试的方法,具体是通过创建带有断言的测试脚本来验证程序是否返回了期望结果。然而,上述测试方法仅可以测试程序是否执行成功,而针对压力测试过程中出现的一系列系统异常情况并不能及时被发现,进而导致系统崩坏风险升高,并且只能通过人工定期查看,导致人工成本的增加。因此,亟需一种压力测试方法,以改善上述问题。
发明内容
有鉴于此,本申请提供一种压力测试方法及系统、存储介质、计算机设备,主要目的在于改善现有不能及时发现压力测试过程中产生的系统异常情况,进而导致系统崩坏风险升高,并且只能通过人工定期查看,导致人工成本的增加的技术问题。
依据本申请一个方面,提供了一种压力测试方法,包括:
接收针对目标业务项目进行压力测试的执行指令,所述执行指令携带针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;
基于所述执行参数选取相匹配的压力测试任务执行组件以及压力测试脚本,并控制所述压力测试任务执行组件执行所述压力测试脚本;
周期性获取所述压力测试任务执行组件的性能指标参数,并判断所述性能指标参数是否超过所述熔断阈值;
若超过,则输出异常告警信息,并控制所述压力测试任务执行组件停止当前压力测试任务。
优选的,所述接收针对目标业务项目进行压力测试的执行指令之前,所述方法还包括:
预先获取针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;
基于所述执行参数生成相匹配的压力测试脚本;
生成所述压力测试脚本与所述熔断阈值之间的映射关系,并基于所述映射关系进行存储。
优选的,所述性能指标参数包括系统性能指标参数以及业务项目性能指标参数,所述周期性获取所述压力测试任务执行组件的性能指标参数,具体包括:
基于预设系统性能监测组件,按照第一预设时长间隔周期性获取所述压力测试任务执行组件的系统性能指标参数;
基于预设业务项目性能监测组件,按照第二预设时长间隔周期性获取所述压力测试任务执行组件的业务项目性能指标参数。
优选的,所述判断所述性能指标参数是否超过所述熔断阈值,具体包括:
分别判断所述系统性能指标参数与所述业务项目性能指标参数中是否存在任一指标参数超过所述指标参数所对应的熔断阈值。
优选的,所述若超过,则输出异常告警信息,具体包括:
若所述系统性能指标参数与所述业务项目性能指标参数中存在任一指标参数超过所述指标参数所对应的熔断阈值,则输出异常告警信息。
优选的,所述若超过,则输出异常告警信息,并控制所述压力测试任务执行组件停止当前压力测试任务之后,所述方法还包括:
响应于针对所述目标业务项目的调试完成指令,删除所述异常告警信息,并控制当前压力测试任务恢复执行。
优选的,所述接收针对目标业务项目进行压力测试的执行指令之前,所述方法还包括:
预先建立与所述预设系统性能监测组件、所述预设业务项目性能监测组件以及所述压力测试任务执行组件之间的通讯连接,以基于所述通讯连接进行信息传输。
依据本申请另一个方面,提供了一种压力测试系统,包括:
接收模块,用于接收针对目标业务项目进行压力测试的执行指令,所述执行指令携带针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;
选取模块,用于基于所述执行参数选取相匹配的压力测试任务执行组件以及压力测试脚本,并控制所述压力测试任务执行组件执行所述压力测试脚本;
判断模块,用于周期性获取所述压力测试任务执行组件的性能指标参数,并判断所述性能指标参数是否超过所述熔断阈值;
输出模块,用于若超过,则输出异常告警信息,并控制所述压力测试任务执行组件停止当前压力测试任务。
优选的,所述接收模块之前,所述系统还包括:
获取模块,用于预先获取针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;
生成模块,用于基于所述执行参数生成相匹配的压力测试脚本;
存储模块,用于生成所述压力测试脚本与所述熔断阈值之间的映射关系,并基于所述映射关系进行存储。
优选的,所述性能指标参数包括系统性能指标参数以及业务项目性能指标参数,所述判断模块,具体包括:
第一获取单元,用于基于预设系统性能监测组件,按照第一预设时长间隔周期性获取所述压力测试任务执行组件的系统性能指标参数;
第二获取单元,用于基于预设业务项目性能监测组件,按照第二预设时长间隔周期性获取所述压力测试任务执行组件的业务项目性能指标参数。
优选的,所述判断模块,还包括:
判断单元,用于分别判断所述系统性能指标参数与所述业务项目性能指标参数中是否存在任一指标参数超过所述指标参数所对应的熔断阈值。
优选的,所述输出模块,具体用于:
若所述系统性能指标参数与所述业务项目性能指标参数中存在任一指标参数超过所述指标参数所对应的熔断阈值,则输出异常告警信息。
优选的,所述输出模块之后,所述系统还包括:
恢复模块,用于响应于针对所述目标业务项目的调试完成指令,删除所述异常告警信息,并控制当前压力测试任务恢复执行。
优选的,所述接收模块之前,所述系统还包括:
建立模块,用于预先建立与所述预设系统性能监测组件、所述预设业务项目性能监测组件以及所述压力测试任务执行组件之间的通讯连接,以基于所述通讯连接进行信息传输。
根据本申请的又一方面,提供了一种存储介质,所述存储介质中存储有至少一条可执行指令,所述可执行指令使处理器执行如上述压力测试方法对应的操作。
根据本申请的再一方面,提供了一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一条可执行指令,所述可执行指令使所述处理器执行上述压力测试方法对应的操作。
借由上述技术方案,本申请实施例提供的技术方案至少具有下列优点:
本申请提供了一种压力测试方法及系统、存储介质、计算机设备,首先接收针对目标业务项目进行压力测试的执行指令,所述执行指令携带针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;其次基于所述执行参数选取相匹配的压力测试任务执行组件以及压力测试脚本,并控制所述压力测试任务执行组件执行所述压力测试脚本;再次周期性获取所述压力测试任务执行组件的性能指标参数,并判断所述性能指标参数是否超过所述熔断阈值;最后若超过,则输出异常告警信息,并控制所述压力测试任务执行组件停止当前压力测试任务。与现有技术相比,本申请实施例首先根据目标业务项目的压力测试执行参数选择相匹配的压力测试任务执行组件以及压力测试脚本,并控制压力测试任务执行组件执行压力测试脚本,以进行压力测试;进一步在压力测试过程中,周期性获取压力测试任务执行组件的性能指标参数,并与熔断阈值相比较,若超过,则进行告警,并停止压力测试任务,以使得压力测试过程中所产生的系统异常情况能够被及时发现,降低了系统崩坏的风险,同时降低了因通过人工定期查看系统性能指标参数所带来的人工成本。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请实施例提供的一种压力测试方法流程图;
图2示出了本申请实施例提供的另一种压力测试方法流程图;
图3示出了本申请实施例提供的压力测试系统组件构成图;
图4示出了本申请实施例提供的人机交互组件JPlatform与压力测试任务执行组件集群Jmeter的交互图;
图5示出了本申请实施例提供的熔断监测组件Data_Collect与性能监测组件Prometheus以及Cat的交互图;
图6示出了本申请实施例提供的压力测试整体流程图;
图7示出了本申请实施例提供的一种压力测试系统组成框图;
图8示出了本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
基于此,在一个实施例中,如图1所示,提供了一种压力测试方法,以该方法应用于服务器等计算机设备为例进行说明,其中,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,如智能医疗系统、数字医疗平台等。上述方法包括以下步骤:
101、接收针对目标业务项目进行压力测试的执行指令。
其中,目标业务项目用于表征程序可以实现的功能,例如,智能医疗小程序中的就诊记录查询功能或获取用户基本信息功能、电子支付小程序中的修改用户基本信息功能或绑定银行卡功能等;执行指令携带针对目标业务项目进行压力测试的压力测试参数信息,压力测试参数信息包括执行参数以及熔断阈值,执行参数可以用于指定对目标业务项目的某个特定的业务场景进行压力测试、或指定调用的接口等,熔断阈值用于表征执行压力测试任务的设备所能够承受的性能最上限(如,配置内存使用率达95%作为熔断阈值或CPU占用率达90%作为熔断阈值等),或最大变化值(如,配置内存使用率在短时间内增加50%或CPU占用率在短时间内升高超50%等)。本申请实施例中,当前执行端可以是软件测试的控制端,用于接收用户触发的针对目标业务项目进行压力测试的执行指令,并提取执行指令中所携带的相关信息。可以通过建立压力测试控制平台JPlatform,以实现当前执行端与用户之间的信息交互。
102、基于执行参数选取相匹配的压力测试任务执行组件以及压力测试脚本,并控制压力测试任务执行组件执行压力测试脚本。
其中,压力测试任务执行组件用于表征执行压力测试任务所用到的设备;压力测试脚本可以用于指定需要进行压力测试的业务场景或所需要调用的接口等。本申请实施例中,实施例步骤101中所提取到的执行参数可以包括指定的业务场景,可以运行的软件版本要求,能够执行任务的运行系统等,基于上述参数从候选设备(如Jmeter集群)中选取至少一台设备,以执行对应的压力测试脚本。
需要说明的是,压力测试脚本可以是预先存储于压力测试任务执行组件中的,也可以通过配置一个脚本生成组件,根据实施例步骤101中所提取到的执行参数实时生成的,本申请实施例不做具体限定。
103、周期性获取压力测试任务执行组件的性能指标参数,并判断性能指标参数是否超过熔断阈值。
其中,性能指标参数可以包括执行压力测试任务的设备的系统性能指标表参数以及业务性能指标表参数,系统性能指标表参数可以包括CPU占用率、内存使用率、IO耗时等,业务性能指标表参数可以包括任务结果的返回时长等。本申请实施例中,通过周期性的获取压力测试任务执行组件执行压力测试脚本时的相关性能指标参数,并实时与熔断阈值进行对比,以实现对系统性能的实时监控,从而改善在压力测试过程中所产生的系统异常情况不能被及时发现的问题。
104、若超过,则输出异常告警信息,并控制压力测试任务执行组件停止当前压力测试任务。
本申请实施例中,在出现性能指标参数超过熔断阈值的情况时,向用户输出系统异常的告警信息,例如,可以通过弹窗等方式进行提示。同时控制压力测试任务执行组件停止当前压力测试任务,以避免继续任务所带来的系统崩坏的风险。
与现有技术相比,本申请实施例首先根据目标业务项目的压力测试执行参数选择相匹配的压力测试任务执行组件以及压力测试脚本,并控制压力测试任务执行组件执行压力测试脚本,以进行压力测试;进一步在压力测试过程中,周期性获取压力测试任务执行组件的性能指标参数,并与熔断阈值相比较,若超过,则进行告警,并停止压力测试任务,以使得压力测试过程中所产生的系统异常情况能够被及时发现,降低了系统崩坏的风险,同时降低了因通过人工定期查看系统性能指标参数所带来的人工成本。
为了进一步说明以及限定,本申请实施例中,性能指标参数包括系统性能指标参数以及业务项目性能指标参数。
本申请实施例提供了另一种压力测试方法,如图2所示,该方法包括:
201、基于预设系统性能监测组件,按照第一预设时长间隔周期性获取压力测试任务执行组件的系统性能指标参数。
其中,第一预设时长间隔用于表征获取系统性能指标参数的时长间隔。本申请实施例中,可以基于如Prometheus等系统性能监测组件实时监测压力测试任务执行组件的系统性能指标参数,如CPU占用率、内存使用率、IO耗时等,并按照第一预设时长间隔周期性进行获取。
202、基于预设业务项目性能监测组件,按照第二预设时长间隔周期性获取压力测试任务执行组件的业务项目性能指标参数。
其中,第二预设时长间隔用于表征获取业务项目性能指标参数的时长间隔。本申请实施例中,可以基于如Cat等业务项目性能监测组件实时监测压力测试任务执行组件的业务项目性能指标参数,如接口的TPS、任务结果返回耗时等,并按照第二预设时长间隔周期性进行获取。
需要说明的是,第一预设时长间隔和第二预设时长间隔可以根据实际压力测试需求进行配置,可以相同也可以不同,本申请实施例不做具体限定。
203、分别判断系统性能指标参数与业务项目性能指标参数中是否存在任一指标参数超过指标参数所对应的熔断阈值。
本申请实施例中,为了提高压力测试系统熔断的灵敏度,可以依次将系统性能指标参数与业务项目性能指标参数中每一项指标参数与对应的熔断阈值进行对比。
204、若系统性能指标参数与业务项目性能指标参数中存在任一指标参数超过指标参数所对应的熔断阈值,则输出异常告警信息。
本申请实施例中,为了进一步提高压力测试系统熔断的灵敏度,可以将熔断标准设置为系统性能指标参数与业务项目性能指标参数中存在任一指标参数超过指标参数所对应的熔断阈值,即满足熔断标准,需输出异常告警信息。
需要说明的是,还可以根据实际需求进行调整,例如,如果对灵敏度要求较低,可以将熔断标准配置为系统性能指标参数与业务项目性能指标参数中超过3项指标参数超过所对应的熔断阈值,或有20%的指标参数超过所对应的熔断阈值,才出发熔断操作。
作为一种优选的方式,本申请实施例中,接收针对目标业务项目进行压力测试的执行指令之前,实施例方法还包括:预先获取针对目标业务项目进行压力测试的压力测试参数信息;基于执行参数生成相匹配的压力测试脚本;生成压力测试脚本与熔断阈值之间的映射关系,并基于映射关系进行存储。
其中,压力测试参数信息包括执行参数以及熔断阈值。可以理解的是,为了缩短压力测试所消耗的时长,可以预先接收多个业务项目的压力测试参数信息,并分别生成对应的压力测试脚本,再将生成的压力测试脚本与熔断阈值进行映射,并对应存储,以使得在触发压力测试操作时,可以直接进行调取,省去了压力测试脚本的生成时间,从而缩短压力测试所消耗的整体时长。
作为一种可选的方式,本申请实施例中,若超过,则输出异常告警信息,并控制压力测试任务执行组件停止当前压力测试任务之后,实施例方法还包括:响应于针对目标业务项目的调试完成指令,删除异常告警信息,并控制当前压力测试任务恢复执行。
具体的,在压力测试被熔断后,可以通过触发调试线程对当前业务项目进行调试;在调试完成后,用户可以触发针对目标业务项目的调试完成指令,当前执行端在接收到调试完成的指令后,解除当前异常告警状态,相应的对异常告警信息进行删除,并控制当前压力测试任务恢复执行,以继续执行压力测试任务,直至再次熔断或压力测试任务完成。
为了进一步说明以及限定,本申请实施例中,接收针对目标业务项目进行压力测试的执行指令之前,实施例方法还包括:预先建立与预设系统性能监测组件、预设业务项目性能监测组件以及压力测试任务执行组件之间的通讯连接,以基于通讯连接进行信息传输。
在具体的应用场景中,可以通过如图3所示的4个部分组件实现上述压力测试方法,分别包括:人机交互组件JPlatform、压力测试任务执行组件集群Jmeter、熔断监测组件Data_Collect、性能监测组件Prometheus以及Cat。其中,人机交互组件JPlatform,用于接收业务项目的压力测试参数信息,并进行存储;以及将压力测试参数信息推送到熔断监测组件Data_Collect;压力测试任务执行组件集群Jmeter,用于执行压力测试任务的组件,可以接收并存储提前配置完成的压力测试脚本,并由人机交互组件JPlatform从压力测试任务执行组件集群Jmeter中选择某几台设备执行压力测试任务;熔断监测组件Data_Collec,用于收集整理在压力测试过程中的系统性能指标参数以及业务项目性能指标参数,再将整理后的数据与所收到的熔断阈值数据进行比较,若超过阈值,则及时推送一个熔断触达的告警信息到人机交互组件JPlatform,人机交互组件JPlatform接收到告警后,则控制当前压力测试任务停止;性能监测组件Prometheus,用于监测设备的系统性能指标参数;性能监测组件Cat,用于监测业务项目相关接口的TPS、耗时等性能指标参数。
进一步的,人机交互组件JPlatform与压力测试任务执行组件集群Jmeter之间的交互,如图4所示,压力测试任务执行组件集群Jmeter接收到压力测试执行指令后,选取对应的压力测试脚本,按照预先规划完成的压力测试脚本设置,分别调用A系统接口、B系统接口、N系统接口,并将调用执行结果显示在压力测试任务执行组件集群Jmeter上。熔断监测组件Data_Collect与性能监测组件Prometheus以及Cat之间的交互,如图5所示,人机交互组件JPlatform在配置熔断阈值后,将其推送到熔断监测组件Data_Collect,熔断监测组件Data_Collect通过调用性能监测组件Prometheus以及Cat的相关接口,以获取在压力测试过程中的系统性能指标参数以及业务项目性能指标参数。
进一步的,压力测试整体流程,如图6所示,人机交互组件JPlatform推送熔断阈值到熔断监测组件Data_Collect,以作为后续阈值比对的依据;在人机交互组件JPlatform发起压力测试执行指令后,熔断监测组件Data_Collect开始收集所涉及的性能指标参数;通过调用性能监测组件Prometheus以及Cat接口,来获取对应的系统性能指标参数和业务项目性能指标参数,每秒收集一次;熔断监测组件Data_Collect对收集的数据进行综合比对,当达到设定的熔断阈值时(比如CPU使用率达到60%、内存使用率达到80%、业务接口TPS达到1000),则输出熔断告警到人机交互组件JPlatform;人机交互组件JPlatform接收到熔断告警后,则发起停止压力测试指令到压力测试任务执行组件集群Jmeter,此时,压力测试任务停止。
本申请提供了一种压力测试方法,首先接收针对目标业务项目进行压力测试的执行指令,所述执行指令携带针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;其次基于所述执行参数选取相匹配的压力测试任务执行组件以及压力测试脚本,并控制所述压力测试任务执行组件执行所述压力测试脚本;再次周期性获取所述压力测试任务执行组件的性能指标参数,并判断所述性能指标参数是否超过所述熔断阈值;最后若超过,则输出异常告警信息,并控制所述压力测试任务执行组件停止当前压力测试任务。与现有技术相比,本申请实施例首先根据目标业务项目的压力测试执行参数选择相匹配的压力测试任务执行组件以及压力测试脚本,并控制压力测试任务执行组件执行压力测试脚本,以进行压力测试;进一步在压力测试过程中,周期性获取压力测试任务执行组件的性能指标参数,并与熔断阈值相比较,若超过,则进行告警,并停止压力测试任务,以使得压力测试过程中所产生的系统异常情况能够被及时发现,降低了系统崩坏的风险,同时降低了因通过人工定期查看系统性能指标参数所带来的人工成本。
进一步的,作为对上述图1所示方法的实现,本申请实施例提供了一种压力测试系统,如图7所示,该系统包括:
接收模块31,选取模块32,判断模块33,输出模块34。
接收模块31,用于接收针对目标业务项目进行压力测试的执行指令,所述执行指令携带针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;
选取模块32,用于基于所述执行参数选取相匹配的压力测试任务执行组件以及压力测试脚本,并控制所述压力测试任务执行组件执行所述压力测试脚本;
判断模块33,用于周期性获取所述压力测试任务执行组件的性能指标参数,并判断所述性能指标参数是否超过所述熔断阈值;
输出模块34,用于若超过,则输出异常告警信息,并控制所述压力测试任务执行组件停止当前压力测试任务。
优选的,所述接收模块之前,所述系统还包括:
获取模块,用于预先获取针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;
生成模块,用于基于所述执行参数生成相匹配的压力测试脚本;
存储模块,用于生成所述压力测试脚本与所述熔断阈值之间的映射关系,并基于所述映射关系进行存储。
优选的,所述性能指标参数包括系统性能指标参数以及业务项目性能指标参数,所述判断模块,具体包括:
第一获取单元,用于基于预设系统性能监测组件,按照第一预设时长间隔周期性获取所述压力测试任务执行组件的系统性能指标参数;
第二获取单元,用于基于预设业务项目性能监测组件,按照第二预设时长间隔周期性获取所述压力测试任务执行组件的业务项目性能指标参数。
优选的,所述判断模块,还包括:
判断单元,用于分别判断所述系统性能指标参数与所述业务项目性能指标参数中是否存在任一指标参数超过所述指标参数所对应的熔断阈值。
优选的,所述输出模块,具体用于:
若所述系统性能指标参数与所述业务项目性能指标参数中存在任一指标参数超过所述指标参数所对应的熔断阈值,则输出异常告警信息。
优选的,所述输出模块之后,所述系统还包括:
恢复模块,用于响应于针对所述目标业务项目的调试完成指令,删除所述异常告警信息,并控制当前压力测试任务恢复执行。
优选的,所述接收模块之前,所述系统还包括:
建立模块,用于预先建立与所述预设系统性能监测组件、所述预设业务项目性能监测组件以及所述压力测试任务执行组件之间的通讯连接,以基于所述通讯连接进行信息传输。
本申请提供了一种压力测试系统,首先接收针对目标业务项目进行压力测试的执行指令,所述执行指令携带针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;其次基于所述执行参数选取相匹配的压力测试任务执行组件以及压力测试脚本,并控制所述压力测试任务执行组件执行所述压力测试脚本;再次周期性获取所述压力测试任务执行组件的性能指标参数,并判断所述性能指标参数是否超过所述熔断阈值;最后若超过,则输出异常告警信息,并控制所述压力测试任务执行组件停止当前压力测试任务。与现有技术相比,本申请实施例首先根据目标业务项目的压力测试执行参数选择相匹配的压力测试任务执行组件以及压力测试脚本,并控制压力测试任务执行组件执行压力测试脚本,以进行压力测试;进一步在压力测试过程中,周期性获取压力测试任务执行组件的性能指标参数,并与熔断阈值相比较,若超过,则进行告警,并停止压力测试任务,以使得压力测试过程中所产生的系统异常情况能够被及时发现,降低了系统崩坏的风险,同时降低了因通过人工定期查看系统性能指标参数所带来的人工成本。
根据本申请一个实施例提供了一种存储介质,所述存储介质存储有至少一条可执行指令,该计算机可执行指令可执行上述任意方法实施例中的压力测试方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
图8示出了根据本申请一个实施例提供的一种计算机设备的结构示意图,本申请具体实施例并不对计算机设备的具体实现做限定。
如图8所示,该计算机设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器402,用于执行程序410,具体可以执行上述压力测试方法实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。计算机设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行以下操作:
接收针对目标业务项目进行压力测试的执行指令,所述执行指令携带针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;
基于所述执行参数选取相匹配的压力测试任务执行组件以及压力测试脚本,并控制所述压力测试任务执行组件执行所述压力测试脚本;
周期性获取所述压力测试任务执行组件的性能指标参数,并判断所述性能指标参数是否超过所述熔断阈值;
若超过,则输出异常告警信息,并控制所述压力测试任务执行组件停止当前压力测试任务。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述压力测试的实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本申请的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本申请的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本申请的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本申请实施为记录在记录介质中的程序,这些程序包括用于实现根据本申请的方法的机器可读指令。因而,本申请还覆盖存储用于执行根据本申请的方法的程序的记录介质。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (10)
1.一种压力测试方法,其特征在于,包括:
接收针对目标业务项目进行压力测试的执行指令,所述执行指令携带针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;
基于所述执行参数选取相匹配的压力测试任务执行组件以及压力测试脚本,并控制所述压力测试任务执行组件执行所述压力测试脚本;
周期性获取所述压力测试任务执行组件的性能指标参数,并判断所述性能指标参数是否超过所述熔断阈值;
若超过,则输出异常告警信息,并控制所述压力测试任务执行组件停止当前压力测试任务。
2.根据权利要求1所述的方法,其特征在于,所述接收针对目标业务项目进行压力测试的执行指令之前,所述方法还包括:
预先获取针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;
基于所述执行参数生成相匹配的压力测试脚本;
生成所述压力测试脚本与所述熔断阈值之间的映射关系,并基于所述映射关系进行存储。
3.根据权利要求1所述方法,其特征在于,所述性能指标参数包括系统性能指标参数以及业务项目性能指标参数,所述周期性获取所述压力测试任务执行组件的性能指标参数,具体包括:
基于预设系统性能监测组件,按照第一预设时长间隔周期性获取所述压力测试任务执行组件的系统性能指标参数;
基于预设业务项目性能监测组件,按照第二预设时长间隔周期性获取所述压力测试任务执行组件的业务项目性能指标参数。
4.根据权利要求3所述的方法,其特征在于,所述判断所述性能指标参数是否超过所述熔断阈值,具体包括:
分别判断所述系统性能指标参数与所述业务项目性能指标参数中是否存在任一指标参数超过所述指标参数所对应的熔断阈值。
5.根据权利要求4所述的方法,其特征在于,所述若超过,则输出异常告警信息,具体包括:
若所述系统性能指标参数与所述业务项目性能指标参数中存在任一指标参数超过所述指标参数所对应的熔断阈值,则输出异常告警信息。
6.根据权利要求1-5任一所述的方法,其特征在于,所述若超过,则输出异常告警信息,并控制所述压力测试任务执行组件停止当前压力测试任务之后,所述方法还包括:
响应于针对所述目标业务项目的调试完成指令,删除所述异常告警信息,并控制当前压力测试任务恢复执行。
7.根据权利要求3所述的方法,其特征在于,所述接收针对目标业务项目进行压力测试的执行指令之前,所述方法还包括:
预先建立与所述预设系统性能监测组件、所述预设业务项目性能监测组件以及所述压力测试任务执行组件之间的通讯连接,以基于所述通讯连接进行信息传输。
8.一种压力测试系统,其特征在于,包括:
接收模块,用于接收针对目标业务项目进行压力测试的执行指令,所述执行指令携带针对所述目标业务项目进行压力测试的压力测试参数信息,所述压力测试参数信息包括执行参数以及熔断阈值;
选取模块,用于基于所述执行参数选取相匹配的压力测试任务执行组件以及压力测试脚本,并控制所述压力测试任务执行组件执行所述压力测试脚本;
判断模块,用于周期性获取所述压力测试任务执行组件的性能指标参数,并判断所述性能指标参数是否超过所述熔断阈值;
输出模块,用于若超过,则输出异常告警信息,并控制所述压力测试任务执行组件停止当前压力测试任务。
9.一种存储介质,所述存储介质中存储有至少一条可执行指令,其特征在于,所述可执行指令使处理器执行如权利要求1-7中任一项所述的压力测试方法对应的操作。
10.一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一条可执行指令,其特征在于,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的压力测试方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310164282.8A CN116302989A (zh) | 2023-02-16 | 2023-02-16 | 压力测试方法及系统、存储介质、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310164282.8A CN116302989A (zh) | 2023-02-16 | 2023-02-16 | 压力测试方法及系统、存储介质、计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302989A true CN116302989A (zh) | 2023-06-23 |
Family
ID=86795330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310164282.8A Pending CN116302989A (zh) | 2023-02-16 | 2023-02-16 | 压力测试方法及系统、存储介质、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302989A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627747A (zh) * | 2023-07-24 | 2023-08-22 | 北京微吼时代科技有限公司 | 服务器压力测试巡检方法、系统、电子设备及存储介质 |
-
2023
- 2023-02-16 CN CN202310164282.8A patent/CN116302989A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627747A (zh) * | 2023-07-24 | 2023-08-22 | 北京微吼时代科技有限公司 | 服务器压力测试巡检方法、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109361562B (zh) | 一种基于关联网络设备接入的自动化测试方法 | |
CN108521339B (zh) | 一种基于集群日志的反馈式节点故障处理方法及系统 | |
CN114185708A (zh) | 基于分布式链路追踪的数据分析方法、装置和电子设备 | |
CN111752799A (zh) | 一种业务链路跟踪方法、装置、设备及储存介质 | |
CN113254323B (zh) | 线上全链路压测方法、装置及计算机设备 | |
CN109460343A (zh) | 基于日志的系统异常监控方法、装置、设备及存储介质 | |
CN111666217B (zh) | 用于测试代码的方法和装置 | |
CN111782486A (zh) | 一种基于动态配置的告警实现方法及其系统 | |
CN111159520B (zh) | 样本鉴定方法、装置及安全应急响应系统 | |
CN109325010A (zh) | 日志查看方法、装置、计算机设备和存储介质 | |
CN110502366A (zh) | 案例执行方法、装置、设备及计算机可读存储介质 | |
CN116302989A (zh) | 压力测试方法及系统、存储介质、计算机设备 | |
CN107203464B (zh) | 业务问题的定位方法以及装置 | |
CN113434396A (zh) | 接口测试方法、装置、设备、存储介质及程序产品 | |
CN116204438A (zh) | 测试用例生成方法、自动化测试方法和相关装置 | |
CN109409948B (zh) | 交易异常检测方法、装置、设备及计算机可读存储介质 | |
CN111639022A (zh) | 交易测试方法及装置、存储介质、电子装置 | |
CN113746924B (zh) | 一种电网业务数据跨区传输方法及装置 | |
CN113722240B (zh) | 一种linux操作系统管理平台的稳定性测试方法及系统 | |
CN109614330A (zh) | 存储系统业务测试方法、装置、系统、存储控制器及介质 | |
CN115357493A (zh) | 测试方法、装置、电子设备和存储介质 | |
CN114064510A (zh) | 功能测试方法、装置、电子设备和存储介质 | |
CN114500178A (zh) | 一种自运维的智慧物联网关 | |
CN113836013A (zh) | 一种埋点测试方法、装置、计算机设备和计算机可读存储介质 | |
CN112860527A (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 |