CN109684228B - 一种性能测试方法、装置、系统和存储介质 - Google Patents
一种性能测试方法、装置、系统和存储介质 Download PDFInfo
- Publication number
- CN109684228B CN109684228B CN201910012994.1A CN201910012994A CN109684228B CN 109684228 B CN109684228 B CN 109684228B CN 201910012994 A CN201910012994 A CN 201910012994A CN 109684228 B CN109684228 B CN 109684228B
- Authority
- CN
- China
- Prior art keywords
- thread
- message
- current
- pressure
- control message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 101
- 238000011056 performance test Methods 0.000 title claims abstract description 12
- 238000012360 testing method Methods 0.000 claims abstract description 170
- 238000009530 blood pressure measurement Methods 0.000 claims abstract description 123
- 230000008569 process Effects 0.000 claims abstract description 78
- 230000009467 reduction Effects 0.000 claims description 66
- 238000003825 pressing Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000528 statistical test Methods 0.000 description 1
- 238000009662 stress testing Methods 0.000 description 1
- 238000006467 substitution reaction 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/3688—Test management for test execution, e.g. scheduling of test suites
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)
- Test And Diagnosis Of Digital Computers (AREA)
- Investigating Strength Of Materials By Application Of Mechanical Stress (AREA)
Abstract
本发明实施例公开了一种性能测试方法、装置、系统和存储介质,该方法包括:施压机采集当前测试的目标任务对应的当前压测数据,并将当前压测数据发送至控制端;施压机接收控制端发送的线程控制消息,并根据线程控制消息调节当前加载线程数;施压机根据调节后的加载线程数对目标任务进行压力测试。通过本发明实施例的技术方案,可以在压测过程中动态调节施压机加载的线程数,从而提高施压机的资源利用率,同时避免出现资源过载的情况。
Description
技术领域
本发明实施例涉及测试技术领域,尤其涉及一种性能测试方法、装置、系统和存储介质。
背景技术
性能测试是通过自动化的测试工具模拟多种正常以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试确定在各种工作负载下系统的性能,目的是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是用于获得系统能够提供的最大服务级别的测试。
在开源压测平台中,如Ngrinder、Jmeter等,压测模型通常是一个开环压测过程,即控制器根据选取的施压机数量,将用户设置的并发线程数平均分配至每台施压机上,并在压力测试过程中,无法调节每台施压机上加载的线程数直至压测任务停止或者结束。
可见,在压力测试过程中,每台施压机上加载的线程数是固定不变的。然而,由于每台施压机所具有的资源可能不同,使得每台施压机上可加载的最大线程数也可能不同。若施压机加载的线程数过少,则无法充分利用施压机资源,导致施压机资源利用率过低;若施压机加载的线程数过多,则会使得施压机资源过载,无法达到压力设定值,从而导致测试结果不准确,统计的测试数据也不具备参考意义。
发明内容
本发明实施例提供了一种性能测试方法、装置、系统和存储介质,以在压测过程中动态调节施压机加载的线程数,从而提高施压机的资源利用率,同时避免出现资源过载的情况。
第一方面,本发明实施例提供了一种性能测试方法,包括:
施压机采集当前测试的目标任务对应的当前压测数据,并将所述当前压测数据发送至控制端;
所述施压机接收所述控制端发送的线程控制消息,并根据所述线程控制消息调节当前加载线程数;
所述施压机根据调节后的加载线程数对所述目标任务进行压力测试。
第二方面,本发明实施例还提供了一种性能测试方法,包括:
控制端接收施压机发送的当前测试的目标任务对应的当前压测数据;
所述控制端根据所述当前压测数据确定线程控制消息,并将所述线程控制消息发送至所述施压机,以使所述施压机根据所述线程控制消息调节当前加载线程数,并根据调节后的加载线程数对所述目标任务进行压力测试。
第三方面,本发明实施例还提供了一种性能测试装置,设置于施压机,所述装置包括:
当前压测数据发送模块,用于采集当前测试的目标任务对应的当前压测数据,并将所述当前压测数据发送至控制端;
当前加载线程数调节模块,用于接收所述控制端发送的线程控制消息,并根据所述线程控制消息调节当前加载线程数;
压力测试模块,用于根据调节后的加载线程数对所述目标任务进行压力测试。
第四方面,本发明实施例还提供了一种性能测试装置,设置于控制端,所述装置包括:
当前压测数据接收模块,用于接收施压机发送的当前测试的目标任务对应的当前压测数据;
线程控制消息发送模块,用于根据所述当前压测数据确定线程控制消息,并将所述线程控制消息发送至所述施压机,以使所述施压机根据所述线程控制消息调节当前加载线程数,并根据调节后的加载线程数对所述目标任务进行压力测试。
第五方面,本发明实施例还提供了一种性能测试系统,所述系统包括控制器和至少一个施压机;其中,
所述施压机用于实现如第一方面提供的性能测试方法;
所述控制器用于实现如第二方面提供的性能测试方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的性能测试方法。
本发明实施例通过在测试目标任务的施压机上实时采集当前压测数据,并将当前压测数据发送至控制端,控制端根据当前压测数据确定线程控制消息,并将线程控制消息发送至施压机,施压机可以根据线程控制消息在压力测试过程中实时动态调节当前加载线程数,以便可以利用更加合适的加载线程数对目标任务进行压力测试,从而提高了施压机的资源利用率,同时也避免了出现资源过载的情况,提高了测试结果的准确性。
附图说明
图1是本发明实施例一提供的一种性能测试方法的流程图;
图2是本发明实施例二提供的一种性能测试方法的流程图;
图3是本发明实施例三提供的一种性能测试方法的流程图;
图4是本发明实施例四提供的一种性能测试装置的结构示意图;
图5是本发明实施例五提供的一种性能测试装置的结构示意图;
图6是本发明实施例六提供的一种性能测试系统的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种性能测试方法的流程图,本实施例可适用于利用施压机对任务进行压力测试的情况。该方法可以由性能测试装置来执行,该装置可以由软件和/或硬件的方式来实现,集成于用于压力测试的施压机中。该方法具体包括以下步骤:
S110、施压机采集当前测试的目标任务对应的当前压测数据,并将当前压测数据发送至控制端。
其中,施压机可以是指在性能测试系统中可以产生压测流量的机器,其可以是虚拟机,也可以是物理机,比如服务器、电脑和手机等。本实施例中的施压机可以指与目标任务关联的任一关联施压机,其中关联施压机是指正在执行目标任务的施压机。控制端可以是指用于对施压机进行压测控制管理的控制设备。目标任务可以是指施压机当前正在测试的压测任务。示例性地,当控制器将目标任务对应的并发线程数分配至指定的一个或多个施压机上,此时可以将指定的每个施压机确定为一个与目标任务关联的关联施压机。
本实施例中的当前压测数据可以是指施压机在压力测试过程中获得的测试数据。本实施例中的当前压测数据可以包括但不限于当前资源消耗信息、当前加载线程数、硬件配置信息和性能指标信息,其中,当前资源消耗信息可以包括但不限于CPU(CentralProcessing Unit,中央处理器)使用率、内存使用率和平均负载信息。硬件配置信息可以包括但不限于CPU核心数、主频、内存大小和硬盘存取速度。性能指标信息可以通过对请求响应数据进行统计获得,其可以包括平均响应时间、执行成功次数和执行失败次数等。
具体地,本实施例中的施压机可以基于预设采集频率,通过系统信息收集和报告Sigar接口采集当前资源消耗信息、当前加载线程数和硬件配置信息等。示例性地,预设采集频率可以是每隔200ms采集一次。Sigar是Hyperic HQ主要的数据收集组件,可兼容多数平台,例如windows系列平台、linux系列平台以及AIX系列平台等,可以用于收集施压机的压测信息。Sigar接口是一个用来收集施压机压测信息的极为方便使用的接口。本实施例还可以在施压机的施压进程中异步开启一个用于根据请求响应数据统计施压机的性能指标信息的施压子任务,以便快速获得施压机的性能指标信息。本实施例可以预先建立施压机与控制端之间的长连接,以将施压机采集到的当前压测数据发送至控制端中。
S120、施压机接收控制端发送的线程控制消息,并根据线程控制消息调节当前加载线程数。
其中,线程控制消息可以是指由控制端发送的,用于控制施压机加载的线程数的消息。当前加载线程数可以是指施压机当前时刻用于执行目标任务所加载的线程数。示例性地,当前加载线程数可以是指施压机中当前时刻开启的施压进程所加载的线程数。
具体地,控制端可以根据施压机发送的当前压测数据来了解该施压机的资源使用情况,并根据资源使用情况对该施压机进行调节,生成相应的线程控制消息并发送至施压机中,施压机根据控制端发送的线程控制消息可以动态调节当前加载线程数,从而根据压测过程中施压机资源的变化可以实时控制调整施压机的线程容量,解决了现有开源压测平台中压测过程开环化所存在的无法动态调节线程数的问题。示例性地,若施压机加载的线程数过少,则根据线程控制消息增加线程数,从而可以提高施压机的资源利用率;若施压机加载的线程数过多,则根据线程控制消息减少线程数,从而可以避免出现施压机资源过载的情况,保证测试结果的准确性。
S130、施压机根据调节后的加载线程数对目标任务进行压力测试。
具体地,施压机在根据线程控制消息对当前加载线程数进行调节后,可以通过利用调节后的加载线程数的线程对目标任务进行压力测试,即此时的当前加载线程数为根据线程控制消息调节后的加载线程数,从而可以提高施压机的资源利用率,同时也避免出现资源过载的情况,提高测试结果的准确性。
需要注意的是,若多个施压机同时执行同一目标任务,此时的多个施压机组成一个施压机集群,则每个施压机通过执行步骤S110-S130的操作,使得控制器可以根据施压机集群的资源情况控制每个施压机中的线程容量,从而提高每个施压机的资源利用率,并且避免每个施压机出现过载的情况。
本实施例的技术方案,通过在测试目标任务的施压机上实时采集当前压测数据,并将当前压测数据发送至控制端,控制端根据当前压测数据确定线程控制消息,并将线程控制消息发送至施压机,施压机可以根据线程控制消息在压力测试过程中实时动态调节当前加载线程数,以便可以利用更加合适的加载线程数对目标任务进行压力测试,从而提高了施压机的资源利用率,同时也避免了出现资源过载的情况,提高了测试结果的准确性。
在上述技术方案的基础上,在S110之前还可以包括:施压机将施压进程与当前可用的网络端口进行绑定,并通过守护进程,将绑定的网络端口号发送至控制端,以建立施压机与控制端的连接。
具体地,施压机通过在控制器的控制下可以开启至少一个施压进程对目标任务进行压力测试,每个施压进程包括的施压线程数由控制端进行控制。本实施例中施压机可以将开启的每个施压进程与当前可用的一个网络端口进行绑定,并通过施压机中的守护进程,将施压进程绑定的网络端口号发送至控制端,从而可以建立施压机中的每个施压进程与控制端的连接,进而可以将通过执行施压进程所获得的当前压测数据发送至控制端,并通过绑定的网络端口也可以接收控制端发送的线程控制消息,以便对施压机中的施压进程所包含的施压线程数进行动态调节,使得施压机的线程容量可以实时受控制端的控制,解决了现有开源压测平台中压测过程开环化所存在的无法动态调节线程数的问题。
在上述技术方案的基础上,S120中的“根据线程控制消息调节当前加载线程数”,可以包括:若线程控制消息为线程扩容消息,则根据线程扩容消息确定线程增加数量,并创建线程增加数量的线程;若线程控制消息为线程缩容消息,则根据线程缩容消息确定线程减少数量,并对线程减少数量的当前加载线程设置线程退出标识。
其中,线程控制消息可以包括但不限于线程扩容消息和线程缩容消息,其中线程扩容消息是指用于增大施压机线程容量的消息,其可以包括线程增加数量;线程缩容消息是指用于减小施压机线程容量的消息,其可以包括线程减少数量。
具体地,若控制端发送的线程控制消息为线程扩容消息,则对线程扩容消息进行解析并确定线程扩容消息中的线程增加数量,从而可以创建新的该线程增加数量的线程。需要注意的是,在对线程容量进行扩容时,本实施例是实时创建线程,并将创建的线程重新注入线程容器中,并不是采用线程池技术,这是因为本实施例中的线程数是动态变化的,无需预先创建指定线程数的线程池,从而可以避免消耗过多的系统资源。若控制端发送的线程控制消息为线程缩容消息,则对线程缩容消息进行解析并确定线程缩容消息中的线程减少数量,从而可以在当前加载的所有线程中选取该线程减少数量的线程,并对选取的每个线程设置一个线程退出标识,以将该线程从线程容器中删除。通过对线程设置线程退出标识可以平滑退出线程,避免在线程执行脚本中某个事务时,因暴力终止线程而导致破坏事务的完整性。
在上述技术方案的基础上,S120中的“根据线程控制消息调节当前加载线程数”,还包括:若线程控制消息为测试结束消息,则对当前加载的线程对应的施压进程设置进程结束标识。
其中,测试结束消息可以是控制器发送的,用于表征目标任务测试完成的消息。具体地,本实施例中的线程控制消息还可以包括测试结束消息,当施压机接收到控制器发送的测试结束消息,则表明已经完成对目标任务的压力测试,此时可以确定当前加载的线程所对应的施压进程,并对该施压进程设置进程结束标识,以通过退出施压进程的方式退出所有的加载线程,使得操作更加便捷。
实施例二
图2为本发明实施例二提供的一种性能测试方法的流程图,本实施例在上述实施例的基础上,对“根据线程控制消息调节当前加载线程数”进行了进一步优化。在此基础上,还可以进一步对“施压机根据调节后的加载线程数对目标任务进行压力测试”进行优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图2,本实施例提供的性能测试方法具体包括以下步骤:
S210、施压机采集当前测试的目标任务对应的当前压测数据,并将当前压测数据发送至控制端。
S220、施压机接收控制端发送的线程控制消息。
S230、施压机在线程控制消息为线程容量消息时,根据线程容量消息确定目标线程数,并将目标线程数与当前加载线程数进行比较,确定线程调节方式;若线程调节方式为扩容方式,则进入步骤S240;若线程调节方式为缩容方式,则进入步骤S250。
其中,本实施例中的线程控制消息可以包括线程容量消息。线程容量消息可以是指由控制端发送的,用于表征施压机所需加载线程数的消息,其可以包括目标线程数。目标线程数可以是由控制端根据施压机的当前压测数据确定的该施压机所需加载的线程数。线程调节方式可以包括扩容方式和缩容方式,其中,扩容方式是指用于增加施压机线程容量的方式,缩容方式是指用于减小施压机线程容量的方式。
具体地,控制端在根据施压机发送的当前压测数据,确定需要调节施压机线程容量时,可以根据当前压测数据确定施压机应加载的目标线程数,并根据目标线程数生成线程容量消息,将线程容量消息发送至施压机中。施压机接收的线程控制消息为线程容量消息时,表明需要调节施压机当前加载线程数,此时可以对线程容量消息进行解析确定线程容量消息中的目标线程数。通过比较当前加载线程数与目标线程数之间的大小关系,确定施压机当前的线程调节方式。若当前加载线程数小于目标线程数,则表明需要增大施压机的线程容量,以提高施压机的资源利用率,此时可以确定线程调节方式为扩容方式;若当前加载线程数大于目标线程数,则表明需要减小施压机的线程容量,以避免施压机出现资源过载的情况,此时可以确定线程调节方式为缩容方式。需要说明的是,若当前加载线程数等于目标线程数,则无需调节施压机的线程容量,此时可以直接通过return方式返回等待接收控制器后续发送的线程容量消息。当线程调节方式为扩容方式时,执行步骤S240的操作;当线程调节方式为缩容方式时,执行步骤S250的操作。
需要注意的是,本实施例中控制端发送的线程控制消息为线程容量消息,即仅包括目标线程数的消息,施压机在接收到线程容量消息后由施压机自身根据目标线程数确定线程调节方式为扩容方式还是缩容方式,而不是控制器直接发送线程扩容消息或线程缩容消息,这样设置的好处在于:若存在网络抖动,使得控制器发送的线程扩容消息或线程缩容消息误发多次,则会造成多次调节施压机线程容量,导致施压机的当前加载线程数并不等于目标线程数,从而无法准确地控制施压机加载线程数。而若控制器只向施压机发送包含目标线程数的线程容量消息,由施压机自身确定扩容还是缩容,则即使控制端发送多次线程容量消息,则施压机在判断当前加载线程数等于目标线程数时,便不会继续调节当前加载线程数,使得调节后的施压机当前加载线程数始终等于目标线程数,从而提高了控制器控制的准确性,以及性能测试的准确性。
S240、确定线程增加数量,并创建线程增加数量的线程,并进入步骤S260。
具体地,在线程调节方式为扩容方式时,可以将目标线程数减去当前加载线程数得到的差值确定为线程增加数量,并通过新创该线程增加数量的线程,以增加当前加载线程数,使得增加后的当前加载线程数等于目标线程数,从而提高施压机的资源利用率。
S250、确定线程减少数量,并对线程减少数量的当前加载线程设置线程退出标识,并进入步骤S260。
具体地,在线程调节方式为缩容方式时,可以将当前加载线程数减去目标线程数得到的差值确定为线程减少数量。通过在当前加载的所有线程中随机选取该线程减少数量的线程,对选取的每个线程设置一个线程退出标识,以平滑退出该线程,减少当前加载线程数,使得减少后的当前加载线程数等于目标线程数,从而避免施压机出现资源过载的情况。
示例性地,步骤S230-S250的功能可以通过线程更新函数updatePressure实现:
其中,目标线程数targetThreads可以通过调用控制器信息consoleMessage中的线程获取函数getThreads()获得。当前加载线程数currentThreads可以根据线程容器的大小确定。当currentThreads小于targetThreads时,即需要容量扩充时,可以通过将新建的线程thread添加至threadList中的方式,增加当前加载线程数至目标线程数。当currentThreads大于targetThreads时,即需要容量缩小时,可以通过threadList.get(0),获得线程容器中的第一个线程thread,并对该线程thread设置一个线程退出标识,从而将该线程从threadList中删除,使得当前加载线程数减小至目标线程数。
S260、施压机在执行调节后的加载线程数中的每个线程时,通过调用脚本初始化函数,对目标任务的压测脚本进行初始化。
其中,脚本初始化函数是预先设置的,用于对压测脚本进行初始化的函数。
具体地,在对施压机的加载线程数进行调节后,此时施压机的当前加载线程数等于目标线程数。施压机中的每个线程是并发执行的,每个线程可以根据目标任务的压测脚本进行并发压力测试。在施压机执行每个线程时,可以通过调用预先设置的脚本初始化函数,对目标任务的压测脚本进行初始化,以进行初始化配置,日志配置,设置进程上下文等。
S270、检测当前执行的线程是否存在线程退出标识或者进程结束标识;若是,则进入步骤S280;若否,则进入步骤S290。
其中,线程退出标识可以是指用于退出当前执行的线程的标识。进程结束标识可以是指用于退出当前执行的线程所对应的施压进程的标识。
需要说明的是,当施压机接收到控制器发送的线程控制消息为测试结束消息,则表明已经完成对目标任务的压力测试,此时可以对当前加载的线程所对应的施压进程设置一个进程结束标识,以通过退出施压进程的方式退出所有的加载线程,使得操作更加便捷。
具体地,通过检测当前执行的线程是否存在线程退出标识或者进程结束标识,来调节当前加载的线程数,以及确定测试是否完成。
S280、调用脚本退出函数,以使当前执行的线程退出。
其中,脚本退出函数可以是预先设置的,用于从线程容器中删除线程的函数。
具体地,在当前执行的线程存在线程退出标识或者进程结束标识时,表明需要退出该线程,此时可以通过在执行该线程之前,调用脚本退出函数的方式,将当前执行的线程平滑退出,从而可以避免若在执行脚本过程中退出线程而导致破坏事务完整性的情况。通过退出当前执行的线程,从而将当前执行的线程从线程容器中删除,以便减小施压机当前加载的线程数。若当前执行的线程存在进程结束标识,则可以通过将施压进程对应的每个线程调用脚本退出函数,以退出该施压进程对应的所有线程,从而终止该施压进程,结束当前性能测试。
S290、调用初始化后的压测脚本对目标任务进行压力测试,并返回步骤S270的操作。
具体地,在当前执行的线程不存在线程退出标识或者进程结束标识时,表明可以继续执行该线程,此时可以通过调用初始化后的压测脚本对目标任务进行并发压力测试,并在压测脚本运行结束后,返回步骤S270的操作,继续检测当前执行的线程是否存在线程退出标识或者进程结束标识,以便循环调用脚本,进行并发压力测试。
本实施例的技术方案,控制端将包含目标线程数的线程容量消息发送至施压机,施压机根据目标线程数实时确定当前的线程调节方式,并根据该线程调节方式调节当前加载的线程数,从而可以保证调节后的当前加载线程数始终等于目标线程数,从而提高了控制器控制的准确性,以及性能测试的准确性。而且在执行每个线程时,通过循环检测是否存在线程退出标识或者进程结束标识的方式平滑退出线程,提高了测试性能。
实施例三
图3为本发明实施例三提供的一种性能测试方法的流程图,本实施例可适用于利用控制端对任务进行压力测试的情况。该方法可以由性能测试装置来执行,该装置可以由软件和/或硬件的方式来实现,集成于用于对施压机进行压测管理的控制端中,比如服务器。该方法具体包括以下步骤:
S310、控制端接收施压机发送的当前测试的目标任务对应的当前压测数据;
其中,控制端可以是指用于对施压机进行压测控制管理的控制设备。本实施例中的施压机可以指与目标任务关联的任一关联施压机,其中关联施压机是指正在执行目标任务的施压机。目标任务可以是指施压机当前正在测试的压测任务。本实施例中的当前压测数据可以是指施压机在压力测试过程中获得的测试数据。本实施例中的当前压测数据可以包括但不限于当前资源消耗信息、当前加载线程数、硬件配置信息和性能指标信息,其中,当前资源消耗信息可以包括但不限于CPU(Central Processing Unit,中央处理器)使用率、内存使用率和平均负载信息。硬件配置信息可以包括但不限于CPU核心数、主频、内存大小和硬盘存取速度。性能指标信息可以通过对请求响应数据进行统计获得,其可以包括平均响应时间、执行成功次数和执行失败次数等。本实施例中的控制端可以根据采集的当前压测数据进行汇总,以便生成测试报告。
具体地,与目标任务关联的任一施压机在压力测试过程中获得当前压测数据后,将该当前压测数据发送至控制端。控制端可以通过与施压机预先建立的长连接,来接收施压机发送的当前压测数据。示例性地,控制端可以通过施压机中施压进程绑定的网络端口号,接收施压机发送的当前压测数据。
S320、控制端根据当前压测数据确定线程控制消息,并将线程控制消息发送至施压机,以使施压机根据线程控制消息调节当前加载线程数,并根据调节后的加载线程数对目标任务进行压力测试。
其中,线程控制消息可以是指在控制端中生成的,用于控制施压机加载的线程数的消息。当前加载线程数可以是指施压机当前时刻用于执行目标任务所加载的线程数。示例性地,当前加载线程数可以是指施压机中当前时刻开启的施压进程所加载的线程数。
具体地,控制端可以根据施压机发送的当前压测数据来了解该施压机的资源使用情况,并根据资源使用情况对该施压机进行调节,生成相应的线程控制消息并发送至施压机中,使得施压机根据该线程控制消息可以动态调节当前加载线程数,从而控制端可以根据压测过程中施压机资源的变化实时控制调整施压机的线程容量,解决了现有开源压测平台中压测过程开环化所存在的无法动态调节线程数的问题。通过利用调节后的加载线程数的线程对目标任务进行压力测试,可以提高施压机的资源利用率,同时也避免出现资源过载的情况,提高测试结果的准确性。
需要注意的是,若多个施压机同时执行同一目标任务,则多个施压机可以组成一个施压机集群,并且每个压测任务由一个控制端进行控制,此时一个控制端可以对多个施压机进行压测控制和管理。本实施例中的控制端可以接收与目标任务关联的每个施压机发送的当前压测数据,并根据各当前压测数据动态调节每个关联施压机的加载线程数,以提高资源利用率同时避免资源过载的情况。
本实施例的技术方案,控制端通过接收施压机发送的测试目标任务时采集的当前压测数据,并根据当前压测数据确定对应的线程控制消息,并将线程控制消息发送至施压机,施压机可以根据线程控制消息在压力测试过程中实时动态调节当前加载线程数,以便可以利用更加合适的加载线程数对目标任务进行压力测试,从而提高了施压机的资源利用率,同时也避免了出现资源过载的情况,提高了测试结果的准确性。
在上述技术方案的基础上,S320中的“根据当前压测数据确定线程控制消息”,可以包括:根据预设分配规则、当前资源消耗信息和目标任务对应的单线程资源消耗信息,确定施压机对应的目标线程数;若当前加载线程数小于目标线程数,则根据当前加载线程数与目标线程数之间的差值生成线程扩容消息,并将线程扩容消息确定为线程控制消息;若当前加载线程数大于目标线程数,则根据当前加载线程数与目标线程数之间的差值生成线程缩容消息,并将线程缩容消息确定为线程控制消息。
其中,当前压测数据包括施压机的当前资源消耗信息和当前加载线程数。预设分配规则可以是指对施压机所要加载的线程数进行分配的规则,其可以根据业务需求和实际情况预先设置。单线程资源消耗信息可以是指施压机中开启一个线程所需要消耗的资源大小。本实施例可以根据施压机的硬件配置信息确定该施压机对应的单线程资源消耗信息。目标线程数可以是指施压机所需加载的最终线程数。
示例性地,本实施例中的压测场景通常为一个梯度施压模型,比如初始并线程数为10,每隔100秒增加10个线程,直到增加到1000线程时,稳定施压1小时,此为一个压测场景,从而随着压测过程的推移,需要增加施压机加载的线程数,即并发线程数。
具体地,控制端在获得当前时刻的目标并发线程数后,若目标并发线程数与当前加载线程数不同,则可以基于预设分配规则和施压机的当前资源消耗信息,对目标并发线程数进行分配,以获得施压机对应的目标线程数。在性能压测平台的压测过程中,对施压机资源影响最大的参数为CPU使用率,从而可以以CPU使用率来表示施压机的资源消耗情况。
示例性地,若某个施压机当前CPU使用率为30%,该施压机当前加载100个线程,此时获得的目标并发线程数为110,则表明需要再增加10个线程,若根据单线程资源消耗信息确定增加10个线程后该施压机对应的CPU使用率为75%以下,则表明该施压机可以再多开启10个线程,此时可以确定目标线程为110;若根据单线程资源消耗信息确定增加10个线程后该施压机对应的CPU使用率超过了75%,则表明增加10个线程后可能会导致资源过载,此时可以确定75%的CPU使用率所对应的线程数,假设为5个,则可以确定该施压机对应的目标线程数为105个,剩下的5个线程可以增加至另一台关联施压机中。
示例性地,若某个施压机当前CPU使用率为80%,该施压机当前加载200个线程,则根据单线程资源消耗信息确定75%的CPU使用率所对应的线程数,假设为180个,则可以确定该施压机对应的目标线程数为180个,从而通过减少20个线程避免施压机资源过载,并且可以通过在其他关联施压机中增加20个线程的方式,保证施压机集群对应的并发线程总数保持不变,以进行准确地压力测试。
本实施例在确定施压机对应的目标线程数后,可以在控制器中比较目标线程数与施压机的当前加载线程数的大小,并根据比较结果确定对应的线程控制消息。示例性地,在当前加载线程数小于目标线程数时,可以将当前加载线程数与目标线程数之间的差值确定为线程增加数量,并生成包含线程增加数量的线程扩容消息,并将线程扩容消息作为线程控制消息发送至施压机中,以增加施压机的线程容量,提高资源利用率。在当前加载线程数大于目标线程数时,可以将当前加载线程数与目标线程数之间的差值确定为线程减少数量,并生成包含线程减少数量的线程缩容消息,并将线程缩容消息作为线程控制消息发送至施压机中,以减小施压机的线程容量,避免出现资源过载的情况。
在上述技术方案的基础上,S320中的“根据当前压测数据确定线程控制消息”,可以包括:根据预设分配规则、当前资源消耗信息和目标任务对应的单线程资源消耗信息,确定施压机对应的目标线程数;若当前加载线程数不等于目标线程数,则根据目标线程数生成线程容量消息,并将线程容量消息确定为线程控制消息。
具体地,本实施例也可以在确定施压机对应的目标线程数后,直接生成包含目标线程数的线程容量消息,并将线程容量消息作为线程控制消息发送至施压机中,以在施压机中通过比较目标线程数和当前加载线程数确定线程调节方式为扩容方式还是缩容方式,从而即使控制端因网络原因发送多次线程容量消息,施压机在判断当前加载线程数等于目标线程数时,也不会继续调节当前加载线程数,使得调节后的施压机当前加载线程数始终等于目标线程数,从而提高了控制器控制的准确性,以及性能测试的准确性。
在上述技术方案的基础上,S320中的“根据当前压测数据确定线程控制消息”,还可以包括:若施压机的当前压测时长等于目标任务对应的目标压测时长,则将测试结束消息确定为线程控制消息。
其中,当前压测时长可以是指目标任务从执行开始时刻到当前时刻的时间长度。目标压测时长可以是指根据业务需求预先设置的,目标任务所需要执行的时间长度。测试结束消息可以是用于表征目标任务测试完成的消息。本实施例中的线程控制消息还可以包括测试结束消息。具体地,控制器实时检测当前压测时长是否等于目标压测时长,若相等,则表明目标任务测试完成,此时控制端可以生成一个测试结束消息,并将该测试结束消息作为线程控制消息发送至施压机中,以使施压机可以根据该测试结束消息对施压进程设置进程结束标识,以通过退出施压进程的方式退出所有的加载线程,使得操作更加便捷。
实施例四
图4为本发明实施例四提供的一种性能测试装置的结构示意图,本实施例可适用于利用施压机对任务进行压力测试的情况。该装置具体包括:当前压测数据发送模块410、当前加载线程数调节模块420和压力测试模块430。
其中,当前压测数据发送模块410,用于采集当前测试的目标任务对应的当前压测数据,并将当前压测数据发送至控制端;当前加载线程数调节模块420,用于接收控制端发送的线程控制消息,并根据线程控制消息调节当前加载线程数;压力测试模块430,用于根据调节后的加载线程数对目标任务进行压力测试。
可选地,该装置还包括:
网络端口号发送模块,用于在采集当前测试的目标任务对应的当前压测数据,并将当前压测数据发送至控制端之前,将施压进程与当前可用的网络端口进行绑定,并通过守护进程,将绑定的网络端口号发送至控制端,以建立施压机与控制端的连接。
可选地,当前加载线程数调节模块420,具体用于:
若线程控制消息为线程扩容消息,则根据线程扩容消息确定线程增加数量,并创建线程增加数量的线程;若线程控制消息为线程缩容消息,则根据线程缩容消息确定线程减少数量,并对线程减少数量的当前加载线程设置线程退出标识。
可选地,当前加载线程数调节模块420,具体用于:
在线程控制消息为线程容量消息时,根据线程容量消息确定目标线程数,并将目标线程数与当前加载线程数进行比较,确定线程调节方式;若线程调节方式为扩容方式,则确定线程增加数量,并创建线程增加数量的线程;若线程调节方式为缩容方式,则确定线程减少数量,并对线程减少数量的当前加载线程设置线程退出标识。
可选地,压力测试模块430,具体用于:
在执行调节后的加载线程数中的每个线程时,通过调用脚本初始化函数,对目标任务的压测脚本进行初始化;检测当前执行的线程是否存在线程退出标识或者进程结束标识;若是,则调用脚本退出函数,以使当前执行的线程退出;若否,则调用初始化后的压测脚本对目标任务进行压力测试,并在压测脚本运行结束后返回执行检测当前执行的线程是否存在线程退出标识或者进程结束标识的操作。
本发明实施例所提供的性能测试装置可执行本发明实施例一或实施例二所提供的性能测试方法,具备执行性能测试方法相应的功能模块和有益效果。
实施例五
图5为本发明实施例五提供的一种性能测试装置的结构示意图,本实施例可适用于利用控制端对任务进行压力测试的情况。该装置具体包括:当前压测数据接收模块510和线程控制消息发送模块520。
其中,当前压测数据接收模块510,用于接收施压机发送的当前测试的目标任务对应的当前压测数据;线程控制消息发送模块520,用于根据当前压测数据确定线程控制消息,并将线程控制消息发送至施压机,以使施压机根据线程控制消息调节当前加载线程数,并根据调节后的加载线程数对目标任务进行压力测试。
可选地,当前压测数据包括施压机的当前资源消耗信息和当前加载线程数;相应地,线程控制消息发送模块520中的线程控制消息生成单元,具体用于:
根据预设分配规则、当前资源消耗信息和目标任务对应的单线程资源消耗信息,确定施压机对应的目标线程数;若当前加载线程数小于目标线程数,则根据当前加载线程数与目标线程数之间的差值生成线程扩容消息,并将线程扩容消息确定为线程控制消息;若当前加载线程数大于目标线程数,则根据当前加载线程数与目标线程数之间的差值生成线程缩容消息,并将线程缩容消息确定为线程控制消息。
可选地,当前压测数据包括施压机的当前资源消耗信息和当前加载线程数;相应地,线程控制消息发送模块520中的线程控制消息生成单元,具体用于:
根据预设分配规则、当前资源消耗信息和目标任务对应的单线程资源消耗信息,确定施压机对应的目标线程数;若当前加载线程数不等于目标线程数,则根据目标线程数生成线程容量消息,并将线程容量消息确定为线程控制消息。
本发明实施例所提供的性能测试装置可执行本发明实施例三所提供的性能测试方法,具备执行性能测试方法相应的功能模块和有益效果。
实施例六
图6是本发明实施例六提供的一种性能测试系统的结构示意图。参见图6,该系统包括:控制器610和至少一个施压机620。
其中,施压机620用于实现如实施例一或实施例二所提供的性能测试方法;控制器610用于实现如实施例三所提供的性能测试方法。
本实施例提供的性能测试系统的工作过程如下:
与目标任务关联的某一施压机620可以采集在压测过程中的当前压测数据,并将采集的当前压测数据发送至控制端610,控制端610可以根据当前压测数据确定用于调节线程容量的线程控制消息,并将该线程控制消息发送至施压机620中,施压机620根据线程控制消息可以实时调节施压机当前加载线程数,比如增大线程容量或者减少线程容量,并根据调节后的加载线程数对目标任务进行压力测试,从而使得施压机的线程容量可以实时受控制端的控制,解决了现有开源压测平台中压测过程开环化所存在的无法动态调节线程数的问题。
本实施例中的性能测试系统,控制端可以根据压测过程中的资源变化对施压机加载的线程数进行动态调整,以便可以利用更加合适的加载线程数对目标任务进行压力测试,从而提高了施压机的资源利用率,同时也避免了出现资源过载的情况,提高了测试结果的准确性。
实施例七
本实施例七提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的性能测试方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种性能测试方法,其特征在于,包括:
施压机采集当前测试的目标任务对应的当前压测数据,并将所述当前压测数据发送至控制端,使得所述控制端根据所述当前压测数据确定线程控制消息,其中,所述线程控制消息包括:线程扩容消息、线程缩容消息和测试结束消息;所述控制端根据所述当前压测数据确定线程控制消息的步骤,具体包括:根据预设分配规则、当前资源消耗信息和所述目标任务对应的单线程资源消耗信息,确定所述施压机对应的目标线程数;
若当前加载线程数小于所述目标线程数,则根据所述当前加载线程数与所述目标线程数之间的差值生成线程扩容消息,并将所述线程扩容消息确定为线程控制消息;若所述当前加载线程数大于所述目标线程数,则根据所述当前加载线程数与所述目标线程数之间的差值生成线程缩容消息,并将所述线程缩容消息确定为线程控制消息;若所述施压机完成对所述目标任务的压力测试,则将所述测试结束消息确定为线程控制消息;
所述施压机接收所述控制端发送的线程控制消息,并根据所述线程控制消息调节当前加载线程数;其中,所述根据所述线程控制消息调节当前加载线程数的步骤,包括:若所述线程控制消息为线程扩容消息,则根据所述线程扩容消息确定线程增加数量,并创建所述线程增加数量的线程,并将创建的线程重新注入线程容器中;若所述线程控制消息为线程缩容消息,则根据所述线程缩容消息确定线程减少数量,并对所述线程减少数量的当前加载线程设置线程退出标识,并选取线程退出标识以将该线程从所述线程容器中删除;若所述线程控制消息为所述测试结束消息,则对所述当前加载的线程对应的施压进程设置进程结束标识;
所述施压机根据调节后的加载线程数对所述目标任务进行压力测试。
2.根据权利要求1所述的方法,其特征在于,在施压机采集当前测试的目标任务对应的当前压测数据,并将所述当前压测数据发送至控制端之前,还包括:
所述施压机将施压进程与当前可用的网络端口进行绑定,并通过守护进程,将绑定的网络端口号发送至所述控制端,以建立所述施压机与所述控制端的连接。
3.根据权利要求1所述的方法,其特征在于,根据所述线程控制消息调节当前加载线程数,包括:
在所述线程控制消息为线程容量消息时,根据所述线程容量消息确定目标线程数,并将所述目标线程数与当前加载线程数进行比较,确定线程调节方式;
若所述线程调节方式为扩容方式,则确定线程增加数量,并创建所述线程增加数量的线程;
若所述线程调节方式为缩容方式,则确定线程减少数量,并对所述线程减少数量的当前加载线程设置线程退出标识。
4.根据权利要求1-3任一所述的方法,其特征在于,所述施压机根据调节后的加载线程数对所述目标任务进行压力测试,包括:
所述施压机在执行调节后的加载线程数中的每个线程时,通过调用脚本初始化函数,对所述目标任务的压测脚本进行初始化;
检测当前执行的线程是否存在线程退出标识或者进程结束标识;
若是,则调用脚本退出函数,以使当前执行的线程退出;
若否,则调用初始化后的压测脚本对所述目标任务进行压力测试,并在压测脚本运行结束后返回执行检测当前执行的线程是否存在线程退出标识或者进程结束标识的操作。
5.一种性能测试方法,其特征在于,包括:
控制端接收施压机发送的当前测试的目标任务对应的当前压测数据,所述当前压测数据包括所述施压机的当前资源消耗信息和当前加载线程数;
所述控制端根据所述当前压测数据确定线程控制消息,相应地,根据所述当前压测数据确定线程控制消息,包括:
所述线程控制消息包括:线程扩容消息、线程缩容消息和测试结束消息;
根据预设分配规则、所述当前资源消耗信息和所述目标任务对应的单线程资源消耗信息,确定所述施压机对应的目标线程数;
若所述当前加载线程数小于所述目标线程数,则根据所述当前加载线程数与所述目标线程数之间的差值生成线程扩容消息,并将所述线程扩容消息确定为线程控制消息;
若所述当前加载线程数大于所述目标线程数,则根据所述当前加载线程数与所述目标线程数之间的差值生成线程缩容消息,并将所述线程缩容消息确定为线程控制消息;
若所述施压机完成对所述目标任务的压力测试,则将所述测试结束消息确定为线程控制消息;
并将所述线程控制消息发送至所述施压机,以使所述施压机根据所述线程控制消息调节当前加载线程数,并根据调节后的加载线程数对所述目标任务进行压力测试,其中,所述根据所述线程控制消息调节当前加载线程数的步骤,包括:若所述线程控制消息为线程扩容消息,则根据所述线程扩容消息确定线程增加数量,并创建所述线程增加数量的线程,并将创建的线程重新注入线程容器中;若所述线程控制消息为线程缩容消息,则根据所述线程缩容消息确定线程减少数量,并对所述线程减少数量的当前加载线程设置线程退出标识,并选取线程退出标识以将该线程从所述线程容器中删除;若所述线程控制消息为所述测试结束消息,则对所述当前加载的线程对应的施压进程设置进程结束标识。
6.根据权利要求5所述的方法,其特征在于,所述当前压测数据包括所述施压机的当前资源消耗信息和当前加载线程数;
相应地,根据所述当前压测数据确定线程控制消息,包括:
根据预设分配规则、所述当前资源消耗信息和所述目标任务对应的单线程资源消耗信息,确定所述施压机对应的目标线程数;
若所述当前加载线程数不等于所述目标线程数,则根据所述目标线程数生成线程容量消息,并将所述线程容量消息确定为线程控制消息。
7.一种性能测试装置,其特征在于,设置于施压机,所述装置包括:
当前压测数据发送模块,用于采集当前测试的目标任务对应的当前压测数据,并将所述当前压测数据发送至控制端,使得所述控制端根据所述当前压测数据确定线程控制消息,其中,所述线程控制消息包括:线程扩容消息、线程缩容消息和测试结束消息;所述控制端根据所述当前压测数据确定线程控制消息的步骤,具体包括:根据预设分配规则、当前资源消耗信息和所述目标任务对应的单线程资源消耗信息,确定所述施压机对应的目标线程数;若当前加载线程数小于所述目标线程数,则根据所述当前加载线程数与所述目标线程数之间的差值生成线程扩容消息,并将所述线程扩容消息确定为线程控制消息;若所述当前加载线程数大于所述目标线程数,则根据所述当前加载线程数与所述目标线程数之间的差值生成线程缩容消息,并将所述线程缩容消息确定为线程控制消息;若所述施压机完成对所述目标任务的压力测试,则将所述测试结束消息确定为线程控制消息;
当前加载线程数调节模块,用于接收所述控制端发送的线程控制消息,并根据所述线程控制消息调节当前加载线程数;其中,所述根据所述线程控制消息调节当前加载线程数的步骤,包括:若所述线程控制消息为线程扩容消息,则根据所述线程扩容消息确定线程增加数量,并创建所述线程增加数量的线程,并将创建的线程重新注入线程容器中;若所述线程控制消息为线程缩容消息,则根据所述线程缩容消息确定线程减少数量,并对所述线程减少数量的当前加载线程设置线程退出标识,并选取线程退出标识以将该线程从所述线程容器中删除;若所述线程控制消息为所述测试结束消息,则对所述当前加载的线程对应的施压进程设置进程结束标识;
压力测试模块,用于根据调节后的加载线程数对所述目标任务进行压力测试。
8.一种性能测试装置,其特征在于,设置于控制端,所述装置包括:
当前压测数据接收模块,用于接收施压机发送的当前测试的目标任务对应的当前压测数据,所述当前压测数据包括所述施压机的当前资源消耗信息和当前加载线程数;
线程控制消息发送模块,用于根据所述当前压测数据确定线程控制消息,相应地,根据所述当前压测数据确定线程控制消息,包括:
所述线程控制消息包括:线程扩容消息、线程缩容消息和测试结束消息;
根据预设分配规则、所述当前资源消耗信息和所述目标任务对应的单线程资源消耗信息,确定所述施压机对应的目标线程数;
若所述当前加载线程数小于所述目标线程数,则根据所述当前加载线程数与所述目标线程数之间的差值生成线程扩容消息,并将所述线程扩容消息确定为线程控制消息;
若所述当前加载线程数大于所述目标线程数,则根据所述当前加载线程数与所述目标线程数之间的差值生成线程缩容消息,并将所述线程缩容消息确定为线程控制消息;
若所述施压机完成对所述目标任务的压力测试,则将所述测试结束消息确定为线程控制消息;
并将所述线程控制消息发送至所述施压机,以使所述施压机根据所述线程控制消息调节当前加载线程数,并根据调节后的加载线程数对所述目标任务进行压力测试,其中,所述根据所述线程控制消息调节当前加载线程数的步骤,包括:若所述线程控制消息为线程扩容消息,则根据所述线程扩容消息确定线程增加数量,并创建所述线程增加数量的线程,并将创建的线程重新注入线程容器中;若所述线程控制消息为线程缩容消息,则根据所述线程缩容消息确定线程减少数量,并对所述线程减少数量的当前加载线程设置线程退出标识,并选取线程退出标识以将该线程从所述线程容器中删除;若所述线程控制消息为所述测试结束消息,则对所述当前加载的线程对应的施压进程设置进程结束标识。
9.一种性能测试系统,其特征在于,所述系统包括控制器和至少一个施压机;其中,
所述施压机用于实现如权利要求1-4中任一所述的性能测试方法;
所述控制器用于实现如权利要求5-6中任一所述的性能测试方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的性能测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910012994.1A CN109684228B (zh) | 2019-01-07 | 2019-01-07 | 一种性能测试方法、装置、系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910012994.1A CN109684228B (zh) | 2019-01-07 | 2019-01-07 | 一种性能测试方法、装置、系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684228A CN109684228A (zh) | 2019-04-26 |
CN109684228B true CN109684228B (zh) | 2022-07-05 |
Family
ID=66191965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910012994.1A Active CN109684228B (zh) | 2019-01-07 | 2019-01-07 | 一种性能测试方法、装置、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684228B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795334B (zh) * | 2019-09-09 | 2023-12-29 | 连连银通电子支付有限公司 | 一种测试装置和方法 |
CN111159009B (zh) * | 2019-11-29 | 2024-03-12 | 深圳智链物联科技有限公司 | 一种日志服务系统的压力测试方法及装置 |
CN111245900B (zh) * | 2019-12-31 | 2021-09-14 | 北京健康之家科技有限公司 | 一种分布式消息发送的处理系统及其处理方法 |
CN113190324B (zh) * | 2020-01-14 | 2024-09-13 | 阿里巴巴集团控股有限公司 | 流量分配方法、设备、系统及存储介质 |
CN112765019B (zh) * | 2021-01-13 | 2024-01-19 | 北京鼎事兴教育咨询有限公司 | 压测方法、装置、存储介质及电子设备 |
CN114265637A (zh) * | 2021-12-24 | 2022-04-01 | 中电信数智科技有限公司 | 档案管理系统配置方法、系统、电子设备以及存储介质 |
CN114697080A (zh) * | 2022-02-28 | 2022-07-01 | 中国科学院信息工程研究所 | 网络密码设备分布式性能测试系统的测试配置调整方法 |
CN114567571B (zh) * | 2022-03-14 | 2023-11-10 | Oppo广东移动通信有限公司 | 性能测试方法、装置、电子设备和计算机可读存储介质 |
CN117194131B (zh) * | 2023-11-06 | 2024-02-27 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107835101A (zh) * | 2017-10-19 | 2018-03-23 | 厦门美柚信息科技有限公司 | 对服务器进行压力测试的方法及装置、终端 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8468537B2 (en) * | 2010-07-14 | 2013-06-18 | Fujitsu Limited | Systems and methods for distributing validation computations |
CN104717236A (zh) * | 2013-12-11 | 2015-06-17 | 中国移动通信集团公司 | 一种设备性能测试方法及装置 |
US9715416B2 (en) * | 2015-06-03 | 2017-07-25 | Intel Corporation | Adaptive queued locking for control of speculative execution |
CN107463441B (zh) * | 2017-06-30 | 2020-10-27 | 大唐软件技术股份有限公司 | 一种线程数量控制方法及设备 |
-
2019
- 2019-01-07 CN CN201910012994.1A patent/CN109684228B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107835101A (zh) * | 2017-10-19 | 2018-03-23 | 厦门美柚信息科技有限公司 | 对服务器进行压力测试的方法及装置、终端 |
Also Published As
Publication number | Publication date |
---|---|
CN109684228A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684228B (zh) | 一种性能测试方法、装置、系统和存储介质 | |
US8572621B2 (en) | Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria | |
CN109408399B (zh) | 一种算力估计方法、装置、设备和存储介质 | |
CN112347004A (zh) | 基于联合的存储器管理 | |
CN109218133A (zh) | 网络速度测试系统、方法、装置及计算机可读存储介质 | |
CN107038120B (zh) | 一种软件测试方法和设备 | |
CN107704310B (zh) | 一种实现容器集群管理的方法、装置和设备 | |
CN109474459A (zh) | 域名配置管理方法、装置、计算机设备及存储介质 | |
CN109857633B (zh) | 一种任务算力估计方法、装置和存储介质 | |
CN104702664B (zh) | 控制任务服务器的方法及系统 | |
CN109284229A (zh) | 一种基于qps的动态调整方法以及相关设备 | |
CN112015326B (zh) | 集群数据处理方法、装置、设备及存储介质 | |
CN108733545B (zh) | 一种压力测试方法及装置 | |
CN109992408B (zh) | 一种资源分配方法、装置、电子设备和存储介质 | |
CN117435412A (zh) | 服务器测试方法及装置、存储介质、电子设备 | |
CN110557341A (zh) | 数据限流的方法和装置 | |
CN108418730B (zh) | 网络流量测试方法、装置、设备以及计算机可读存储介质 | |
CN116319320A (zh) | 一种网络性能优化方法、系统、电子设备及介质 | |
CN116450483A (zh) | 一种确定软件分配的负载的方法、装置、服务器及介质 | |
CN111143063A (zh) | 任务的资源预约方法及装置 | |
CN111026632A (zh) | 一种性能测试方法、存储介质、电子设备及系统 | |
US9348667B2 (en) | Apparatus for managing application program and method therefor | |
CN114490374A (zh) | 应用的压力测试方法、电子设备、存储介质及程序产品 | |
CN109656796B (zh) | 一种任务挑选方法和装置 | |
US12022314B2 (en) | Quality of service measurement method and device, and user plane function entity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |