CN117453541A - 压力测试方法、装置、终端设备以及存储介质 - Google Patents

压力测试方法、装置、终端设备以及存储介质 Download PDF

Info

Publication number
CN117453541A
CN117453541A CN202311381875.6A CN202311381875A CN117453541A CN 117453541 A CN117453541 A CN 117453541A CN 202311381875 A CN202311381875 A CN 202311381875A CN 117453541 A CN117453541 A CN 117453541A
Authority
CN
China
Prior art keywords
press
pressure
pressure measurement
execution
testing
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
Application number
CN202311381875.6A
Other languages
English (en)
Inventor
邓超
肖鹏
叶彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Merchants Bank Co Ltd
Original Assignee
China Merchants Bank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Merchants Bank Co Ltd filed Critical China Merchants Bank Co Ltd
Priority to CN202311381875.6A priority Critical patent/CN117453541A/zh
Publication of CN117453541A publication Critical patent/CN117453541A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Testing Of Devices, Machine Parts, Or Other Structures Thereof (AREA)

Abstract

本发明公开了一种压力测试方法、装置、终端设备以及存储介质,属于软件测试技术领域。其方法包括:获取压测配置信息;根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。本发明根据压测配置信息对压力机进行压测流程执行管理,利用压测流程执行数据通过调度服务采集得到压力测试结果,实现压力测试中对压力机压测流程的执行管理,进而实现了压力测试。

Description

压力测试方法、装置、终端设备以及存储介质
技术领域
本发明涉及软件测试技术领域,尤其涉及一种压力测试方法、装置、终端设备以及存储介质。
背景技术
在软件测试中,通过压力测试,可以发现和解决系统在高负载下产生的性能问题和瓶颈,从而提升系统的性能和可靠性。压力机是执行压力测试的虚拟机,在压力测试中使用压力机来模拟大量并发用户访问系统的情景,以测试系统的负载能力、瓶颈和性能指标等。
但是,目前的压力测试并没有实现对压力机的执行流程进行管理,不能确保压力测试的资源合理利用,压力测试的效率和质量较低。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本申请的主要目的在于提供一种压力测试方法、装置、终端设备以及存储介质,旨在实现压力测试中对压力机压测流程的执行管理。
为实现上述目的,本申请提供一种压力测试方法,所述压力测试方法包括:
获取压测配置信息;
根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;
通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。
可选地,所述根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据的步骤包括:
根据所述压测配置信息,对所述压力机进行初始化,获取待执行压力机;
根据预先获取的数据文件,执行所述待执行压力机,获取执行结果;
根据所述执行结果,停止执行所述压力机并进行资源释放,获取压测流程执行数据。
可选地,所述根据所述压测配置信息,对所述压力机进行初始化,获取待执行压力机的步骤之前还包括:
根据所述压测配置信息中的压测环境配置,对所述压力机进行配置;
判断所述压力机的状态;
若所述压力机的状态为启用,则执行步骤:根据所述压测配置信息,对所述压力机进行初始化,获取待执行压力机。
可选地,所述根据预先获取的数据文件,执行所述待执行压力机,获取执行结果的步骤之前还包括:
根据所述压测配置信息,组装模拟数据报文,生成数据文件并发送到云服务器中;
将所述云服务器中的数据文件下载到所述压力机中;
通过所述调度服务接收数据文件下载结果;
若所述数据文件下载结果为成功,则执行步骤:根据预先获取的数据文件,执行所述待执行压力机,获取执行结果。
可选地,所述根据预先获取的数据文件,执行所述待执行压力机,获取执行结果的步骤包括:
根据所述数据文件,通过所述调度服务启动所述待执行压力机,获取启动后的压力机;
通过所述启动后的压力机向目标机器发起流量请求,获取请求响应;
根据所述请求响应,获取执行结果。
可选地,所述根据预先获取的数据文件,执行所述待执行压力机,获取执行结果的步骤之后还包括:
根据所述压测环境配置,通过预设的定时监控任务对所述启动后的压力机进行资源监控,获取资源监控数据;
若所述资源监控数据超过预设的压测指标阈值,则基于预设的停止命令,停止执行所述启动后的压力机并进行资源释放;
若所述压力机停止执行失败,则通过预设的断电服务,断电所述压力机。
可选地,所述通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果的步骤包括:
将所述压测流程执行数据发送到所述调度服务中;
基于预设的打包指令,通过所述调度服务打包所述压测流程执行数据中的执行结果,生成压力测试报告。
本申请实施例还提出一种压力测试装置,所述压力测试装置包括:
配置信息获取模块,用于获取压测配置信息;
执行流程管理模块,用于根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;
压测报告生成模块,用于通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。
本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的压力测试程序,所述压力测试程序被所述处理器执行时实现如上所述的压力测试方法的步骤。
本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有压力测试程序,所述压力测试程序被处理器执行时实现如上所述的压力测试方法的步骤。
本申请实施例提出的压力测试方法、装置、终端设备以及存储介质,获取压测配置信息;根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。本发明根据压测配置信息对压力机进行压测流程执行管理,利用压测流程执行数据通过调度服务采集得到压力测试结果,实现压力测试中对压力机压测流程的执行管理,进而实现了压力测试。
附图说明
图1是本申请压力测试装置所属终端设备的功能模块示意图;
图2为本申请压力测试方法第一示例性实施例的流程示意图;
图3为本申请压力测试方法部署在压力测试平台的系统架构图;
图4为本申请压力测试方法第二示例性实施例的流程示意图;
图5为本申请压力测试方法对压力机进行执行流程管理的流程示意图;
图6为本申请压力测试方法第三示例性实施例的流程示意图;
图7为本申请压力测试方法基于Jmeter工具执行压力测试的流程示意图;
图8为本申请压力测试方法压力机自动停止、一键断电的机制和实现的流程示意图;
图9为本申请压力测试方法第四示例性实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请实施例的主要解决方案是:获取压测配置信息;根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。本发明根据压测配置信息对压力机进行压测流程执行管理,利用压测流程执行数据通过调度服务采集得到压力测试结果,解决了目前压力测试并没有实现对压力机的执行流程进行管理的问题,实现压力测试中对压力机压测流程的执行管理,进而实现了压力测试。
本申请涉及的技术术语:
JMeter工具:是一款常用的压力测试工具,可以测试各种类型的应用程序和服务,包括Web服务、RESTfu l服务、SOAP Web服务、FTP服务等。
本申请实施例考虑到,相关技术方案压力测试时在被压测应用服务表现异常时,压力机自动停止或无法停止,没有解决方法描述及实现,易影响被压测应用服务正常使用,没有压力机在压测执行前、执行中、执行后全过程的管控方法和实现。
基于此,本申请实施例提出一种解决方案,提供压力机自动停止、一键断电的机制和实现,保障压测生产系统的安全。提供压力机压测执行时的全过程管控,主要包括压测前的压力机创建初始化,压测中的CPU、内存使用率监控、压力机的停止等操作,压测后的压力机资源释放回收。
具体地,参照图1,图1为本申请压力测试装置所属终端设备的功能模块示意图。该压力测试装置可以为独立于终端设备的、能够进行压力测试的装置,其可以通过硬件或者软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有压力测试功能的智能移动设备,还可以为具有压力测试功能的固定终端设备或服务器等。
在本实施例中,该压力测试装置所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。
存储器130中存储有操作系统以及压力测试程序,压力测试装置可以将接收到的和处理的数据信息存储于该存储器130中;输出模块110可为显示屏、扬声器等。通信模块140可以包括WI F I模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
其中,存储器130中的压力测试程序被处理器执行时实现以下步骤:
获取压测配置信息;
根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;
通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。
进一步地,存储器130中的压力测试程序被处理器执行时还实现以下步骤:
根据所述压测配置信息,对所述压力机进行初始化,获取待执行压力机;
根据预先获取的数据文件,执行所述待执行压力机,获取执行结果;
根据所述执行结果,停止执行所述压力机并进行资源释放,获取压测流程执行数据。
进一步地,存储器130中的压力测试程序被处理器执行时还实现以下步骤:
根据所述压测配置信息中的压测环境配置,对所述压力机进行配置;
判断所述压力机的状态;
若所述压力机的状态为启用,则执行步骤:根据所述压测配置信息,对所述压力机进行初始化,获取待执行压力机。
进一步地,存储器130中的压力测试程序被处理器执行时还实现以下步骤:
根据所述压测配置信息,组装模拟数据报文,生成数据文件并发送到云服务器中;
将所述云服务器中的数据文件下载到所述压力机中;
通过所述调度服务接收数据文件下载结果;
若所述数据文件下载结果为成功,则执行步骤:根据预先获取的数据文件,执行所述待执行压力机,获取执行结果。
进一步地,存储器130中的压力测试程序被处理器执行时还实现以下步骤:
根据所述数据文件,通过所述调度服务启动所述待执行压力机,获取启动后的压力机;
通过所述启动后的压力机向目标机器发起流量请求,获取请求响应;
根据所述请求响应,获取执行结果。
进一步地,存储器130中的压力测试程序被处理器执行时还实现以下步骤:
根据所述压测环境配置,通过预设的定时监控任务对所述启动后的压力机进行资源监控,获取资源监控数据;
若所述资源监控数据超过预设的压测指标阈值,则基于预设的停止命令,停止执行所述启动后的压力机并进行资源释放;
若所述压力机停止执行失败,则通过预设的断电服务,断电所述压力机。
进一步地,存储器130中的压力测试程序被处理器执行时还实现以下步骤:
将所述压测流程执行数据发送到所述调度服务中;
基于预设的打包指令,通过所述调度服务打包所述压测流程执行数据中的执行结果,生成压力测试报告;
根据所述压力测试报告,获取压力测试结果。
本实施例通过上述方案,具体通过获取压测配置信息;根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。本发明根据压测配置信息对压力机进行压测流程执行管理,利用压测流程执行数据通过调度服务采集得到压力测试结果,实现压力测试中对压力机压测流程的执行管理,进而实现了压力测试。
基于上述终端设备架构但不限于上述架构,提出本申请方法实施例。
参照图2,图2为本申请压力测试方法第一示例性实施例的流程示意图。所述压力测试方法应用于压力测试平台,包括以下步骤:
步骤S10:获取压测配置信息;
本实施例方法的执行主体可以是一种压力测试平台,也可以是一种压力测试终端设备或服务器,本实施例以压力测试平台进行举例,该压力测试平台可以集成在具有数据处理功能终端设备上。
压测配置信息需要根据系统的实际情况和测试需求,设置合适的测试参数,可以包括:目标机器,压测环境配置,测试时长,模拟数据报文等参数,这些参数需要基于实际业务的场景进行调整,以确保测试的可靠性和准确性。
步骤S20:根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;
根据压测配置信息,对压力机压力测试流程的执行进行管理,得到压测流程执行数据。其中,所述压测流程可以包括启动压力机实例、分发任务、监控压力机状态、停止压力机等压测流程的控制,通过压测流程执行管理可以控制并发用户数、并发请求量等。具体的测试过程可以通过控制并发用户数、并发请求量等指标,模拟实际的业务负载对目标机器进行压力测试。
需要注意的是,在通过压测流程管理对压力测试的压力机进行管理和调度时,需要保证良好的监控和报告机制,以便及时发现问题并形成反馈,采取相应的关机或停止执行等措施进行处理。
步骤S30:通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。
通过调度服务对压测流程执行数据进行采集,得到压力测试结果。其中,调度服务可以是一个管理压力机和协调资源的系统服务,用于监控压力机的状态和任务的进度。压力测试结果可以包括响应时间、成功率、错误信息等数据,测试人员可以根据压力测试结果评估系统各项业务能力、性能能力,确保了压力测试结果的可靠性和准确性,帮助优化系统设计和开发。
如图3所示,图3为本压力测试方法部署在压力测试平台的系统架构图。压力测试平台包括实现压力测试的集群服务器、其他功能服务器和压测目标服务器,其中,实现压力测试的集群服务器包括业务服务和基础服务,业务服务提供业务功能实现的底层逻辑,包括平台管理、压测计划管理、统计三大业务模块;基础服务包括若干文件存储库及压力测试工具集群。其他功能服务器包括任务审批中心、云管平台、监控系统、运维中台及认证中心等。本压力测试方法通过部署在实现压力测试的集群服务器中,调用到压力测试工具集群和业务功能中的三大模块配合实现压力测试,本实施例中压力测试工具集群采用的JMeter工具,除了JMeter工具之外,也可以根据具体需求选择适合的工具。
实施例通过上述方案,具体通过获取压测配置信息;根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。本发明根据压测配置信息对压力机进行压测流程执行管理,利用压测流程执行数据通过调度服务采集得到压力测试结果,实现压力测试中对压力机压测流程的执行管理,进而实现了压力测试。
参照图4,图4为本发明压力测试方法第二示例性实施例的流程示意图。
基于第一实施例,提出本申请第二实施例,本申请第二实施例与第一实施例的区别在于:
在本实施例中,所述根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据的步骤包括:
步骤S201:根据所述压测配置信息,对所述压力机进行初始化,获取待执行压力机;
步骤S202:根据预先获取的数据文件,执行所述待执行压力机,获取执行结果;
步骤S203:根据所述执行结果,停止执行所述压力机并进行资源释放,获取压测流程执行数据。
具体地,为了实现对压力机压测流程的执行管理,首先,在压力机执行之前,根据压测配置信息,需要对创建好的压力机进行初始化,得到待执行的压力机。其中,对压力机进行初始化的内容可以包括创建并配置压力机实例、设置并发连接数、指定测试目标等。提供了灵活的配置选项,可以根据需求对压力机进行定制化的初始化操作,确保压力机处于正确的状态,并具备执行压力测试的能力。
然后,将预先准备好的数据文件加载到压力机中,执行上一步骤得到的待执行的压力机,得到执行结果。其中,压力机执行的过程可以包括数据准备、模拟用户请求、发送请求、接收响应以及资源监控等步骤进行执行,用于分析系统性能和问题排查,能够有效地模拟并产生实际业务场景下的压力,测试目标机器的性能和稳定性,
最后,在压力机执行后,根据执行结果判断执行的完成情况,停止压力机的执行,并进行相应的资源释放,得到压测流程执行数据。其中,压测流程执行数据是将执行期间的各项数据记录下来得到,这些数据可以包括响应时间、失败率、每秒请求数等目标机器的压测指标,也可以包括CPU占用率和内存使用率等压力机的资源占用率数据和执行中出现的异常日志,用于进一步分析和评估压力测试的结果,记录并反馈执行过程中发现的问题和异常,便于改进压测工作和系统性能。
在停止执行之后,需要将所有相关资源都进行释放和清理,以确保系统能够回到正常的工作状态,资源可以包括以下几个方面:
1.压力机资源:在压力测试期间,为了满足测试需要,可能需要使用多个压力机来模拟请求访问。在测试结束后,需要将这些压力机上的所有资源都进行释放,包括CPU、内存、磁盘等资源。
2.测试数据:在进行压力测试时,可能需要用到一些测试数据,例如测试用例、模拟用户信息等。在测试结束后,需要将这些测试数据从系统中删除,以避免对正常的业务运行产生干扰。
3.临时文件:为了支持测试过程中的数据处理和分析,可能会在系统中创建临时数据文件。在测试结束后,这些文件也需要被清理掉。
4.运行日志:在压力测试期间,系统可能会生成大量的运行日志。这些日志可以用于排查问题和分析测试结果,但是同时也会占用大量磁盘空间。因此,在测试结束后,需要将这些日志进行归档和清理。
通过释放和回收这些资源,可以将被占用的资源交还给系统,使得系统能够恢复到正常的工作状态。此外,也可以避免占用过多的资源导致性能下降或出现故障,保证测试可靠性和系统稳定性。
进一步地,作为一种实施方式,所述根据所述压测配置信息,对所述压力机进行初始化,获取待执行压力机的步骤之前还包括:
步骤S2011:根据所述压测配置信息中的压测环境配置,对所述压力机进行配置;
步骤S2012:判断所述压力机的状态;
步骤S2013:若所述压力机的状态为启用,则执行步骤:根据所述压测配置信息,对所述压力机进行初始化,获取待执行压力机。
具体地,首先,根据压测配置信息中的压测环境配置对压力机进行配置。其中,压测环境配置包括对硬件和软件环境的配置。例如,可能需要调整服务器的CPU、内存、磁盘等资源分配,以确保压力机能够承受预定的负载。另外,根据具体的压力测试及目标机器的不同类型需要,还可能安装特定的软件或版本,以满足压测环境配置需求。为后续的压力机执行做好准备。
然后,判断检查压力机的状态。其中,判断的目的是确保压力机是不被禁用的,确保压力机在压测过程中能够正常执行。
最后,如果压力机的状态为启用状态,且只有当压力机处于启用状态时,才能进行后续的操作,确认压力机可以使用后,根据压测配置信息对其进行初始化。其中,压力机的初始化可能涉及安装必要的软件、配置环境变量、设置网络连接等操作,确保了压力机的准备就绪,并且可以用于接下来的压力测试。
更具体地,如图5所示,图5为本压力测试方法对压力机进行执行流程管理的流程示意图,压力机在压测时的全过程管理总体可以分为3个部分,即执行前的压力机创建初始化,执行中的压力机CPU和内存使用率监控、压力机的停止等操作,执行后的压力机资源释放回收。具体操作及操作描述如下:
在压力机执行前,包括:
1.压力机初始化:在压测前,对压测环境进行系统整备,完成对压力机的初始化。
2.压力机修改:修改补充压力机信息,比如虚拟机唯一标识,用于查询虚机执行中的CPU,内存使用率等。
3.压力机启/禁用状态:控制压力机是否可用,用于执行时判断压力机是否可选择。
在压力机执行时,包括:
1.压力机执行:负责分发计划,执行计划,接收实时报告数据。
2.压力机自动停止:触发阈值时,压力机自动停止。
3.压力机断电:一键手动关机。
4.压力机监控:监控压力机执行过程中的资源占用率。
在压力机停止执行后,包括:
1.压力机回收:压力机资源销毁释放。
提供压力机压测执行时的全过程管控,主要包括执行前的压力机初始化,执行中的压力机资源监控、压力机的停止等操作,执行后的压力机资源释放回收。
本实施例通过上述方案,具体通过根据所述压测配置信息,对所述压力机进行初始化,获取待执行压力机;根据预先获取的数据文件,执行所述待执行压力机,获取执行结果;根据所述执行结果,停止执行所述压力机,获取压测流程执行数据。通过对压力机的执行前、执行中和执行后的管理,得到完整的压测流程执行数据,实现压力机压力测试全流程的执行管理,保证了压力测试的灵活性、可控性和稳定性,以确保有效地进行压力测试,并为后续的优化工作提供支持。
参照图6,图6为本发明压力测试方法第三示例性实施例的流程示意图。
基于第二实施例,提出本申请第三实施例,本申请第三实施例与第二实施例的区别在于:
在本实施例中,所述根据预先获取的数据文件,执行所述待执行压力机,获取执行结果的步骤之前还包括:
步骤S20201:根据所述压测配置信息,组装模拟数据报文,生成数据文件并发送到云服务器中;
步骤S20202:将所述云服务器中的数据文件下载到所述压力机中;
步骤S20203:通过所述调度服务接收数据文件下载结果;
步骤S20204:若所述数据文件下载结果为成功,则执行步骤:根据预先获取的数据文件,执行所述待执行压力机,获取执行结果。
具体地,首先,根据压测配置信息,组装模拟数据报文,生成数据文件并发送到云服务器中。其中,模拟数据报文可以用来模拟用户的请求或者其他测试场景所需的数据,将这些数据报文生成的数据文件发送到云服务器中,以备后续压力机执行使用。
然后,将位于云服务器中的数据文件下载到待执行压力机中,实现数据分发,可以确保压力机能够访问并使用这些测试数据。其中,具体的下载过程可以通过网络传输等方式进行,例如HTTP、FTP等,通过网络传输协议,将数据文件从云服务器传输到待执行压力机中完成压力机执行前的数据分发。下载过程需要考虑网络延迟、带宽限制等因素,以及数据文件的完整性和安全性。
然后,通过调度服务来接收数据文件下载的结果,根据数据文件下载的结果,以便进一步判断是否可以继续执行后续的任务。其中,调度服务可以负责协调和分配任务,监控任务的执行情况,并收集和汇总执行结果。当数据文件下载完成后,压力机会向调度服务发送数据文件下载结果的通知,数据文件下载结果通知可以包括下载是否成功、下载所花费的时间、文件大小及内容等信息。调度服务接收到数据文件下载结果的通知,可以根据这些信息来判断数据文件下载是否成功。如果下载成功,调度服务可以进一步指导后续的任务执行;如果下载失败,调度服务可以采取相应的措施,例如重新分配下载任务或发送警报通知相关人员。
最后,如果数据文件下载结果为成功,即数据文件已经成功地下载到压力机中,则可以执行根据数据文件执行压力机得到执行结果的步骤。
进一步地,作为一种实施方式,所述根据预先获取的数据文件,执行所述待执行压力机,获取执行结果的步骤包括:
步骤S20205:根据所述数据文件,通过所述调度服务启动所述待执行压力机,获取启动后的压力机;
步骤S20206:通过所述启动后的压力机向目标机器发起流量请求,获取请求响应;
步骤S20207:根据所述请求响应,获取执行结果。
具体地,首先,根据数据文件,通过调度服务来启动待执行压力机。其中,调度服务在整个过程中起到了协调和管理资源的作用,调度服务可以通过向压力机发送启动指令,启动压力机,可以获得已启动的压力机。另外,启动的压力机可以以一个压力机实例也即虚拟机实例的形式存在,在停止执行后进行销毁。
然后,使用启动后的压力机向目标机器发起流量请求,得到目标机器的请求响应。其中,压力机可以模拟用户行为,发送请求到目标机器,并等待目标机器返回响应,可以模拟目标机器在上线后真实环境下的压力情况,并获取目标机器在压力下的性能表现。
最后,根据获取到的请求响应进行处理,得到执行结果。其中,执行结果可以包括响应时间、吞吐量、错误率等性能指标,也可以包括日志文件、异常信息等详细信息,这些结果有助于评估系统的性能状况和稳定性,发现潜在问题,并进行后续的性能优化和调整。
进一步地,作为一种实施方式,所述根据预先获取的数据文件,执行所述待执行压力机,获取执行结果的步骤之后还包括:
步骤S20208:根据所述压测环境配置,通过预设的定时监控任务对所述启动后的压力机进行资源监控,获取资源监控数据;
步骤S20209:若所述资源监控数据超过预设的压测指标阈值,则基于预设的停止命令,停止执行所述启动后的压力机并进行资源释放;
步骤S20210:若所述压力机停止执行失败,则通过预设的断电服务,断电所述压力机。
具体地,首先,根据压测环境配置,通过预设的定时监控任务对启动后的压力机进行资源监控,获取资源监控数据。其中,定时监控任务可以定期检查压力机的CPU使用率、内存占用、磁盘IO、网络流量等资源指标,并将这些指标的数据记录下来,有助于评估压力机的性能和负载情况。
然后,如果资源监控数据超过预设的压测指标阈值,说明压力机可能已经达到或超过了可接受的负荷,根据预设的停止命令,需要停止执行启动后的压力机,并进行资源释放。其中,停止命令可以是发送一个信号给压力机实例,告知它停止工作并释放所占用的资源,压力机接收到停止命令后,会停止当前正在执行的任务,并做好停止相关组件和服务的清理工作,资源的释放工作可能包括关闭相关进程、释放占用的内存和磁盘空间、断开网络连接等操作,以确保资源能够被其他任务或系统使用。
最后,如果压力机停止执行失败,即无法通过正常的停止命令将其停止,可以使用预设的断电服务来断电压力机。其中,断电服务可以是通过切断虚拟机的进程,强制关闭压力机的运行,可以确保压力机不再工作,同时释放相关资源,以避免对系统或目标机器造成影响。
更具体地,如图7所示,图7为本压力测试方法基于Jmeter工具执行压力测试的流程示意图,以Jmeter作为压力测试工具,步骤包括:
①数据准备:模拟数据报文组装,生成格式为csv的数据文件。
②数据分发:数据准备阶段完成后,通知压力机到ECS云服务器下载模拟数据文件到本机磁盘目录。
③判断数据分发结果:调度服务同步接收压力机下载数据文件的结果,成功下载则数据准备完成。
④压测执行:调度服务通过Jmeter命令启动压力机并发起流量。
⑤流量请求:压力机向目标机器发起请求。
⑥请求响应:目标机器返回响应。
如图8所示,图8为本压力测试方法压力机自动停止、一键断电的机制和实现的流程示意图。
压力机自动停止:通过对请求响应指标阈值的配置,包括最大失败率、最大响应时间、最大每秒请求数,在模拟请求发起过程中,每间隔1s收集Jmeter返回数据,计算最大响应时间、失败率、每秒请求数,并与配置阈值比较,超过任一指标阈值将调用Jmeter的shutdown命令停止压测。
最大响应时间为压测从执行开始时间到当前统计时点,即为Jmeter返回的maxResponseTime参数。
失败率的统计周期为压测从执行开始时间到当前统计时点,统计方式为:
1.请求总数:Jmeter返回totalCount的参数。
2.失败总数:Jmeter返回failCount的参数。
3.失败率:math.round([失败总数/请求总数],2)。
最大每秒请求数的统计周期为压测从执行开始时间到当前统计时点,统计方式包括:
1.每秒请求数:sum(Jmeter返回1秒的请求数),1秒对应多条请求记录。
2.最大每秒请求数:max(当前统计周期内每1秒请求数)。
压力机一键断电:遇到无法正常停止压力机的极端情况,调用压力机断电服务,一键关机,减少对压测目标造成非预期的流量冲击。
本实施例通过上述方案,具体通过根据所述压测配置信息,组装模拟数据报文,生成数据文件并发送到云服务器中;将所述云服务器中的数据文件下载到所述压力机中;通过所述调度服务接收数据文件下载结果;若所述数据文件下载结果为成功,则执行步骤:根据预先获取的数据文件,执行所述待执行压力机,获取执行结果。建立起一个完整的压力测试流程,并获得有关系统性能的关键信息,有助于提高系统的可靠性、稳定性和性能,并指导进一步的目标机器的性能调优工作。
参照图9,图9为本发明压力测试方法第四示例性实施例的流程示意图。
基于第二实施例,提出本申请第四实施例,本申请第四实施例与第二实施例的区别在于:
在本实施例中,所述通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果的步骤包括:
步骤S301:将所述压测流程执行数据发送到所述调度服务中;
步骤S302:基于预设的打包指令,通过所述调度服务打包所述压测流程执行数据中的执行结果,生成压力测试报告;
步骤S303:根据所述压力测试报告,获取压力测试结果。
具体地,为了得到压力测试结果,首先,将压测流程执行数据发送到预设的调度服务中。其中,发送的方式可以是根据调度服务的接口规范或协议,将压测流程执行数据封装为合适的请求格式,可能需要将数据序列化为特定的格式(如JSON、XML等),并添加必要的头部、参数或其他元数据,使用合适的网络通信方式(如HTTP、RPC等),将构建好的请求发送到预设的调度服务中。
然后,使用预设的打包指令和所述调度服务,将所述压测流程执行数据中的执行数据进行打包,并生成压力测试报告。其中,压力测试报告通常包括压力机进行压力测试的过程中的性能指标、测试结果和压力机等执行情况的数据,例如响应时间、请求量、错误率等数据,这些数据将被用于评估系统的性能和稳定性。
最后,根据压力测试报告,得到压力测试结果。其中,压力测试的结果可以用于识别系统中的性能瓶颈和异常行为,从而确定进一步优化和调整的方向。
更具体地,如图6所示,执行结束后,调度服务接收来自压力机的统计结果数据,当所有压力机完成计划执行后,压测结束,同时在调度服务通过zip打包命令打包收集的结果数据。调度服务将打包好的离线报告数据上传至ECS云服务器,并将上传后的报告链接记录到数据库,供后续查询并下载报告。
本实施例通过上述方案,具体通过将所述压测流程执行数据发送到所述调度服务中;基于预设的打包指令,通过所述调度服务打包所述压测流程执行数据中的执行结果,生成压力测试报告;根据所述压力测试报告,获取压力测试结果。压力测试结果可以被准确地获取和评估,为性能优化和调整提供重要的信息。
此外,本申请实施例还提出一种压力测试装置,所述压力测试装置包括:
配置信息获取模块,用于获取压测配置信息;
执行流程管理模块,用于根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;
压测报告生成模块,用于通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。
本实施例实现压力测试的原理及实施过程,请参照上述各实施例,在此不再赘述。
此外,本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的压力测试程序,所述压力测试程序被所述处理器执行时实现如上所述的压力测试方法的步骤。
由于本压力测试程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有压力测试程序,所述压力测试程序被处理器执行时实现如上所述的压力测试方法的步骤。
由于本压力测试程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
相比现有技术,本申请实施例提出的压力测试方法、装置、终端设备以及存储介质,获取压测配置信息;根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。本发明根据压测配置信息对压力机进行压测流程执行管理,利用压测流程执行数据通过调度服务采集得到压力测试结果,实现压力测试中对压力机压测流程的执行管理,进而实现了压力测试。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种压力测试方法,其特征在于,所述压力测试方法应用于压力测试平台,包括以下步骤:
获取压测配置信息;
根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;
通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。
2.如权利要求1所述的压力测试方法,其特征在于,所述根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据的步骤包括:
根据所述压测配置信息,对所述压力机进行初始化,获取待执行压力机;
根据预先获取的数据文件,执行所述待执行压力机,获取执行结果;
根据所述执行结果,停止执行所述压力机并进行资源释放,获取压测流程执行数据。
3.如权利要求2所述的压力测试方法,其特征在于,所述根据所述压测配置信息,对所述压力机进行初始化,获取待执行压力机的步骤之前还包括:
根据所述压测配置信息中的压测环境配置,对所述压力机进行配置;
判断所述压力机的状态;
若所述压力机的状态为启用,则执行步骤:根据所述压测配置信息,对所述压力机进行初始化,获取待执行压力机。
4.如权利要求3所述的压力测试方法,其特征在于,所述根据预先获取的数据文件,执行所述待执行压力机,获取执行结果的步骤之前还包括:
根据所述压测配置信息,组装模拟数据报文,生成数据文件并发送到云服务器中;
将所述云服务器中的数据文件下载到所述压力机中;
通过所述调度服务接收数据文件下载结果;
若所述数据文件下载结果为成功,则执行步骤:根据预先获取的数据文件,执行所述待执行压力机,获取执行结果。
5.如权利要求4所述的压力测试方法,其特征在于,所述根据预先获取的数据文件,执行所述待执行压力机,获取执行结果的步骤包括:
根据所述数据文件,通过所述调度服务启动所述待执行压力机,获取启动后的压力机;
通过所述启动后的压力机向目标机器发起流量请求,获取请求响应;
根据所述请求响应,获取执行结果。
6.如权利要求5所述的压力测试方法,其特征在于,所述根据预先获取的数据文件,执行所述待执行压力机,获取执行结果的步骤之后还包括:
根据所述压测环境配置,通过预设的定时监控任务对所述启动后的压力机进行资源监控,获取资源监控数据;
若所述资源监控数据超过预设的压测指标阈值,则基于预设的停止命令,停止执行所述启动后的压力机并进行资源释放;
若所述压力机停止执行失败,则通过预设的断电服务,断电所述压力机。
7.如权利要求2所述的压力测试方法,其特征在于,所述通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果的步骤包括:
将所述压测流程执行数据发送到所述调度服务中;
基于预设的打包指令,通过所述调度服务打包所述压测流程执行数据中的执行结果,生成压力测试报告;
根据所述压力测试报告,获取压力测试结果。
8.一种压力测试装置,其特征在于,所述装置包括:
配置信息获取模块,用于获取压测配置信息;
执行流程管理模块,用于根据所述压测配置信息,对预先创建的压力机进行压测流程执行管理,获取压测流程执行数据;
压测报告生成模块,用于通过预设的调度服务对所述压测流程执行数据进行压力测试结果采集,获取压力测试结果。
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的压力测试程序,所述压力测试程序配置为实现如权利要求1至7中任一项所述的压力测试方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有压力测试程序,所述压力测试程序被处理器执行时实现如权利要求1至7任一项所述的压力测试方法的步骤。
CN202311381875.6A 2023-10-23 2023-10-23 压力测试方法、装置、终端设备以及存储介质 Pending CN117453541A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311381875.6A CN117453541A (zh) 2023-10-23 2023-10-23 压力测试方法、装置、终端设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311381875.6A CN117453541A (zh) 2023-10-23 2023-10-23 压力测试方法、装置、终端设备以及存储介质

Publications (1)

Publication Number Publication Date
CN117453541A true CN117453541A (zh) 2024-01-26

Family

ID=89581005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311381875.6A Pending CN117453541A (zh) 2023-10-23 2023-10-23 压力测试方法、装置、终端设备以及存储介质

Country Status (1)

Country Link
CN (1) CN117453541A (zh)

Similar Documents

Publication Publication Date Title
CN110928774B (zh) 一种基于节点式的自动化测试系统
CN106844198B (zh) 一种分布式调度自动化测试平台及方法
US8737980B2 (en) End to end application automatic testing
EP3386150B1 (en) Terminal failure processing method, device and system
CN101150454B (zh) 自动交换光网络的测试方法
CN112559133A (zh) 一种基于原生容器技术的云边协同系统及云边协同方法
CN101502144A (zh) 无线通信网络中的元件管理系统
JP2008537858A (ja) ワイヤレス端末においてトラップを管理及び監視するためのシステム及び方法
WO2006105296A1 (en) Apparatus and methods for determining network access performance of a wireless device
CN102214140B (zh) 软件自动测试的方法及系统
CN107483297B (zh) 对嵌入式设备上所承载业务质量的主动监测系统及方法
CN112134754A (zh) 压力测试方法、装置、网络设备及存储介质
CN115080370B (zh) 软件并发能力评估方法及装置、存储介质及电子设备
CN111698121B (zh) 一种SNMP trap告警测试方法及相关装置
CN107463490B (zh) 一种应用于平台开发中的集群日志集中收集方法
CN111654411A (zh) 一种巡检方法及相关装置
CN105530658B (zh) 一种无线通讯模块的远程诊断方法、装置和系统
CN117453541A (zh) 压力测试方法、装置、终端设备以及存储介质
CN112925648A (zh) 业务策略的发布方法和装置
CN110620798A (zh) Ftp连接的控制方法、系统、设备和存储介质
CN111881093A (zh) 一种数据报送方法、装置及报送系统
CN113094266B (zh) 一种容器数据库的故障测试方法、平台及设备
WO2021136358A1 (zh) 网络设备管理方法、系统及网络设备
CN116938779A (zh) 自动化检测方法、单板、电子设备及存储介质
CN113553163A (zh) 一种基于调度器的Jenkins应用部署方法及装置

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