CN116545900A - 压力测试方法、装置、设备及存储介质 - Google Patents

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

Info

Publication number
CN116545900A
CN116545900A CN202310540090.2A CN202310540090A CN116545900A CN 116545900 A CN116545900 A CN 116545900A CN 202310540090 A CN202310540090 A CN 202310540090A CN 116545900 A CN116545900 A CN 116545900A
Authority
CN
China
Prior art keywords
pressure
target
engine
concurrency
compression
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
CN202310540090.2A
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202310540090.2A priority Critical patent/CN116545900A/zh
Publication of CN116545900A publication Critical patent/CN116545900A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开提供了一种压力测试方法、装置、设备及存储介质,涉及计算机技术领域,具体涉及云计算、智能测试等技术领域,可应用于网站测试、服务器测试等场景下。具体实现方案包括:接收用户设置的发压参数,发压参数包括并发数;根据并发数,从至少一个客户端部署的发压引擎中确定至少一个目标发压引擎;根据发压参数对目标发压引擎进行参数配置,并控制配置后的目标发压引擎对服务端进行压力测试。本公开能够简化测试过程,提高测试效率。

Description

压力测试方法、装置、设备及存储介质
技术领域
本公开涉及计算机技术领域,具体涉及云计算、智能测试等技术领域,可应用于网站测试、服务器测试等场景下,尤其涉及一种压力测试方法、装置、设备及存储介质。
背景技术
压力测试是通过向服务端施加“压力”,测试服务端在压力情况下的性能表现,考察服务端在当前软硬件环境下所能承受的最大负荷并帮助找出服务端瓶颈所在的一种技术手段。其中,服务端可以与客户端连接,为客户端提供服务。
目前,对服务端进行压力测试的方式可以包括:根据压力测试需求,使用压力测试工具分别在多个客户端上编写发压脚本,并分别通过编写好的发压脚本控制对应的客户端向服务端发送访问请求,以测试服务端能够承受的最大负荷。
但是,目前对服务端进行压力测试的方式,测试过程复杂,且测试效率低下。
发明内容
本公开提供了一种压力测试方法、装置、设备及存储介质,能够简化测试过程,提高测试效率。
根据本公开的第一方面,提供了一种压力测试方法,包括:
接收用户设置的发压参数,发压参数包括并发数;根据并发数,从至少一个客户端部署的发压引擎中确定至少一个目标发压引擎;根据发压参数对目标发压引擎进行参数配置,并控制配置后的目标发压引擎对服务端进行压力测试。
根据本公开的第二方面,提供了一种压力测试装置,该装置包括:获取模块和处理模块。
获取模块,用于接收用户设置的发压参数,发压参数包括并发数。
处理模块,用于根据并发数,从至少一个客户端部署的发压引擎中确定至少一个目标发压引擎;根据发压参数对目标发压引擎进行参数配置,并控制配置后的目标发压引擎对服务端进行压力测试。
根据本公开的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行根据第一方面的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现根据第一方面的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开实施例提供的压力测试方法的流程示意图;
图2为本公开实施例提供的压力测试方法的另一种流程示意图;
图3为本公开实施例提供的图1中S102的一种流程示意图;
图4为本公开实施例提供的图3中S302的一种流程示意图;
图5为本公开实施例提供的图1中S103的一种流程示意图;
图6为本公开实施例提供的压力测试方法的又一种流程示意图;
图7为本公开实施例提供的一种压力测试系统的示意图;
图8为本公开实施例提供的压力测试方法的又一种流程示意图;
图9为本公开实施例提供的压力测试装置的组成示意图;
图10为本公开实施例提供的电子设备的组成示意图。
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
应当理解,在本公开各实施例中,字符“/”一般表示前后关联对象是一种“或”的关系。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
压力测试是通过向服务端施加“压力”,测试服务端在压力情况下的性能表现,考察服务端在当前软硬件环境下所能承受的最大负荷并帮助找出服务端瓶颈所在的一种技术手段。其中,服务端可以与客户端连接,为客户端提供服务。
示例性地,一些实现方式中,客户端可以是手机、电脑等设备。服务端可以是云服务器,云服务器包括私有云、混合云、公有云、专有云。
云服务器的部分用户特别需要保证数据的安全性和私密性,例如金融行业就要求数据私有化。在私有化场景下,更需要对云服务器进行压力测试以确保云服务器在当前软硬件下的稳定。
目前,对服务端进行压力测试的方式可以包括:根据压力测试需求,使用压力测试工具分别在多个客户端上编写发压脚本,并分别通过编写好的发压脚本控制对应的客户端向服务端发送访问请求,以测试服务端能够承受的最大负荷。
其中,控制客户端向服务端发送访问请求后,可以根据服务端的响应参数,确定服务端能承受的最大负荷。例如,服务端的响应参数可以包括服务端的最大响应时间、最小响应时间、平均响应时间、访问正确率等。
但是,目前对服务端进行压力测试的方式,测试过程复杂,且测试效率低下。
示例性地,在私有化场景下,测试人员需要根据压力测试需求,直接使用压力测试工具,通过主控机器分别在每个客户端上编写发压脚本,完成对客户端的发压控制。
由于测试人员需要自行对发压脚本进行编写,且发压脚本需要设置的参数的数量众多,对测试人员而言,测试过程复杂,且对发压脚本的编写有较高的学习成本。并且由于发压脚本所需参数的数量众多,测试人员在编写发压脚本时也会消耗大量时间,导致测试效率低下。
在此背景技术下,本公开提供了一种压力测试方法,能够简化测试过程,提高测试效率。
本公开实施例提供的压力测试方法的执行主体可以是计算机或服务器,或者还可以是其他具有数据处理能力的电子设备;或者,该方法的执行主体也可以是上述电子设备中的处理器(例如中央处理器(central processing unit,CPU));再或者,该方法的执行主体还可以是上述电子设备中安装的能够实现该方法的功能的应用程序(application,APP);又或者,该方法的执行主体又可以是上述电子设备中具有该方法的功能的功能模块或单元等。在此对该方法的执行主体不作限制。
下面结合附图对该压力测试方法进行示例性说明。
图1为本公开实施例提供的压力测试方法的流程示意图。如图1所示,该方法可以包括:
S101、接收用户设置的发压参数,发压参数包括并发数。
示例性地,可以为用户提供一个人机交互界面,接收用户在人机交互界面上输入的发压参数。发压参数还可以包括待测试的服务端的网络地址、发压时长、访问请求相应的参数等压力测试所需的参数,此处不做限制。
S102、根据并发数,从至少一个客户端部署的发压引擎中确定至少一个目标发压引擎。
其中,每个客户端中均预先部署有一个或多个发压引擎。
示例性地,可以根据并发数以及发压引擎的并发能力确定目标发压引擎。
S103、根据发压参数对目标发压引擎进行参数配置,并控制配置后的目标发压引擎对服务端进行压力测试。
示例性地,可以将接收的发压参数发送给目标发压引擎,目标发压引擎对发压参数进行解析,得到发压脚本,目标发压引擎使用发压脚本对自身进行配置。完成配置后,控制目标发压引擎向需要压力测试的服务端发送访问请求。
本公开实施例通过根据接收的发压参数中的并发数,确定目标发压引擎,根据发压参数可以对目标发压引擎进行配置,实现对服务端的压力测试,无需测试人员进行发压脚本的编写,简化了测试过程,且提高了测试效率。
图2为本公开实施例提供的压力测试方法的另一种流程示意图。在上述S102之前,如图2所示,该方法还可以包括:
S201、获取初始发压引擎的镜像数据。
其中,初始发压引擎为未配置过的发压引擎,初始发压引擎的镜像数据可以包括初始发压引擎以及用于支持发压引擎运行的开发环境数据。
S202、根据镜像数据,在至少一个客户端上分别部署发压引擎。
示例性地,可以根据镜像数据中的初始发压引擎,将初始发压引擎部署至客户端上,一个客户端可以部署一个或多个发压引擎。
本公开实施例通过根据初始发压引擎的镜像数据,可以在客户端上部署发压引擎,进而可以利用发压引擎对服务端进行压力测试,提高了发压引擎的部署效率,进一步提高了测试效率。
图3为本公开实施例提供的图1中S102的一种流程示意图。如图1所示,上述S102,可以包括:
S301、从至少一个客户端部署的发压引擎中确定处于空闲状态的发压引擎,空闲状态为当前未进行发压的状态。
示例性地,可以根据监控程序对发压引擎的状态进行监控,将当前未进行发压的发压引擎作为处于空闲状态的发压引擎。
S302、根据并发数、以及每个处于空闲状态的发压引擎的最大并发能力,从处于空闲状态的发压引擎中确定至少一个目标发压引擎。
其中,发压引擎的最大并发能力可以为发压引擎能够同时输出的最大访问请求数。
示例性地,可以计算当n个处于空闲状态的发压引擎能够同时输出的最大访问请求数的和大于并发数时的n的值,确定该n个处于空闲状态的发压引擎为目标发压引擎。
本实施例通过确定空闲状态的发压引擎,并根据空闲状态的发压引擎的最大并发能力及接收的发压参数中的并发数,将处于空闲状态、且满足并发数的一个或多个发压引擎作为目标发压引擎,可以提高确定目标发压引擎的准确性。
例如,可以减少将处于非空闲状态的发压引擎作为目标发压引擎时导致的目标发压引擎不能使用的情况,减少确定目标发压引擎的错误率,进一步提高了测试效率。
图4为本公开实施例提供的图3中S302的一种流程示意图。如图3所示,上述S302,可以包括:
S401、根据每个处于空闲状态的发压引擎的最大并发能力,确定每个处于空闲状态的发压引擎的目标并发能力,目标并发能力小于最大并发能力。
其中,发压引擎的目标并发能力可以为小于发压引擎对应的最大访问请求数的任一目标访问请求数。
S402、根据并发数、以及每个处于空闲状态的发压引擎的目标并发能力,从处于空闲状态的发压引擎中确定至少一个目标发压引擎。
示例性地,可以计算当m个处于空闲状态的发压引擎能够同时输出的目标访问请求数的和大于并发数时的m的值,确定该m个处于空闲状态的发压引擎为目标发压引擎。
本实施例通过根据处于空闲状态的发压引擎的最大并发能力确定目标并发能力,根据处于空闲状态的发压引擎的目标并发能力及接收的发压参数中的并发数,将处于空闲状态、且满足并发数的一个或多个发压引擎作为目标发压引擎,可以为目标发压引擎保留一定的并发能力冗余,以保证目标发压引擎的稳定性。
一种可能的实施例中,在上述S302或S402之后,该方法还可以包括:
为至少一个目标发压引擎生成非空闲标识,非空闲标识用于指示目标发压引擎不处于空闲状态。
本实施例通过为至少一个目标发压引擎生成用于指示目标发压引擎不处于空闲状态的非空闲标识,可以保证目标发压引擎只被本次压力测试所使用,保证了压力测试的私密性。
图5为本公开实施例提供的图1中S103的一种流程示意图。如图3所示,上述S103,可以包括:
S501、向目标发压引擎发送启动发压指令,启动发压指令包括发压参数,且用于指示目标发压引擎根据发压参数进行参数配置。
示例性地,目标发压引擎接收到启动发压指令后,目标发压引擎可以对启动发压指令中的发压参数进行解析,自动生成发压脚本,并使用生成的发压脚本对自身进行配置。
S502、接收来自目标发压引擎的状态更新信息,状态更新信息用于指示目标发压引擎已完成参数配置。
示例性地,目标发压引擎可以在自身配置完成后,发送状态更新信息。
S503、在接收到所有的目标发压引擎的状态更新信息后,控制配置后的目标发压引擎对服务端进行压力测试。
示例性地,在接收到所有的目标发压引擎的状态更新信息后,可以向所有的目标发压引擎发送开始发压指令,开始发压指令用于指示目标发压引擎开始向服务端发送访问请求。
本实施例通过包含发压参数的启动发压指令指示目标发压引擎根据发压参数进行参数配置,接收来自目标发压引擎的状态更新信息,在接收到所有的目标发压引擎的状态更新信息后,控制配置后的目标发压引擎对服务端进行压力测试,可以使得所有目标发压引擎同时对服务端进行压力测试,提高了测试的准确性。
图6为本公开实施例提供的压力测试方法的又一种流程示意图。如图6所示,该方法还可以包括:
S601、获取更新后的并发数。
示例性地,并发数可以是以人为手动的方式进行更新,也可以是以某一更新规则的方式进行更新。
S602、根据更新后的并发数,对目标发压引擎重新进行参数配置。
示例性地,可以在更新后的并发数仍然小于所有目标发压引擎的最大并发能力之和时,根据更新后的并发数,对目标发压引擎重新进行参数配置。
或者,S603、根据更新后的并发数,对目标发压引擎进行更新后,重新进行参数配置。
示例性地,可以在更新后的并发数不小于所有目标发压引擎的最大并发能力之和时,根据更新后的并发数,重新确定目标发压引擎,并重新进行参数配置。
本公开实施例通过根据获取的更新后的并发数,对目标发压引擎重新进行参数配置或更新目标发压引擎,并重新进行参数配置,可以实现在一次压力测试过程中对发压引擎的发压速率进行调整,提高了测试的灵活性。其中,发压速率是指发压引擎在单位时间发出的访问请求的速度,与并发数正相关。
一种可能的实施例中,上述实施例中的获取更新后的并发数,可以包括:
接收用户设置的更新后的并发数。
本实施例接收到用户设置的更新后的并发数,可以使得目标发压引擎根据用户预期的并发数进行更新或重新配置,可以对发压引擎的发压速率进行调整,提高了测试的灵活性。
一种可能的实施例中,发压参数还包括并发数调整规则,并发数调整规则用于指示在目标时机将并发数调整为目标大小。
其中,并发数调整规则中的目标时机与目标大小一一对应,对目标时机与目标大小的取值均不做限制。例如,可以为第1秒对应的目标大小为A,第2秒对应的目标大小为B,也可以为第1秒对应的目标大小为A,第2秒对应的目标大小为2A。
上述实施例中的获取更新后的并发数,可以包括:
根据并发数调整规则,对并发数进行更新,得到更新后的并发数。
本实施例根据并发数调整规则,对并发数进行更新,可以实现自动对并发数进行更新或重新配置,进而自动对发压引擎的发压速率进行调整,提高了测试的灵活性。
其他一些示例中,并发数调整规则还可以是按照预设周期增大并发数,本公开并发数调整规则不作限制。
一种可能的实施例中,服务端部署有普罗米修斯(prometheus)监控服务,发压参数还包括:服务端的prometheus地址和IP地址,该方法还可以包括:
根据服务端的prometheus地址和IP地址,通过prometheus监控服务获取服务端的性能数据。
其中,prometheus是一款基于时序数据库的开源监控告警系统,适合对被监控组件进行监控。prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。
服务端的性能数据为表征服务端性能的数据,例如,服务端的内存占用率、CPU占用率等。
本实施例通过利用普罗米修斯prometheus监控服务,根据发压参数中服务端的prometheus地址和IP地址,获取服务端的性能数据,可以实现对服务端的性能数据的监控。
一种可能的实施例中,发压参数还包括:服务端的IP地址,该方法还可以包括:
根据服务端的IP地址,向服务端部署探针程序。
通过探针程序获取服务端的性能数据。
本实施例通过根据发压参数中服务端的IP地址,向服务端部署探针程序,通过探针程序获取服务端的性能数据,可以实现对服务端的性能数据的监控。
以上实施例介绍了本公开实施例提供的压力测试方法,下面结合图7和图8,通过一个具体的示例,对该压力测试方法进行更详细的说明。图7为本公开实施例提供的一种压力测试系统的示意图,图8为本公开实施例提供的压力测试方法的又一种流程示意图。该压力测试方法可以通过图7所示的压力测试系统实现。
如图7所示,压力测试系统700包括交互模块701、业务模块702、执行模块703、发压引擎集群704。
其中交互模块用于为用户提供交互界面。
业务模块包括:Redis单元,用于缓存和提供分布式锁;Mysql单元,用于存储场景、任务等信息;ElasticSearch单元,用于存储服务端的响应参数和性能数据;ETCD单元,用于存储执行节点锁信息和发送开始发压指令;报告生成器,用于生成压力测试报告;Prometheus单元,用于获取服务端的性能数据。
执行模块包括调度单元和分发单元,调度单元用于获取每个发压引擎的状态,分发单元用于确定目标发压引擎。
发压引擎集群包括至少一个预先部署好的发压引擎,用于向服务端发送访问请求以及获取服务端的响应数据。
如图8所示,该压力测试方法包括以下步骤1至步骤11:
步骤1,业务模块(CPTS)接收用户在交互模块提供的前端交互页面中设置的发压参数。
步骤2,业务模块根据发压参数触发一个分发任务,并发送给调度单元(Dispatcher)。
步骤3,调度单元获取发压引擎的状态,并将处于空闲状态的发压引擎的信息和分发任务发送给分发单元(Distributor)。
步骤4,分发单元根据分发任务和处于空闲状态的发压引擎的信息,确定目标发压引擎(Pressure),并通知CPTS为目标发压引擎生成非空闲标识,抢占目标发压引擎。
步骤5,分发模块向CPTS发送启动发压指令。
步骤6,CPTS将启动发压指令发送给调度单元。
步骤7,调度单元将启动发压指令发送给目标发压引擎。
步骤8,目标发压引擎收到启动发压任务的指令后,对自身进行配置,配置完成后向CPTS发送状态更新信息。
步骤9,在CPTS接收到所有目标发压引擎的状态更新信息后,CPTS发送开始发压指令,指示目标发压引擎开始向服务端发送访问请求。
步骤10,目标发压引擎获取服务端的响应数据,并回传至CPTS。
步骤11,CPTS对服务端的响应数据进行存储,并通过前端交互页面向用户展示。在所有目标发压引擎发压完毕后,CPTS生成压力测试报告,可供用户查阅。
通过步骤1至步骤11即可实现如图1、图6所示的实施例,通过步骤2至步骤4即可实现如图3、图4所示的实施例,通过步骤4即可实现前述的为至少一个目标发压引擎生成非空闲标识的实施例,通过步骤5至步骤9即可实现如图5所示的实施例。
上述主要从方法的角度对本公开实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术目标应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本公开能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术目标可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
在示例性实施例中,本公开实施例还提供一种压力测试装置,可以用于实现如前述实施例的压力测试方法。
图9为本公开实施例提供的压力测试装置的组成示意图。如图9所示,该装置可以包括:获取模块901和处理模块902。
获取模块901,用于接收用户设置的发压参数,发压参数包括并发数。
处理模块902,用于根据并发数,从至少一个客户端部署的发压引擎中确定至少一个目标发压引擎;根据发压参数对目标发压引擎进行参数配置,并控制配置后的目标发压引擎对服务端进行压力测试。
一种可能的实施方式中,获取模块901,还用于:
在根据并发数,从至少一个客户端部署的发压引擎中确定至少一个目标发压引擎之前,获取初始发压引擎的镜像数据;根据镜像数据,在至少一个客户端上分别部署发压引擎。
一种可能的实施方式中,处理模块902,具体用于:
从至少一个客户端部署的发压引擎中确定处于空闲状态的发压引擎,空闲状态为当前未进行发压的状态;根据并发数、以及每个处于空闲状态的发压引擎的最大并发能力,从处于空闲状态的发压引擎中确定至少一个目标发压引擎。
一种可能的实施方式中,处理模块902,具体用于:
根据每个处于空闲状态的发压引擎的最大并发能力,确定每个处于空闲状态的发压引擎的目标并发能力,目标并发能力小于最大并发能力;根据并发数、以及每个处于空闲状态的发压引擎的目标并发能力,从处于空闲状态的发压引擎中确定至少一个目标发压引擎。
一种可能的实施方式中,处理模块902,还用于:
在从处于空闲状态的发压引擎中确定至少一个目标发压引擎之后,为至少一个目标发压引擎生成非空闲标识,非空闲标识用于指示目标发压引擎不处于空闲状态。
一种可能的实施方式中,处理模块902,具体用于:
向目标发压引擎发送启动发压指令,启动发压指令包括发压参数,且用于指示目标发压引擎根据发压参数进行参数配置;接收来自目标发压引擎的状态更新信息,状态更新信息用于指示目标发压引擎已完成参数配置;在接收到所有的目标发压引擎的状态更新信息后,控制配置后的目标发压引擎对服务端进行压力测试。
一种可能的实施方式中,处理模块902,还用于:
获取更新后的并发数;根据更新后的并发数,对目标发压引擎重新进行参数配置;或者,根据更新后的并发数,对目标发压引擎进行更新后,重新进行参数配置。
一种可能的实施方式中,处理模块902,具体用于:
接收用户设置的更新后的并发数。
一种可能的实施方式中,发压参数还包括并发数调整规则,并发数调整规则用于指示在目标时机将并发数调整为目标大小。
处理模块902,具体用于:
根据并发数调整规则,对并发数进行更新,得到更新后的并发数。
一种可能的实施方式中,服务端部署有普罗米修斯prometheus监控服务,发压参数还包括:服务端的prometheus地址和IP地址。
处理模块902,还用于:
根据服务端的prometheus地址和IP地址,通过prometheus监控服务获取服务端的性能数据。
一种可能的实施方式中,发压参数还包括:服务端的IP地址。
处理模块902,还用于:
根据服务端的IP地址,向服务端部署探针程序;通过探针程序获取服务端的性能数据。
需要说明的是,图9中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,还可以将两个或两个以上的功能集成在一个处理模块902中。本公开实施例对此不作限制。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
示例性实施例中,电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如以上实施例所述的方法。该电子设备可以是上述计算机或服务器。
示例性实施例中,可读存储介质可以是存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据以上实施例所述的方法。
示例性实施例中,计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现根据以上实施例所述的方法。
图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,电子设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储电子设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
电子设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许电子设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如压力测试方法。例如,在一些实施例中,压力测试方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到电子设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的压力测试方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行压力测试方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (20)

1.一种压力测试方法,所述方法包括:
接收用户设置的发压参数,所述发压参数包括并发数;
根据所述并发数,从至少一个客户端部署的发压引擎中确定至少一个目标发压引擎;
根据所述发压参数对目标发压引擎进行参数配置,并控制配置后的所述目标发压引擎对服务端进行压力测试。
2.根据权利要求1所述的方法,所述根据所述并发数,从至少一个客户端部署的发压引擎中确定至少一个目标发压引擎之前,所述方法还包括:
获取初始发压引擎的镜像数据;
根据所述镜像数据,在所述至少一个客户端上分别部署发压引擎。
3.根据权利要求1或2所述的方法,所述根据所述并发数,从至少一个客户端部署的发压引擎中确定至少一个目标发压引擎,包括:
从至少一个客户端部署的发压引擎中确定处于空闲状态的发压引擎,所述空闲状态为当前未进行发压的状态;
根据所述并发数、以及每个所述处于空闲状态的发压引擎的最大并发能力,从所述处于空闲状态的发压引擎中确定至少一个目标发压引擎。
4.根据权利要求3所述的方法,所述根据所述并发数、以及每个所述处于空闲状态的发压引擎的最大并发能力,从所述处于空闲状态的发压引擎中确定至少一个目标发压引擎,包括:
根据每个所述处于空闲状态的发压引擎的最大并发能力,确定每个所述处于空闲状态的发压引擎的目标并发能力,所述目标并发能力小于所述最大并发能力;
根据所述并发数、以及每个所述处于空闲状态的发压引擎的目标并发能力,从所述处于空闲状态的发压引擎中确定至少一个目标发压引擎。
5.根据权利要求3或4所述的方法,所述从所述处于空闲状态的发压引擎中确定至少一个目标发压引擎之后,所述方法还包括:
为所述至少一个目标发压引擎生成非空闲标识,所述非空闲标识用于指示所述目标发压引擎不处于空闲状态。
6.根据权利要求1-5任一项所述的方法,所述根据所述发压参数对目标发压引擎进行参数配置,并控制配置后的所述目标发压引擎对服务端进行压力测试,包括:
向所述目标发压引擎发送启动发压指令,所述启动发压指令包括所述发压参数,且用于指示所述目标发压引擎根据所述发压参数进行参数配置;
接收来自所述目标发压引擎的状态更新信息,所述状态更新信息用于指示所述目标发压引擎已完成参数配置;
在接收到所有的所述目标发压引擎的状态更新信息后,控制配置后的所述目标发压引擎对服务端进行压力测试。
7.根据权利要求1-6任一项所述的方法,所述方法还包括:
获取更新后的并发数;
根据所述更新后的并发数,对所述目标发压引擎重新进行参数配置;
或者,根据所述更新后的并发数,对所述目标发压引擎进行更新后,重新进行参数配置。
8.根据权利要求7所述的方法,所述获取更新后的并发数,包括:
接收用户设置的更新后的并发数。
9.根据权利要求7所述的方法,所述发压参数还包括并发数调整规则,所述并发数调整规则用于指示在目标时机将所述并发数调整为目标大小;
所述获取更新后的并发数,包括:
根据所述并发数调整规则,对所述并发数进行更新,得到更新后的并发数。
10.根据权利要求1-9任一项所述的方法,所述服务端部署有普罗米修斯prometheus监控服务,所述发压参数还包括:所述服务端的prometheus地址和IP地址,所述方法还包括:
根据所述服务端的prometheus地址和IP地址,通过所述prometheus监控服务获取所述服务端的性能数据。
11.根据权利要求1-9任一项所述的方法,所述发压参数还包括:所述服务端的IP地址,所述方法还包括:
根据所述服务端的IP地址,向所述服务端部署探针程序;
通过所述探针程序获取所述服务端的性能数据。
12.一种压力测试装置,所述装置包括:
获取模块,用于接收用户设置的发压参数,所述发压参数包括并发数;
处理模块,用于根据所述并发数,从至少一个客户端部署的发压引擎中确定至少一个目标发压引擎;
根据所述发压参数对目标发压引擎进行参数配置,并控制配置后的所述目标发压引擎对服务端进行压力测试。
13.根据权利要求12所述的装置,所述获取模块,还用于:
在所述根据所述并发数,从至少一个客户端部署的发压引擎中确定至少一个目标发压引擎之前,获取初始发压引擎的镜像数据;
根据所述镜像数据,在所述至少一个客户端上分别部署发压引擎。
14.根据权利要求12或13所述的装置,所述处理模块,具体用于:
从至少一个客户端部署的发压引擎中确定处于空闲状态的发压引擎,所述空闲状态为当前未进行发压的状态;
根据所述并发数、以及每个所述处于空闲状态的发压引擎的最大并发能力,从所述处于空闲状态的发压引擎中确定至少一个目标发压引擎。
15.根据权利要求14所述的装置,所述处理模块,还用于:
在所述从所述处于空闲状态的发压引擎中确定至少一个目标发压引擎之后,为所述至少一个目标发压引擎生成非空闲标识,所述非空闲标识用于指示所述目标发压引擎不处于空闲状态。
16.根据权利要求12-15任一项所述的装置,所述处理模块,具体用于:
向所述目标发压引擎发送启动发压指令,所述启动发压指令包括所述发压参数,且用于指示所述目标发压引擎根据所述发压参数进行参数配置;
接收来自所述目标发压引擎的状态更新信息,所述状态更新信息用于指示所述目标发压引擎已完成参数配置;
在接收到所有的所述目标发压引擎的状态更新信息后,控制配置后的所述目标发压引擎对服务端进行压力测试。
17.根据权利要求12-16任一项所述的装置,所述处理模块,还用于:
获取更新后的并发数;
根据所述更新后的并发数,对所述目标发压引擎重新进行参数配置;
或者,根据所述更新后的并发数,对所述目标发压引擎进行更新后,重新进行参数配置。
18.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11任一项所述的方法。
19.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据权利要求1-11任一项所述的方法。
20.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-11任一项所述的方法。
CN202310540090.2A 2023-05-12 2023-05-12 压力测试方法、装置、设备及存储介质 Pending CN116545900A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310540090.2A CN116545900A (zh) 2023-05-12 2023-05-12 压力测试方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310540090.2A CN116545900A (zh) 2023-05-12 2023-05-12 压力测试方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116545900A true CN116545900A (zh) 2023-08-04

Family

ID=87455693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310540090.2A Pending CN116545900A (zh) 2023-05-12 2023-05-12 压力测试方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116545900A (zh)

Similar Documents

Publication Publication Date Title
CN107733708B (zh) 设备参数配置方法、装置、计算机设备和存储介质
CN107800565B (zh) 巡检方法、装置、系统、计算机设备和存储介质
CN113742031B (zh) 节点状态信息获取方法、装置、电子设备及可读存储介质
CN114157701B (zh) 一种任务测试方法、装置、设备以及存储介质
CN113704063B (zh) 一种云手机的性能监控方法、装置、设备及存储介质
CN112925652B (zh) 应用资源部署方法、装置、电子设备和介质
CN103516851B (zh) 一种无线产品云测试平台系统
CN113220420A (zh) 服务监控方法、装置、设备、存储介质及计算机程序产品
CN112445575A (zh) 多集群资源调度方法、装置及系统
KR20200029574A (ko) 시뮬레이터, 시뮬레이션 장치, 및 시뮬레이션 방법
CN113377665A (zh) 基于容器技术的测试方法、装置、电子设备及存储介质
CN114911598A (zh) 任务调度方法、装置、设备以及存储介质
CN113885794B (zh) 基于多云存储的数据访问方法、装置、计算机设备及介质
CN114168297A (zh) 一种归集任务调度方法、装置、设备及介质
CN113641388A (zh) 云手机更新方法、相关装置及计算机程序产品
CN114116487B (zh) 压力测试方法、装置、电子设备及存储介质
CN115658218B (zh) 边缘设备接入云端的方法、装置、设备以及存储介质
CN116545900A (zh) 压力测试方法、装置、设备及存储介质
CN109962914A (zh) 一种防火墙配置方法及装置
CN113326192B (zh) 用于移动端的应用测试方法、装置、设备及存储介质
CN114553548A (zh) 通信方法、装置、设备及存储介质
CN114389969A (zh) 客户端的测试方法、装置、电子设备和存储介质
CN113535020A (zh) 用于生成应用图标的方法、装置、设备、介质和产品
CN113656268B (zh) 业务服务的性能测试方法、装置、电子设备和存储介质
CN110768855A (zh) 链路化性能测试的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication