CN107566214B - 一种性能测试方法和装置 - Google Patents
一种性能测试方法和装置 Download PDFInfo
- Publication number
- CN107566214B CN107566214B CN201710755825.8A CN201710755825A CN107566214B CN 107566214 B CN107566214 B CN 107566214B CN 201710755825 A CN201710755825 A CN 201710755825A CN 107566214 B CN107566214 B CN 107566214B
- Authority
- CN
- China
- Prior art keywords
- performance test
- pressure
- server
- task
- test task
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明实施例提供了一种性能测试方法和装置,其中,该方法包括:监测事件队列中是否出现新的事件,其中,所述事件队列用于传递起压服务器集群变化、或者性能测试任务状态变化的事件;在监测到所述事件队列中出现新的事件时,从任务队列中获取性能测试任务,并分配给起压服务器集群进行性能测试。本发明解决了现有的性能测试方式中所存在的除了需要测试方法和测试数据外,还需要自行配置起压服务器的技术问题,达到了有效利用起压服务器的资源,以高效完成多个性能测试任务的技术效果。
Description
技术领域
本发明涉及自动化测试技术领域,尤其涉及一种性能测试方法和装置。
背景技术
所谓的性能测试就是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件,从而对***的各项性能指标进行测试。目前,常用的性能测试工具(例如:tsung、loadRunner等)主要是为了解决如何实现产生请求,以生成测试报告的问题。
然而,现有的性能测试工具和测试方法主要存在如下问题:
1)对产生的测试报告没有进行持久化,从而使得用户需要自行完成多次性能测试之间的报告整理工作,无法对性能测试报告进行有效的管理,也无法对多次性能测试进行跟踪;
2)配置性能测试时,如何测试配置中的起压服务器需要用户人工指定,不支持分布式,如果要支持分布式,那么在增加机器或者减少机器时需要用户手动修改配置,操作起来十分繁琐;
3)无法同时对多个性能测试任务进行任务调度,容易造成起压服务器的资源浪费。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供一种性能测试方法和装置,以便可以有效利用起压服务器的资源,以完成多个性能测试任务。
一方面,本发明实施例提供了一种性能测试方法,包括:监测事件队列中是否出现新的事件,其中,所述事件队列用于传递起压服务器集群变化、或者性能测试任务状态变化的事件;
在监测到所述事件队列中出现新的事件时,从任务队列中获取性能测试任务,并分配给起压服务器集群进行性能测试。
可选地,在监测到所述事件队列中出现新的事件时,从任务队列中获取性能测试任务,并分配给起压服务器集群进行性能测试,包括:从任务队列中获取优先级最高的一个性能测试任务;判断起压服务器集群是否能够满足所述优先级最高的性能测试任务的需求;如果满足,则将所述优先级最高的性能测试任务分配给所述起压服务器集群进行性能测试;否则,返回监测事件队列中是否出现新的事件。
可选地,判断当前空闲的起压服务器集群是否能够满足所述优先级最高的性能测试任务的需求,包括:从性能测试任务表中获取所述优先级最高的性能测试任务的资源需求;将所述资源需求代入预先建立的协议消耗模型,确定出所述优先级最高的性能测试任务所需的服务器资源量;从起压服务器集群表中获取起压服务器集群中各个起压服务器所能提供的空闲资源量;判断所述各个起压服务器所能提供的空闲资源量之和,是否大于等于所述优先级最高的性能测试任务所需的服务器资源量;若是,则判定起压服务器集群能够满足所述优先级最高的性能测试任务的需求,否则,判定起压服务器集群不能够满足所述优先级最高的性能测试任务的需求。
可选地,配给起压服务器集群进行性能测试,包括:生成配置文件,其中,所述配置文件中携带有所述起压服务器集群中各个起压服务器所需承担的任务;将所述配置文件传送至所述起压服务器集群;所述起压服务器集群中的各个起压服务器根据所述配置文件中记录的各个起压服务器所需承担的性能测试任务,进行性能测试。
可选地,所述事件队列中的事件包括以下至少之一:起压服务器集群扩容、起压服务器集群缩容、新增性能测试任务、性能测试任务执行完成。
可选地,起压服务器上的性能测试任务执行完成之后,所述方法还包括:在文件存储***中存储性能测试结束后产生的测试结果文件。
可选地,上述方法还包括:接收起压服务器集群中各个起压服务器定时发送的心跳信息;对于在预定时间阈值内未接收到心跳信息的起压服务器,将该起压服务器的注册信息设置为失效,否则,该起压服务器的注册信息为有效;其中,注册信息为失效的起压服务器不会被分配性能测试任务;将性能测试任务分配给起压服务器集群之后,将该起压服务器集群中分配了性能测试任务的起压服务器的状态信息设置为执行,分配了性能测试任务的起压服务器上的性能测试任务执行完成之后,将所述分配了性能测试任务的起压服务器的状态信息设置为空闲。
另一方面,本发明实施例提供了一种性能测试装置,包括:监测模块,用于监测事件队列中是否出现新的事件,其中,所述事件队列用于传递起压服务器集群变化、或者性能测试任务状态变化的事件;测试模块,用于在监测到所述事件队列中出现新的事件时,从任务队列中获取性能测试任务,并分配给起压服务器集群进行性能测试。
可选地,所述测试模块包括:获取单元,用于从任务队列中获取优先级最高的一个性能测试任务;判断单元,用于判断起压服务器集群是否能够满足所述优先级最高的性能测试任务的需求;执行单元,用于在判定能够满足所述优先级最高的性能测试任务的需求的情况下,将所述优先级最高的性能测试任务分配给所述起压服务器集群进行性能测试;在确定不能够满足所述优先级最高的性能测试任务的需求的情况下,返回监测事件队列中是否出现新的事件。
可选地,判断单元包括:第一获取子单元,用于从性能测试任务表中获取所述优先级最高的性能测试任务的资源需求;确定子单元,用于将所述资源需求代入预先建立的协议消耗模型,确定出所述优先级最高的性能测试任务所需的服务器资源量;第二获取子单元,用于从起压服务器集群表中获取起压服务器集群中各个起压服务器所能提供的空闲资源量;判断子单元,用于判断所述各个起压服务器所能提供的空闲资源量之和,是否大于等于所述优先级最高的性能测试任务所需的服务器资源量;若是,则判定起压服务器集群能够满足所述优先级最高的性能测试任务的需求,否则,判定起压服务器集群不能够满足所述优先级最高的性能测试任务的需求。
上述技术方案具有如下有益效果:在确定事件队列中存在新的事件的情况下,将任务队列中的性能测试任务分配给起压服务器集群进行性能测试,从而可以实现起压服务器的自动分配与任务的自动下发,避免了现有的性能测试方式中所存在的除了需要测试方法和测试数据外,还需要自行配置起压服务器的技术问题,达到了有效利用起压服务器的资源,以高效完成多个性能测试任务的技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的性能测试方法的方法流程图;
图2是根据本发明实施例的性能测试装置的结构框图;
图3是根据本发明实施例的性能测试***的架构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了对本申请进行更为清楚的说明,下面对本申请涉及到的一些概念解释如下:
1)测试配置,可以指代性能测试中具体的测试方法、测试数据和起压服务器配置的总称,性能测试工具通常根据测试配置进行性能测试。
2)起压服务器,可以指代实际向被测试***产生并发送请求的服务器,用于使被测试的服务器获得足够大的请求量。
3)分布式平台,可以指代将数据存储、数据分析和计算等构建在由多个主机构成的集群的软件平台,在本例中,分布式平台指代部署了性能测试服务的服务器集群。
4)协议,可以指代被测试***与其调用方之间的通讯约定,对于调用方必须按照约定向被测试***发送对应格式的数据才能进行正常的通讯。
5)任务调度,在本例中可以指代由平台控制的任务生成,并按照某种算法将具体的压测任务分配给平台的具体机器进行执行,最后控制任务结束的一种行为。
6)前端机,在本例中指代暴露http服务,提供数据接口和web页面给用户的服务器。
7)队列机,在本例中指代通过读取队列中的数据执行对应操作的处理机,不直接暴露服务,而是依赖前端机向队列中写入数据。
本发明实施例中,提出了一种性能测试方法,如图1所示,可以包括如下步骤:
步骤101:监测事件队列中是否出现新的事件,其中,所述事件队列用于传递起压服务器集群变化、或者性能测试任务状态变化的事件;
其中,事件队列中存储的事件可以包括但不限于以下至少之一:起压服务器集群缩容、新增性能测试任务、性能测试任务执行完成,即,可以检测事件队列中是否有这些新的事件发生,如果有,那么就触发进行任务分配,如果没有,则继续监控,直至发现事件队列中有新的事件。
步骤102:在监测到所述事件队列中出现新的事件时,从任务队列中获取性能测试任务,并分配给起压服务器集群进行性能测试。
在实现的时候,考虑到可以根据任务队列中各个任务的优先级高低,来确定先执行哪个测试任务。即,可以是优先处理优先级高的性能测试任务。具体地,任务队列中可以包括性能测试任务的优先级和配置信息;相应的,可以从任务队列中获取优先级最高的一个性能测试任务;根据性能测试任务的配置信息判断起压服务器集群是否能够满足所述优先级最高的性能测试任务的需求;如果满足,则将优先级最高的性能测试任务分配给起压服务器集群进行性能测试;否则,返回监测事件队列中是否出现新的事件。即,先处理优先级最高的任务,但是需要在当前起压服务器集群中的空闲资源量能够满足该性能测试任务需求的情况下。如果无法满足,则可以等待下一次触发时机,再重复执行一次判断和分配的过程,以实现性能测试任务的分配。
为了实现对任务信息和起压服务器信息的获取,可以设置性能测试任务表和起压服务器集群表。其中,所述性能测试任务表中存储有性能测试任务的信息,具体可以包括:自愿需求、提交时间、提交人、配置文件名、测试报告名、报告读权限;所述起压服务器集群表中存储有起压服务器集群中各起压服务器的信息,具体可以包括:空闲的资源量(即,当前所能提供的资源量)、起压服务器的IP地址、用于指示起压服务器是否正常工作的注册信息、用于指示起压服务器是否执行性能测试任务的状态信息。
基于此,在实现的时候,可以按照如下步骤判断当前空闲的起压服务器集群是否能够满足所述优先级最高的性能测试任务的需求:
S1:从性能测试任务表中获取所述优先级最高的性能测试任务的资源需求;
S2:将所述资源需求代入预先建立的协议消耗模型,确定出所述优先级最高的性能测试任务所需的服务器资源量;
S3:从起压服务器集群表中获取起压服务器集群中各个起压服务器所能提供的空闲资源量;
S4:判断所述各个起压服务器所能提供的空闲资源量之和,是否大于等于所述优先级最高的性能测试任务所需的服务器资源量;若是,则判定起压服务器集群能够满足所述优先级最高的性能测试任务的需求,否则,判定起压服务器集群不能够满足所述优先级最高的性能测试任务的需求。
为了实现对测试结果的持久化,在起压服务器进行性能测试之后,可以在文件存储***中存储性能测试结束后产生的测试结果文件,从而实现对性能测试报告的有效管理。
考虑到在实现的时候,有时候有些起压服务器会掉线或者是出现故障,为了可以即使识别这种故障,以避免向无法进行正常性能测试的起压服务器分配性能测试任务,可以设置要求每个起压服务器定期发送心跳信息,对于测试控制***或者平台而言,可以接收各个起压服务器定时发送的心跳信息;对于在预定时间阈值内未接收到心跳信息的起压服务器,将该起压服务器的注册信息设置为失效,否则,该起压服务器的注册信息为有效;其中,注册信息为失效的起压服务器不会被分配性能测试任务。
对于上述的起压服务器而而言,将被分配性能测试任务的起压服务器的状态可以设置为执行中,将任务已经完成的起压服务器的状态可以设置为空闲。
在将测试任务分配给起压服务器集群进行性能测试的时候,可以是先生成配置文件,其中,配置文件中可以携带有所述起压服务器集群中各个起压服务器所需承担的任务;然后将配置文件传送至起压服务器集群,使得起压服务器集群可以根据配置文件,进行性能测试。
基于同一发明构思,本发明实施例中还提供了一种性能测试装置,如下面的实施例所述。由于性能测试装置解决问题的原理与性能测试方法相似,因此性能测试装置的实施可以参见性能测试方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图2是本发明实施例的性能测试装置的一种结构框图,如图2所示,可以包括:监测模块201和测试模块202,下面对该结构进行说明。
监测模块201,可以用于监测事件队列中是否出现新的事件,其中,所述事件队列用于传递起压服务器集群变化、或者性能测试任务状态变化的事件;
测试模块202,可以用于在监测到所述事件队列中出现新的事件时,从任务队列中获取性能测试任务,并分配给起压服务器集群进行性能测试。
在一个实施方式中,测试模块202可以包括:获取单元,用于从任务队列中获取优先级最高的一个性能测试任务;判断单元,用于判断起压服务器集群是否能够满足所述优先级最高的性能测试任务的需求;执行单元,用于在判定能够满足所述优先级最高的性能测试任务的需求的情况下,将所述优先级最高的性能测试任务分配给所述起压服务器集群进行性能测试;在判定不能够满足所述优先级最高的性能测试任务的需求的情况下,返回监测事件队列中是否出现新的事件。
在一个实施方式中,判断单元可以包括:第一获取子单元,用于从性能测试任务表中获取所述优先级最高的性能测试任务的资源需求;确定子单元,用于将所述资源需求代入预先建立的协议消耗模型,确定出所述优先级最高的性能测试任务所需的服务器资源量;第二获取子单元,用于从起压服务器集群表中获取起压服务器集群中各个起压服务器所能提供的空闲资源量;判断子单元,用于判断所述各个起压服务器所能提供的空闲资源量之和,是否大于等于所述优先级最高的性能测试任务所需的服务器资源量;若是,则判定起压服务器集群能够满足所述优先级最高的性能测试任务的需求,否则,判定起压服务器集群不能够满足所述优先级最高的性能测试任务的需求。
在一个实施方式中,测试模块202可以生成配置文件,其中,所述配置文件中携带有所述起压服务器集群中各个起压服务器所需承担的任务;将所述配置文件传送至所述起压服务器集群;所述起压服务器集群根据所述配置文件,进行性能测试。
在一个实施方式中,事件队列中的事件可以包括但不限于以下至少之一:起压服务器集群扩容、起压服务器集群缩容、新增性能测试任务、性能测试任务执行完成。
在一个实施方式中,上述装置还可以包括:存储模块,用于起压服务器上的性能测试任务执行完成之后,在文件存储***中存储性能测试结束后产生的测试结果文件。
在一个实施方式中,上述装置还可以包括:接收模块,用于接收起压服务器集群中各个起压服务器定时发送的心跳信息;第一设置模块,用于对于在预定时间阈值内未接收到心跳信息的起压服务器,将该起压服务器的注册信息设置为失效,否则,该起压服务器的注册信息为有效;其中,注册信息为失效的起压服务器不会被分配性能测试任务;第二设置模块,用于将性能测试任务分配给起压服务器之后,将相应起压服务器的状态信息设置为执行,起压服务器上的性能测试任务执行完成之后,将相应起压服务器的状态信息设置为空闲。
在本发明实施例中还提供了一种性能测试***,可以包括:调度***前端机、调度***队列机和起压服务器,其中:
调度***前端机,用于提供创建性能测试任务的接口、起压服务器上任务完成后进行回调的接口、查看报表的接口;
调度***队列机,用于根据事件队列和任务队列,为起压服务器分配任务队列中的性能测试任务,其中,所述事件队列用于传递起压服务器集群变化、或者性能测试任务状态变化的事件;
起压服务器,用于执行分配的性能测试任务。
下面结合一个具体实施例对上述方法进行说明,然而值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
在本例中提供了一种性能测试***,可以如图3所示,包括:调度***前端机、调度***队列机、事件队列、任务队列、mysql存储、文件存储和起压服务器,下面对各个组成部分进行说明如下:
1)调度***前端机:用于暴露http接口、提供增删节点的接口、创建任务的接口、查看报表的接口以及起压服务器上任务完成后进行回调等服务。
2)事件队列:用于传递起压服务器的集群扩缩容、新增任务、任务执行完成等事件。
3)任务队列:用于传递性能测试任务,可以包括:任务的优先级和配置信息等。
4)调度***队列机:队列机从事件队列中读取事件,当出现起压服务器集群扩容、新增任务、任务执行完成等事件时,触发一次任务调度,任务调度从任务队列中获取优先级最高的一个任务,再根据当前空余服务器的情况和任务具体的配置,判断当前起压服务器集群空余的资源否能满足性能测试任务的需求,如果不能满足,则等待到下一次事件队列中出现新的事件,如果可以满足,则分配起压服务器集群该任务,并将任务相关的配置文件从调度***下发给起压服务器集群。
5)mysql存储:mysql可以包含性能测试任务表和起压服务器集群表这两张数据库表。其中,性能测试任务表用于存储性能测试任务的信息,例如:提交时间、提交人、配置文件名、测试报告名、报告读权限等属性;起压服务器集群表用于存储起压服务器集群的信息,例如:服务器的ip、服务器当前是否正常工作、当前是否在执行性能测试任务等。
6)文件存储:用于存储性能***根据用户对性能测试的配置产生的配置文件以及性能测试结束后产生的测试结果文件。其中,配置文件中存储有为起压服务器配置的各种处理信息,起压服务器根据配置文件,进行性能测试。
7)起压服务器,起压服务器可以定时向性能测试***发送心跳,当连续3分钟没有心跳时,该起压服务器会被标注为失效,失效的起压服务器不会被分配性能测试任务。未失效且未执行性能测试任务的起压服务器,性能测试***会根据性能测试配置进行分配,然后将任务下发给起压服务器,并将起压服务器状态置为执行中。任务完成后,起压服务器可以通过回调接口向性能测试***返回性能测试结果,并将该起压服务器的状态置回空闲。
在上例中,通过将测试的数据部分和起压服务器资源进行分离,起压服务器根据性能测试的协议和性能参数,实现起压服务器的自动分配与任务的自动下发,避免了传统性能测试工具在配置性能测试时除了需要测试方法和测试数据外,还需要自行配置起压服务器的问题,降低了用户的使用成本。本例中还提供了多任务的调度功能,支持多个任务并发完成,结合起压服务器的自动配置功能,充分发挥了起压服务器资源的性能,减少了用户的机器成本,并且能够同时对用户的所有性能测试的测试内容和测试报告进行持久化,为用户提供的有效的测试数据管理功能。通过将测试配置中的测试方法和测试数据同起压服务器配置之间的分离,实现了起压服务器的自动配置,并通过多任务的调度功能,提高了起压服务器资源的使用率,降低了用户的使用成本和机器成本。
在上例中,在确定事件队列中存在新的事件的情况下,将任务队列中的性能测试任务分配给当前空余的起压服务器进行性能测试,从而可以实现起压服务器的自动分配与任务的自动下发,避免了现有的性能测试方式中所存在的除了需要测试方法和测试数据外,还需要自行配置起压服务器的技术问题,达到了有效利用起压服务器的资源,以高效完成多个性能测试任务的技术效果。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个***的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种性能测试方法,其特征在于,包括:
监测事件队列中是否出现新的事件,其中,所述事件队列用于传递起压服务器集群变化、或者性能测试任务状态变化的事件;
在监测到所述事件队列中出现新的事件时,从任务队列中获取性能测试任务,并分配给起压服务器集群进行性能测试;
其中,在监测到所述事件队列中出现新的事件时,从任务队列中获取性能测试任务,并分配给起压服务器集群进行性能测试,包括:
从任务队列中获取优先级最高的一个性能测试任务;
判断起压服务器集群是否能够满足所述优先级最高的性能测试任务的需求;
如果满足,则将所述优先级最高的性能测试任务分配给所述起压服务器集群进行性能测试;否则,返回监测事件队列中是否出现新的事件;
其中,所述判断起压服务器集群是否能够满足所述优先级最高的性能测试任务的需求,包括:
从性能测试任务表中获取所述优先级最高的性能测试任务的资源需求;
将所述资源需求代入预先建立的协议消耗模型,确定出所述优先级最高的性能测试任务所需的服务器资源量;
从起压服务器集群表中获取起压服务器集群中各个起压服务器所能提供的空闲资源量;
判断所述各个起压服务器所能提供的空闲资源量之和,是否大于等于所述优先级最高的性能测试任务所需的服务器资源量;若是,则判定起压服务器集群能够满足所述优先级最高的性能测试任务的需求,否则,判定起压服务器集群不能够满足所述优先级最高的性能测试任务的需求。
2.根据权利要求1所述的方法,其特征在于,分配给起压服务器集群进行性能测试,包括:
生成配置文件,其中,所述配置文件中记录所述起压服务器集群中各个起压服务器所需承担的性能测试任务;
将所述配置文件传送至所述起压服务器集群;
所述起压服务器集群中的各个起压服务器根据所述配置文件中记录的各个起压服务器所需承担的性能测试任务,进行性能测试。
3.根据权利要求1所述的方法,其特征在于,所述事件队列中的事件包括以下至少之一:起压服务器集群扩容、起压服务器集群缩容、新增性能测试任务、性能测试任务执行完成。
4.根据权利要求1所述的方法,其特征在于,起压服务器集群上的性能测试任务执行完成之后,所述方法还包括:
在文件存储***中存储性能测试结束后产生的测试结果文件。
5.根据权利要求4所述的方法,其特征在于,还包括:
接收起压服务器集群中各个起压服务器定时发送的心跳信息;
对于在预定时间阈值内未接收到心跳信息的起压服务器,将该起压服务器的注册信息设置为失效,否则,该起压服务器的注册信息为有效;其中,注册信息为失效的起压服务器不会被分配性能测试任务;
将性能测试任务分配给起压服务器集群之后,将该起压服务器集群中分配了性能测试任务的起压服务器的状态信息设置为执行,分配了性能测试任务的起压服务器上的性能测试任务执行完成之后,将所述分配了性能测试任务的起压服务器的状态信息设置为空闲。
6.一种性能测试装置,其特征在于,包括:
监测模块,用于监测事件队列中是否出现新的事件,其中,所述事件队列用于传递起压服务器集群变化、或者性能测试任务状态变化的事件;
测试模块,用于在监测到所述事件队列中出现新的事件时,从任务队列中获取性能测试任务,并分配给起压服务器集群进行性能测试;
其中,所述测试模块包括:
获取单元,用于从任务队列中获取优先级最高的一个性能测试任务;
判断单元,用于判断起压服务器集群是否能够满足所述优先级最高的性能测试任务的需求;
执行单元,用于在判定能够满足所述优先级最高的性能测试任务的需求的情况下,将所述优先级最高的性能测试任务分配给所述起压服务器集群进行性能测试;在判定不能够满足所述优先级最高的性能测试任务的需求的情况下,返回监测事件队列中是否出现新的事件;
其中,所述判断单元包括:
第一获取子单元,用于从性能测试任务表中获取所述优先级最高的性能测试任务的资源需求;
确定子单元,用于将所述资源需求代入预先建立的协议消耗模型,确定出所述优先级最高的性能测试任务所需的服务器资源量;
第二获取子单元,用于从起压服务器集群表中获取起压服务器集群中各个起压服务器所能提供的空闲资源量;
判断子单元,用于判断所述各个起压服务器所能提供的空闲资源量之和,是否大于等于所述优先级最高的性能测试任务所需的服务器资源量;若是,则判定起压服务器集群能够满足所述优先级最高的性能测试任务的需求,否则,判定起压服务器集群不能够满足所述优先级最高的性能测试任务的需求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710755825.8A CN107566214B (zh) | 2017-08-29 | 2017-08-29 | 一种性能测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710755825.8A CN107566214B (zh) | 2017-08-29 | 2017-08-29 | 一种性能测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107566214A CN107566214A (zh) | 2018-01-09 |
CN107566214B true CN107566214B (zh) | 2020-10-30 |
Family
ID=60977335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710755825.8A Active CN107566214B (zh) | 2017-08-29 | 2017-08-29 | 一种性能测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107566214B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442508B (zh) * | 2018-05-03 | 2023-05-23 | 阿里巴巴集团控股有限公司 | 测试任务处理方法、装置、设备和介质 |
CN109800137A (zh) * | 2018-12-06 | 2019-05-24 | 珠海西山居互动娱乐科技有限公司 | 一种服务器性能测试方法和*** |
CN110321226A (zh) * | 2019-07-09 | 2019-10-11 | 西安点告网络科技有限公司 | 主机的自动扩缩容方法、装置、主机及存储介质 |
CN111193634B (zh) * | 2019-09-12 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 一种压力测试方法、装置和计算机可读存储介质 |
CN112398707B (zh) * | 2020-11-03 | 2022-08-30 | 平安普惠企业管理有限公司 | 分布式自动化测试管理方法、装置、设备及存储介质 |
CN113608842B (zh) * | 2021-09-30 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种容器集群和组件的管理方法、装置、***及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678133A (zh) * | 2013-12-18 | 2014-03-26 | 中国科学院深圳先进技术研究院 | 一种用于应用软件云测试的任务调度*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6879811B1 (en) * | 2001-12-31 | 2005-04-12 | Bellsouth Intellectual Property Corp. | System and method for providing cellular telephone service during cluster testing |
CN105786696B (zh) * | 2014-12-26 | 2018-10-09 | 阿里巴巴集团控股有限公司 | 一种测试方法及装置 |
CN105404580B (zh) * | 2015-10-23 | 2020-07-24 | 深圳索信达数据技术有限公司 | 分布式压力测试***和方法 |
CN106897207A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 用户界面测试方法与装置 |
-
2017
- 2017-08-29 CN CN201710755825.8A patent/CN107566214B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678133A (zh) * | 2013-12-18 | 2014-03-26 | 中国科学院深圳先进技术研究院 | 一种用于应用软件云测试的任务调度*** |
Also Published As
Publication number | Publication date |
---|---|
CN107566214A (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107566214B (zh) | 一种性能测试方法和装置 | |
CN109634728B (zh) | 作业调度方法、装置、终端设备及可读存储介质 | |
JP5474982B2 (ja) | 選択的に軽減を使用してエラーを低減するメモリー管理技術の有効性の評価 | |
CN110311831B (zh) | 基于容器云的***资源监控方法及相关设备 | |
CN101510167B (zh) | 一种插件运行的方法、装置及*** | |
US20190197028A1 (en) | Database management system with database hibernation and bursting | |
CN111190810A (zh) | 执行测试任务的方法、装置、服务器和存储介质 | |
CN109510878B (zh) | 一种长连接会话保持方法和装置 | |
CN113067875B (zh) | 基于微服务网关动态流控的访问方法和装置以及设备 | |
CN108733545B (zh) | 一种压力测试方法及装置 | |
JP5694170B2 (ja) | 選択的に軽減を使用してエラーを低減するメモリー管理技術 | |
CN110247812A (zh) | 一种多集群管理方法、装置、***及相关组件 | |
CN109542627A (zh) | 节点切换方法、装置、管理机、节点设备和分布式*** | |
CN109597764A (zh) | 一种目录配额的测试方法及相关装置 | |
US20220206836A1 (en) | Method and Apparatus for Processing Virtual Machine Migration, Method and Apparatus for Generating Virtual Machine Migration Strategy, Device and Storage Medium | |
JP6279816B2 (ja) | ストレージ監視システムおよびその監視方法 | |
CN113239059B (zh) | 一种分布式锁的切换方法、装置、服务器和存储介质 | |
CN110708345A (zh) | 云盘升级方法、调度方法及云主机、调度装置和*** | |
KR101725192B1 (ko) | 자원 템플릿 관리를 통한 자원 정보 관리 및 데이터 저장 시스템 | |
CN114238019A (zh) | 一种硬盘显示方法、装置、设备及介质 | |
CN109144788B (zh) | 一种重建osd的方法、装置及*** | |
CN110825529B (zh) | 业务消息管理***及方法 | |
CN109995617A (zh) | 主机管理特性的自动化测试方法、装置、设备及存储介质 | |
EP4057582B1 (en) | Device management method and apparatus | |
CN112087336B (zh) | 一种虚拟ip服务***的部署、管理方法、装置及电子设备 |
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 |