CN109743229A - 基于分布式的性能测试方法、装置和*** - Google Patents
基于分布式的性能测试方法、装置和*** Download PDFInfo
- Publication number
- CN109743229A CN109743229A CN201910026588.0A CN201910026588A CN109743229A CN 109743229 A CN109743229 A CN 109743229A CN 201910026588 A CN201910026588 A CN 201910026588A CN 109743229 A CN109743229 A CN 109743229A
- Authority
- CN
- China
- Prior art keywords
- target
- pressing machine
- machine
- control machine
- performance test
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种基于分布式的性能测试方法、装置和***。该方法包括:目标控制机依据目标施压机列表确定执行性能测试任务的各个目标施压机,其中,所述目标控制机为控制机集群中与所述性能测试任务对应的控制机,所述目标施压机列表存储依据所述控制机集群的控制机集群域名与所述目标控制机建立HTTP长连接的施压机;所述目标控制机根据各所述目标施压机的当前资源占用信息,向各所述目标施压机分配所述性能测试任务,以使各所述目标施压机执行所述性能测试任务。通过上述技术方案,实现了性能测试***的快速扩容和目标施压机的快速发现,提高了性能测试的稳定性和效率。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种基于分布式的性能测试方法、装置和***。
背景技术
随着技术的发展,适用于用户客户端的应用程序越来越多,为了确保应用程序正常工作,需要对其进行诸如功能是否正常运行的功能测试和负载承载量的压力测试等性能测试。
为了便于应用程序的性能测试,目前已有基于web服务的分布式性能测试平台,如nGrinder性能测试平台。nGrinder性能测试平台的框架包括一台控制机和多个施压机,该控制机用于管理施压机及性能测试任务,如建立与各个施压机的连接关系(称为施压机发现),为每个性能测试任务分配适当的施压机,以及将性能测试任务的测试脚本和测试资源发送给每个适配的施压机,并开始控制测试流;施压机用于根据接收到的测试脚本模拟用户行为数据,并将模拟数据发送至被测试应用程序,以测试被测试应用程序。其中,施压机发现机制为:固定控制机的控制机互联网协议地址(Internet Protocol Address,IP地址)和控制机服务端口号,各个施压机根据其内配置文件中记载的控制机IP地址和控制机服务端口号,向控制机发起TCP长连接,以使控制机连接到各个施压机。
虽然nGrinder性能测试平台能够便于多用户基于web服务进行性能测试任务,但是该性能测试平台中仅有一个控制机,受限于控制机的资源,该性能测试平台只能容纳有限的性能测试任务,当运行的性能测试任务过多时,会出现性能测试不稳定的问题。另外,上述施压机发现过程中控制机的服务端口号须固定且不能被占用,一方面使得施压机发现过程的执行依赖于控制机服务端口号的正确性,另一方面进一步限制了nGrinder性能测试平台增加控制机以扩容的可能性,使得nGrinder性能测试平台的应用不够灵活。
发明内容
本发明实施例提供一种基于分布式的性能测试方法、装置和***,以实现性能测试***的快速扩容和目标施压机的快速发现,提高了性能测试的稳定性和效率。
第一方面,本发明实施例提供了一种基于分布式的性能测试方法,包括:
目标控制机依据目标施压机列表确定执行性能测试任务的各个目标施压机,其中,所述目标控制机为控制机集群中与所述性能测试任务对应的控制机,所述目标施压机列表存储依据所述控制机集群的控制机集群域名与所述目标控制机建立HTTP长连接的施压机;
所述目标控制机根据各所述目标施压机的当前资源占用信息,向各所述目标施压机分配所述性能测试任务,以使各所述目标施压机执行所述性能测试任务。
第二方面,本发明实施例还提供了一种基于分布式的性能测试装置,配置在目标控制机中,该装置包括:
目标施压机确定模块,用于依据目标施压机列表确定执行性能测试任务的各个目标施压机,其中,所述目标控制机为控制机集群中与所述性能测试任务对应的控制机,所述目标施压机列表存储依据所述控制机集群的控制机集群域名与所述目标控制机建立HTTP长连接的施压机;
性能测试模块,用于根据各所述目标施压机的当前资源占用信息,向各所述目标施压机分配所述性能测试任务,以使各所述目标施压机执行所述性能测试任务。
第三方面,本发明实施例还提供了一种基于分布式的性能测试***,该***包括:负载均衡器,与所述负载均衡器通信连接的控制机集群和至少一个目标施压机;其中,
所述负载均衡器,用于从所述控制机集群中确定性能测试任务对应的目标控制机;
所述目标控制机,用于依据目标施压机列表确定执行所述性能测试任务的各个目标施压机,并根据各所述目标施压机的当前资源占用信息,向各所述目标施压机分配所述性能测试任务,以使各所述目标施压机执行所述性能测试任务,其中,所述目标施压机列表存储依据所述控制机集群的控制机集群域名与所述目标控制机建立HTTP长连接的施压机。
本发明实施例通过各个施压机依据控制机集群域名与控制机集群中的目标控制机建立HTTP长连接,从而为目标控制机构建对应的目标施压机列表,使得控制机集群中可以随时增加新的控制机,实现性能测试平台的扩容,进而提高性能测试的稳定性。通过控制机集群中与性能测试任务对应的目标控制机依据目标施压机列表确定执行性能测试任务的各个目标施压机;目标控制机根据各目标施压机的当前资源占用信息,向各目标施压机分配性能测试任务,以使各目标施压机执行性能测试任务,使得各个目标施压机的资源得以充分且合理地利用,从而提高性能测试的效率。
附图说明
图1是本发明实施例一中的一种基于分布式的性能测试方法的流程图;
图2是本发明实施例二中的一种基于分布式的性能测试方法中性能测试网络的构建方法的流程图;
图3是本发明实施例三中的一种基于分布式的性能测试装置的结构示意图;
图4是本发明实施例四中的一种基于分布式的性能测试***的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
本实施例提供的基于分布式的性能测试方法可适用于基于web服务的应用程序的性能测试。该方法可以由基于分布式的性能测试装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在计算机设备中,例如笔记本电脑、台式电脑或服务器等。参见图1,本实施例的方法包括:
S110、目标控制机依据目标施压机列表确定执行性能测试任务的各个目标施压机。
其中,目标控制机为控制机集群中与性能测试任务对应的控制机。本发明实施例中的性能测试平台/***中包含至少两个控制机,每个控制机可以同时处理多个性能测试任务。这些控制机组成一个控制机集群,对应于同一个域名(即控制机集群域名)的负载均衡器。当一个性能测试任务下发时,控制机集群中具体负责该性能测试任务的控制机便是目标控制机。
施压机列表是用于存储施压机信息的列表,例如可以存储施压机的名称、IP地址(即施压机互联网协议地址)和服务端口号(即施压机服务端口号)等。施压机列表中的各个施压机均是通过控制机集群域名与控制机集群中的某一个控制机建立HTTP长连接的。目标施压机列表中的各个施压机便是通过控制机集群域名与控制机集群中的目标控制机建立HTTP长连接的,即目标施压机列表存储依据控制机集群的控制机集群域名与目标控制机建立HTTP长连接的施压机。施压机列表可以存储于对应的控制机中,也可以存储在控制机集群对应的共同区域,例如可以是共同的服务器或负载均衡器。
具体地,当一个性能测试任务下发之后,便可以为该性能测试任务分配目标控制机。该目标控制机的确定操作可以是负载均衡器根据负载均衡策略从控制机集群中选定;也可以是各个控制机按照预设的任务处理策略来自动确定,例如根据各个控制机的添加时间或可用资源占比确定各个控制机排序,之后便按照控制机排序顺次接收性能测试任务等。
确定目标控制机之后,该目标控制机便根据其对应的目标施压机列表确定该性能测试任务所需要的各个目标施压机。例如可以是将目标施压机列表中的所有施压机确定为目标施压机,以便均衡利用各个施压机,提高性能测试任务处理效率;也可以是根据该性能测试任务的任务量和目标施压机列表中各个施压机的***资源情况,确定列表中的部分施压机作为目标施压机,以便充分利用每个施压机,提高施压机的利用率。
S120、目标控制机根据各目标施压机的当前资源占用信息,向各目标施压机分配性能测试任务,以使各目标施压机执行性能测试任务。
其中,当前资源占用信息是指当前时刻施压机的***资源占用信息,例如可以是CPU占用率和/或内存占用率等。
具体地,目标控制机为性能测试任务选定各个目标施压机之后,根据各个目标施压机上报的施压机的当前资源占用信息,确定出每个目标施压机所能承接的性能测试任务量,之后将性能测试任务按照上述确定的可承接任务量进行分配,使得各个目标施压机执行分配到的性能测试任务,如模拟要求数量的用户行为数据,对被测服务施压,以获得该性能测试任务的性能测试结果。
上述性能测试过程中,目标控制机并没有将性能测试任务平均分配到各个目标施压机,而是以目标施压机的当前资源占用信息为依据,进行合理比例的任务量分配,能够平衡各个施压机的利用率,减少高负载的施压机的阻塞,进一步提高性能测试效率。
本实施例的技术方案,通过各个施压机依据控制机集群域名与控制机集群中的目标控制机建立HTTP长连接,从而为目标控制机构建对应的目标施压机列表,使得控制机集群中可以随时增加新的控制机,实现性能测试平台的扩容,进而提高性能测试的稳定性。通过控制机集群中与性能测试任务对应的目标控制机依据目标施压机列表确定执行性能测试任务的各个目标施压机;目标控制机根据各目标施压机的当前资源占用信息,向各目标施压机分配性能测试任务,以使各目标施压机执行性能测试任务,使得各个目标施压机的资源得以充分且合理地利用,从而提高性能测试的效率。
以上述技术方案为基础,在S120之前,还包括:每个目标施压机按照资源上报频率,通过目标控制机与目标施压机之间建立的TCP长连接,向目标控制机上报当前资源占用信息。
其中,资源上报频率是指施压机向控制机上报资源占用信息的频率,其可以预先设定为一个固定频率,也可以根据实际情况进行调整。
具体地,根据上述说明,各个目标施压机会根据控制机集群域名向控制机集群发起HTTP连接,并与目标控制机建立HTTP长连接,该过程主要是为了实现施压机发现,从而确定目标施压机列表。HTTP长连接建立之后,目标施压机会根据目标施压机列表中的目标施压机信息与各个目标施压机建立TCP长连接。此后,各个目标施压机监测自身的当前资源占用信息,并按照各自对应的资源上报频率,通过建立的TCP长连接将其监测获得的当前资源占用信息上报至目标控制机。这样设置的好处在于,可以使目标控制机及时地获得各个目标施压机的当前资源占用信息,从而可以及时调整性能测试任务的分配,一定程度上进一步提高性能测试效率。
上述过程中,目标控制机在发起TCP连接之前,需要从其内存储的配置文件中获取初始控制机端口号,并验证端口号可用性。在初始控制机端口号被占用而不可用时,目标控制机需要按照设定的端口号调整规则,确定新的控制机端口号,并验证可用性,直至确定出可用的控制机端口号。例如初始控制机端口号设定为65001,设定的端口号调整规则设置为逆序减小端口号,且每次端口号减一,直至获得可用的服务端口号。这样设置的好处在于,避免固定控制机端口号造成的端口号冲突,增加了控制机端口号确定的灵活性,从而实现性能测试***中控制机的适时增加。而设置逆序减小端口号的端口号调整规则,能够减少端口号冲突,从而提高控制机端口号的确定速度。
示例性地,目标施压机按照资源上报频率,通过目标控制机与目标施压机之间建立的TCP长连接,向目标控制机上报当前资源占用信息包括:目标施压机检测是否处于空闲状态;若是,则目标施压机确定资源上报频率为第一频率,并按照第一频率,通过目标控制机与目标施压机之间建立的TCP长连接,向目标控制机上报当前资源占用信息;若否,则目标施压机确定资源上报频率为第二频率,并按照第二频率,通过目标控制机与目标施压机之间建立的TCP长连接,向目标控制机上报当前资源占用信息。
具体地,对于每一个目标施压机,其上报当前资源占用信息的过程可以为:目标施压机监测其内是否运行有施压进程,进而判断目标施压机的运行状态。若监测结果为是,则确定目标施压机处于繁忙状态,这时将资源上报频率确定为第二频率(如5s),并按照第二频率,通过目标控制机与目标施压机之间建立的TCP长连接,向目标控制机上报当前资源占用信息。这样可以减少网络宽带和目标控制机的处理负载。若监测结果为否,则确定目标施压机处于空闲状态,这时将资源上报频率确定为第一频率(如200ms),并按照第一频率,通过目标控制机与目标施压机之间建立的TCP长连接,向目标控制机上报当前资源占用信息,这样可以提高目标控制机调整性能测试任务分配的及时性。上述第一频率和第二频率不等,第一频率或第二频率可以与初始资源上报频率一致,也可以不一致。初始资源上报频率从目标施压机内存储的配置文件中获得,第一频率和第二频率则可以通过目标控制机下发获得。
以上述技术方案为基础,在目标控制机根据各目标施压机的当前资源占用信息,向各目标施压机分配性能测试任务之前,还包括:目标施压机从***信息收集包所提供的所有动态链接库中,确定适配于目标施压机的操作***的目标动态链接库;目标施压机基于目标动态链接库获得当前资源占用信息。
其中,***信息收集包是指***信息收集基础包(System Information GathererAnd Reporter,Sigar),用来从各个操作平台收集***和处理信息。
具体地,为了更加方便地获取目标施压机的当前资源占用信息,本发明实施例中采用了Sigar工具。具体实施时,目标施压机根据其操作***,从Sigar提供的所有动态链接库中找到适配于目标施压机的操作***的目标动态链接库,并保存至目标施压机存储空间。之后,便可以使用Sigar工具来获取目标施压机的当前资源占用信息。
实施例二
本实施例在上述实施例的基础上,增加了“性能测试网络构建”的相关步骤。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图2,本实施例提供的基于分布式的性能测试方法中性能测试网络的构建方法包括:
S210、针对施压机集群中的每个施压机,该施压机基于适配于该施压机的操作***的动态链接库,确定施压机互联网协议地址。
具体地,本发明实施例中性能测试***包含控制机集群和施压机集群,两个集群之间的性能测试网络的构建思路大致为:各个施压机向控制机集群发起HTTP长连接,而后各个控制机根据其接收到的HTTP长连接信息维护施压机列表。之后,各个控制机基于其对应的施压机列表,与各个施压机建立TCP长连接。至此便可完成控制机与施压机之间的连接关系,构建性能测试网络。
实际构建性能测试网络时,首先需要通过各个施压机发起HTTP长连接,即对施压机集群中的每个施压机均执行S210~S240的操作。具体实施时,执行长连接发起操作的施压机(称为当前施压机)在确定了适配于当前施压机的操作***的动态链接库的基础上,利用Sigar工具来获取当前施压机的施压机互联网协议地址。
S220、该施压机基于目标配置文件确定该施压机的初始服务端口号和控制机集群域名。
其中,目标配置文件是指当前施压机中存储各个参数初始值的文件。
具体地,当前施压机获取目标配置文件,并且从目标配置文件中读取当前施压机的服务端口号,作为当前施压机的初始服务端口号。另外,当前施压机从目标配置文件中读取控制机集群域名。应当说明的是,目标配置文件中包含日志文件及日志级别,在读取目标配置文件中的上述信息时,可同样加载日志***。
示例性地,在该施压机基于目标配置文件确定该施压机的初始服务端口号和控制机集群域名之前,还包括:该施压机依据第一配置文件、第二配置文件和第三配置文件的设定优先级中确定目标配置文件。其中,第一配置文件、第二配置文件和第三配置文件分别是当前施压机中存储的三个配置文件,每个配置文件中均存储了各个参数的初始值信息,三个配置文件中存储的初始值信息可以一致,也可以不一致。这三个配置文件被设置了不同的优先级,优先级关系为第一配置文件>第二配置文件>第三配置文件。在执行S220之前,当前施压机需要从存储空间中获取所有存储的配置文件,并根据三个配置文件的设定优先级确定出目标配置文件。例如,若存储空间中只有第三配置文件(最少要存储第三配置文件),那么将第三配置文件作为目标配置文件;若存储空间中有其中两个或三个配置文件,那么将优先级较高的配置文件作为目标配置文件,如存储空间中有第一配置文件和第三配置文件,那么将第一配置文件作为目标配置文件。
示例性地,第一配置文件存储于施压机的用户空间,第二配置文件存储于施压机的项目空间,第三配置文件存储于施压机的资源空间。
S230、该施压机依据初始服务端口号和端口号调整规则,确定该施压机的施压机服务端口号。
其中,端口号调整规则与初始服务端口号的设置一致。例如,若初始服务端口号设置为较小的一个端口号,那么端口号调整规则便为正序增大端口号,每次端口号加1或2等较小数值;若初始服务端口号设置为较大的一个端口号,那么端口号调整规则便为逆序减小端口号,每次端口号减1或2等较小数值。本发明实施例中优选设置为后者。
具体地,由于本发明实施例中每个施压机的服务端口号不是预先设置的固定端口号,故当前施压机需要根据S220获得的初始服务端口号和端口号调整规则,对当前施压机的服务端口号进行可用性验证,直至确定出无冲突的可用端口号,作为当前施压机的施压机端口号。
S240、该施压机依据施压机互联网协议地址、施压机服务端口号和控制机集群域名,向控制机集群域名对应的负载均衡器发起HTTP长连接。
具体地,当前施压机根据施压机互联网协议地址和施压机服务端口号,向控制机集群域名发起HTTP长连接,该控制机集群域名会被解析进而指向控制机集群的前置负载均衡器。
S250、负载均衡器依据预设负载均衡策略,为每个HTTP长连接匹配控制机集群中的一个控制机,以使施压机与控制机之间建立HTTP长连接。
具体地,当一个施压机向控制机集群域名对应的负载均衡器发起HTTP长连接后,负载均衡器根据负载均衡策略,如均衡控制机资源或箭筒控制机资源的策略,将该HTTP长连接请求发送至筛选出的一个控制机,则该控制机便与发起该HTTP长连接的施压机建立了HTTP长连接。
当施压机集群中的每一个施压机均向控制机集群域名对应的负载均衡器发起HTTP长连接请求时,负载均衡器按照上述过程,为每个HTTP长连接请求匹配一个控制机。根据负载均衡策略,多个HTTP长连接请求可能被分配给同一个控制机,也可能每个HTTP长连接请求均对应不同的控制机。需要说明的是,上述基于负载均衡器的HTTP长连接请求的分配过程,天然支持了控制机的随时扩容。
S260、针对控制机集群中的每个控制机,该控制机将与该控制机具有HTTP长连接关系的施压机添加至该控制机的施压机列表。
具体地,控制机集群中的每个控制机均会对应有一个施压机列表,对于控制机集群中每一个执行施压机列表维护操作的控制机(称为当前控制机),该施压机列表的维护过程为:当前控制机将与其具有HTTP长连接关系的施压机的信息均添加至当前控制机对应的施压机列表中。
示例性地,该控制机将与该控制机具有HTTP长连接关系的施压机添加至该控制机的施压机列表包括:该控制机根据接收到的各个HTTP长连接携带的施压机互联网协议地址和施压机服务端口号,与各个发起HTTP长连接的施压机分别建立TCP长连接,并监测各个TCP长连接是否存活;若是,则在该施压机列表中不存在存活的TCP长连接对应的施压机时,该控制机将存活的TCP长连接对应的施压机添加至该施压机列表;若否,则在该施压机列表中存在失效的TCP长连接对应的施压机时,该控制机将失效的TCP长连接对应的施压机从该施压机列表中删除。
具体地,当前控制机对于其接收到的某一个HTTP长连接请求,首先解析该HTTP长连接请求以获得该HTTP长连接请求对应的施压机的施压机互联网协议地址和施压机服务端口号。接着,按照施压机互联网协议地址和施压机服务端口号向上述施压机发起TCP长连接请求,以与上述施压机建立TCP长连接。之后,实时监测所建立的TCP长连接是否存活。若存活,则说明上述施压机可以执行性能测试任务,进一步判断当前控制机对应的施压机列表中是否已经存在上述施压机信息,若否,则将上述施压机信息添加至施压机列表;若是,则继续监测TCP长连接是否存活。若未存活(TCP长连接失效),则说明上述施压机宕机,不可进行后续性能测试,此时进一步判断施压机列表中是否存在上述施压机信息,若是,则将上述施压机信息从施压机列表删除。对于当前控制机接收到的每一个HTTP长连接请求,均按照上述过程进行处理,便可获得当前控制机对应的完整的施压机列表。这样设置的好处在于,可以维护施压机列表的实时有效性,保证各个施压机均处于可用状态。
需要说明的是,此处不限定S210与S220~S230的执行顺序,只需使得S210在S240之前执行即可。
本实施例的技术方案,通过施压机基于适配于施压机的操作***的动态链接库,确定施压机互联网协议地址;基于目标配置文件确定施压机的初始服务端口号和控制机集群域名;依据初始服务端口号和端口号调整规则,确定施压机服务端口号。实现了施压机快速且灵活地确定施压机互联网协议地址、施压机服务端口号和控制机集群域名,进一步提高了性能测试***的应用灵活性。通过针对施压机集群中的每个施压机,施压机依据施压机互联网协议地址、施压机服务端口号和控制机集群域名,向控制机集群域名对应的负载均衡器发起HTTP长连接;负载均衡器依据预设负载均衡策略,为每个HTTP长连接匹配控制机集群中的一个控制机,以使施压机与控制机之间建立HTTP长连接;针对控制机集群中的每个控制机,控制机将与控制机具有HTTP长连接关系的施压机添加至控制机的施压机列表。实现了性能测试网络的组建,进一步提高了性能测试网络的可扩充性和实时有效性。
以下是本发明实施例提供的基于分布式的性能测试装置的实施例,该装置与上述各实施例的基于分布式的性能测试方法属于同一个发明构思,在基于分布式的性能测试装置的实施例中未详尽描述的细节内容,可以参考上述基于分布式的性能测试方法的实施例。
实施例三
本实施例提供一种基于分布式的性能测试装置,配置于目标控制机中,参见图3,该装置具体包括:
目标施压机确定模块310,用于依据目标施压机列表确定执行性能测试任务的各个目标施压机,其中,目标控制机为控制机集群中与性能测试任务对应的控制机,目标施压机列表存储依据控制机集群的控制机集群域名与目标控制机建立HTTP长连接的施压机;
性能测试模块320,用于根据各目标施压机的当前资源占用信息,向各目标施压机分配性能测试任务,以使各目标施压机执行性能测试任务。
可选地,在上述装置的基础上,该装置还包括施压机列表维护模块,用于:
在依据目标施压机列表确定执行性能测试任务的各个目标施压机之前,将与控制机具有HTTP长连接关系的施压机添加至控制机的施压机列表。
进一步地,施压机列表维护模块具体用于:
根据接收到的各个HTTP长连接携带的施压机互联网协议地址和施压机服务端口号,与各个发起HTTP长连接的施压机分别建立TCP长连接,并监测各个TCP长连接是否存活;
若是,则在施压机列表中不存在存活的TCP长连接对应的施压机时,将存活的TCP长连接对应的施压机添加至施压机列表;
若否,则在施压机列表中存在失效的TCP长连接对应的施压机时,将失效的TCP长连接对应的施压机从施压机列表中删除。
通过本发明实施例三的配置于目标控制机中的一种基于分布式的性能测试装置,实现了性能测试***的快速扩容和目标施压机的快速发现,提高了性能测试的稳定性和效率。
值得注意的是,上述基于分布式的性能测试装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例四
参见图4,本实施例提供了一种基于分布式的性能测试***,其包括:负载均衡器410,与负载均衡器410通信连接的控制机集群420和至少一个目标施压机430;其中,
负载均衡器410,用于从控制机集群420中确定性能测试任务对应的目标控制机421;
目标控制机421,用于依据目标施压机列表确定执行性能测试任务的各个目标施压机430,并根据各目标施压机430的当前资源占用信息,向各目标施压机430分配性能测试任务,以使各目标施压机430执行性能测试任务,其中,目标施压机列表存储依据控制机集群420的控制机集群域名与目标控制机建立HTTP长连接的施压机。
可选地,目标施压机430包括资源占用信息上报模块,用于:
在目标控制机421根据各目标施压机430的当前资源占用信息,向各目标施压机430分配性能测试任务之前,按照资源上报频率,通过目标控制机421与目标施压机430之间建立的TCP长连接,向目标控制机421上报当前资源占用信息。
进一步地,资源占用信息上报模块具体用于:
检测是否处于空闲状态;
若是,则确定资源上报频率为第一频率,并按照第一频率,通过目标控制机421与目标施压机430之间建立的TCP长连接,向目标控制机421上报当前资源占用信息;
若否,则确定资源上报频率为第二频率,并按照第二频率,通过目标控制机421与目标施压机430之间建立的TCP长连接,向目标控制机421上报当前资源占用信息。
可选地,目标施压机430包括第一信息获取模块,用于:
在目标控制机421根据各目标施压机430的当前资源占用信息,向各目标施压机430分配性能测试任务之前,从***信息收集包所提供的所有动态链接库中,确定适配于目标施压机430的操作***的目标动态链接库;
基于目标动态链接库获得当前资源占用信息。
可选地,目标施压机430包括HTTP长连接发起模块,用于在目标控制机421依据目标施压机列表确定执行性能测试任务的各个目标施压机430之前,依据施压机互联网协议地址、施压机服务端口号和控制机集群域名,向负载均衡器410发起HTTP长连接;
相应地,负载均衡器410包括HTTP长连接分配模块,用于依据预设负载均衡策略,为每个HTTP长连接匹配控制机集群420中的一个控制机,以使施压机与控制机之间建立HTTP长连接;
目标控制机421包括施压机列表维护模块,用于将与控制机具有HTTP长连接关系的施压机添加至控制机的施压机列表。
进一步地,施压机列表维护模块具体用于:
根据接收到的各个HTTP长连接携带的施压机互联网协议地址和施压机服务端口号,与各个发起HTTP长连接的施压机分别建立TCP长连接,并监测各个TCP长连接是否存活;
若是,则在施压机列表中不存在存活的TCP长连接对应的施压机时,将存活的TCP长连接对应的施压机添加至施压机列表;
若否,则在施压机列表中存在失效的TCP长连接对应的施压机时,将失效的TCP长连接对应的施压机从施压机列表中删除。
可选地,目标施压机430包括第二信息获取模块,用于:
在依据施压机互联网协议地址、施压机服务端口号和控制机集群域名,向负载均衡器410发起HTTP长连接之前,基于适配于施压机的操作***的动态链接库,确定施压机互联网协议地址;
基于目标配置文件确定施压机的初始服务端口号和控制机集群域名;
依据初始服务端口号和端口号调整规则,确定施压机服务端口号。
进一步地,第二信息获取模块具体用于:
在基于目标配置文件确定施压机的初始服务端口号和控制机集群域名之前,依据第一配置文件、第二配置文件和第三配置文件的设定优先级中确定目标配置文件。
图4显示的基于分布式的性能测试***仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。该基于分布式的性能测试***中的负载均衡器410,控制机集群420和至少一个目标施压机430可以通过诸如总线等有线或无线方式连接,图4中以通过总线440连接为例。
本发明实施例四的基于分布式的性能测试***,通过基于负载均衡器、控制机集群和施压机列表的组合方式来维护多个控机制及各个控制机对应的施压机,实现了轻量级的控制机维护和施压机发现方案,精简了性能测试***,达到了性能测试***的快速扩容和目标施压机的快速发现,以及提高性能测试的稳定性和效率的技术效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种基于分布式的性能测试方法,其特征在于,包括:
目标控制机依据目标施压机列表确定执行性能测试任务的各个目标施压机,其中,所述目标控制机为控制机集群中与所述性能测试任务对应的控制机,所述目标施压机列表存储依据所述控制机集群的控制机集群域名与所述目标控制机建立HTTP长连接的施压机;
所述目标控制机根据各所述目标施压机的当前资源占用信息,向各所述目标施压机分配所述性能测试任务,以使各所述目标施压机执行所述性能测试任务。
2.根据权利要求1所述的方法,其特征在于,在所述目标控制机根据各所述目标施压机的当前资源占用信息,向各所述目标施压机分配所述性能测试任务之前,还包括:
每个所述目标施压机按照资源上报频率,通过所述目标控制机与所述目标施压机之间建立的TCP长连接,向所述目标控制机上报当前资源占用信息。
3.根据权利要求2所述的方法,其特征在于,所述目标施压机按照资源上报频率,通过所述目标控制机与所述目标施压机之间建立的TCP长连接,向所述目标控制机上报当前资源占用信息包括:
所述目标施压机检测是否处于空闲状态;
若是,则所述目标施压机确定资源上报频率为第一频率,并按照所述第一频率,通过所述目标控制机与所述目标施压机之间建立的TCP长连接,向所述目标控制机上报当前资源占用信息;
若否,则所述目标施压机确定资源上报频率为第二频率,并按照所述第二频率,通过所述目标控制机与所述目标施压机之间建立的TCP长连接,向所述目标控制机上报当前资源占用信息。
4.根据权利要求2所述的方法,其特征在于,在所述目标施压机按照资源上报频率,通过所述目标控制机与所述目标施压机之间建立的TCP长连接,向所述目标控制机上报当前资源占用信息之前,还包括:
所述目标施压机从***信息收集包所提供的所有动态链接库中,确定适配于所述目标施压机的操作***的目标动态链接库;
所述目标施压机基于所述目标动态链接库获得所述当前资源占用信息。
5.根据权利要求1所述的方法,其特征在于,在所述目标控制机依据目标施压机列表确定执行所述性能测试任务的各个目标施压机之前,还包括:
针对施压机集群中的每个施压机,所述施压机依据施压机互联网协议地址、施压机服务端口号和控制机集群域名,向所述控制机集群域名对应的负载均衡器发起HTTP长连接;
所述负载均衡器依据预设负载均衡策略,为每个HTTP长连接匹配控制机集群中的一个控制机,以使施压机与控制机之间建立HTTP长连接;
针对所述控制机集群中的每个控制机,所述控制机将与所述控制机具有HTTP长连接关系的施压机添加至所述控制机的施压机列表。
6.根据权利要求5所述的方法,其特征在于,所述控制机将与所述控制机具有HTTP长连接关系的施压机添加至所述控制机的施压机列表包括:
所述控制机根据接收到的各个HTTP长连接携带的施压机互联网协议地址和施压机服务端口号,与各个发起HTTP长连接的施压机分别建立TCP长连接,并监测各个TCP长连接是否存活;
若是,则在所述施压机列表中不存在存活的TCP长连接对应的施压机时,所述控制机将存活的TCP长连接对应的施压机添加至所述施压机列表;
若否,则在所述施压机列表中存在失效的TCP长连接对应的施压机时,所述控制机将失效的TCP长连接对应的施压机从所述施压机列表中删除。
7.根据权利要求5所述的方法,其特征在于,在所述施压机依据施压机互联网协议地址、施压机服务端口号和控制机集群域名,向所述控制机集群域名对应的负载均衡器发起HTTP长连接之前,还包括:
所述施压机基于适配于所述施压机的操作***的动态链接库,确定所述施压机互联网协议地址;
所述施压机基于目标配置文件确定所述施压机的初始服务端口号和所述控制机集群域名;
所述施压机依据所述初始服务端口号和端口号调整规则,确定所述施压机服务端口号。
8.根据权利要求7所述的方法,其特征在于,在所述施压机基于目标配置文件确定所述施压机的初始服务端口号和所述控制机集群域名之前,还包括:
所述施压机依据第一配置文件、第二配置文件和第三配置文件的设定优先级中确定所述目标配置文件。
9.一种基于分布式的性能测试装置,配置在目标控制机中,其特征在于,包括:
目标施压机确定模块,用于依据目标施压机列表确定执行性能测试任务的各个目标施压机,其中,所述目标控制机为控制机集群中与所述性能测试任务对应的控制机,所述目标施压机列表存储依据所述控制机集群的控制机集群域名与所述目标控制机建立HTTP长连接的施压机;
性能测试模块,用于根据各所述目标施压机的当前资源占用信息,向各所述目标施压机分配所述性能测试任务,以使各所述目标施压机执行所述性能测试任务。
10.一种基于分布式的性能测试***,其特征在于,包括:负载均衡器,与所述负载均衡器通信连接的控制机集群和至少一个目标施压机;其中,
所述负载均衡器,用于从所述控制机集群中确定性能测试任务对应的目标控制机;
所述目标控制机,用于依据目标施压机列表确定执行所述性能测试任务的各个目标施压机,并根据各所述目标施压机的当前资源占用信息,向各所述目标施压机分配所述性能测试任务,以使各所述目标施压机执行所述性能测试任务,其中,所述目标施压机列表存储依据所述控制机集群的控制机集群域名与所述目标控制机建立HTTP长连接的施压机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910026588.0A CN109743229A (zh) | 2019-01-11 | 2019-01-11 | 基于分布式的性能测试方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910026588.0A CN109743229A (zh) | 2019-01-11 | 2019-01-11 | 基于分布式的性能测试方法、装置和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109743229A true CN109743229A (zh) | 2019-05-10 |
Family
ID=66364508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910026588.0A Pending CN109743229A (zh) | 2019-01-11 | 2019-01-11 | 基于分布式的性能测试方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109743229A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990208A (zh) * | 2019-12-12 | 2020-04-10 | 深圳市网心科技有限公司 | 集群测试文件部署及性能测试方法、计算机设备及介质 |
CN111651329A (zh) * | 2020-06-08 | 2020-09-11 | 中国工商银行股份有限公司 | 针对应用的健康检查方法和装置、计算机***和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018162A (zh) * | 2007-01-15 | 2007-08-15 | 华为技术有限公司 | 业务处理网元的模拟测试***及方法 |
US20080072264A1 (en) * | 2006-08-02 | 2008-03-20 | Aaron Crayford | Distribution of content on a network |
CN103051500A (zh) * | 2013-01-04 | 2013-04-17 | 北京邮电大学 | 一种服务网络***的测试方法及*** |
US20130285739A1 (en) * | 2010-09-07 | 2013-10-31 | Corporation De L ' Ecole Polytechnique De Montreal | Methods, apparatus and system to support large-scale micro- systems including embedded and distributed power supply, thermal regulation, multi-distributedsensors and electrical signal propagation |
CN104077212A (zh) * | 2013-03-26 | 2014-10-01 | 阿里巴巴集团控股有限公司 | 压力测试***及方法 |
US20150018242A1 (en) * | 2012-02-21 | 2015-01-15 | Mitsubishi Gas Chemical Company, Inc. | Methods and biomarkers for detection and prognosis of cervical cancer |
-
2019
- 2019-01-11 CN CN201910026588.0A patent/CN109743229A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080072264A1 (en) * | 2006-08-02 | 2008-03-20 | Aaron Crayford | Distribution of content on a network |
CN101018162A (zh) * | 2007-01-15 | 2007-08-15 | 华为技术有限公司 | 业务处理网元的模拟测试***及方法 |
US20130285739A1 (en) * | 2010-09-07 | 2013-10-31 | Corporation De L ' Ecole Polytechnique De Montreal | Methods, apparatus and system to support large-scale micro- systems including embedded and distributed power supply, thermal regulation, multi-distributedsensors and electrical signal propagation |
US20150018242A1 (en) * | 2012-02-21 | 2015-01-15 | Mitsubishi Gas Chemical Company, Inc. | Methods and biomarkers for detection and prognosis of cervical cancer |
CN103051500A (zh) * | 2013-01-04 | 2013-04-17 | 北京邮电大学 | 一种服务网络***的测试方法及*** |
CN104077212A (zh) * | 2013-03-26 | 2014-10-01 | 阿里巴巴集团控股有限公司 | 压力测试***及方法 |
Non-Patent Citations (5)
Title |
---|
(美)IAN F. DARWIN著,张晓坤,刘基诚译.: "《Java经典实例[M]. 》", 31 December 2002 * |
364434006: "《sigar介绍与使用》", 《ITEYE》 * |
DREAMSONMA: "《分布式压力测试平台nGrinder简介》", 《简书》 * |
卡佩兰 CAPELLAN等: "《NetWare环境下Windows NT的实现[M].》", 30 June 1998 * |
牟云飞,李锐等: "《微信公众平台商业应用搭建、支付开发与运维实践》", 31 December 2018 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990208A (zh) * | 2019-12-12 | 2020-04-10 | 深圳市网心科技有限公司 | 集群测试文件部署及性能测试方法、计算机设备及介质 |
CN111651329A (zh) * | 2020-06-08 | 2020-09-11 | 中国工商银行股份有限公司 | 针对应用的健康检查方法和装置、计算机***和存储介质 |
CN111651329B (zh) * | 2020-06-08 | 2023-08-01 | 中国工商银行股份有限公司 | 针对应用的健康检查方法和装置、计算机***和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109274707B (zh) | 一种负载调度方法及装置 | |
CN107590075B (zh) | 一种软件测试方法及装置 | |
CN102882900B (zh) | 大规模服务器集群应用部署方法和大规模服务器集群 | |
CN109669758A (zh) | 服务器资源的调配方法、装置、设备及存储介质 | |
CN103391312B (zh) | 资源离线下载方法及装置 | |
CN110489126B (zh) | 编译任务的执行方法和装置、存储介质及电子装置 | |
CN102420863B (zh) | 一种快速分发文件***和方法及装置 | |
CN108933829A (zh) | 一种负载均衡方法及装置 | |
CN109743229A (zh) | 基于分布式的性能测试方法、装置和*** | |
CN106412030B (zh) | 一种选择存储资源方法、装置及*** | |
JP2012037935A (ja) | 情報処理装置 | |
CN112532687B (zh) | kubernetes负载均衡器扩容方法和*** | |
CN110795217B (zh) | 一种基于资源管理平台的任务分配方法及*** | |
CN109951566A (zh) | 一种Nginx负载均衡方法、装置、设备及可读存储介质 | |
CN106790403B (zh) | 实现移动云计算中间平台的方法及实现分布式的方法 | |
CN109542746A (zh) | 压力测试方法、***以及服务器压力测试*** | |
CN109522042A (zh) | 一种补丁更新方法、***及相关组件 | |
CN109617966A (zh) | 一种基于Openstack的云管平台部署***及方法 | |
CN105959411A (zh) | 云计算环境下基于协调的动态负载均衡分布式处理方法 | |
CN107070752A (zh) | 一种长连接容量的测试方法及测试*** | |
CN116700920A (zh) | 云原生混合部署集群资源调度方法及装置 | |
CN102217247A (zh) | 实现多Web应用请求调度的方法、装置及*** | |
CN114896025A (zh) | 服务网格的架构优化方法、装置、计算机设备和存储介质 | |
CN108076092A (zh) | Web服务器资源均衡方法及装置 | |
CN112346980B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190510 |
|
RJ01 | Rejection of invention patent application after publication |