CN111404769B - 一种性能测试方法、装置、服务器及存储介质 - Google Patents
一种性能测试方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN111404769B CN111404769B CN202010131629.5A CN202010131629A CN111404769B CN 111404769 B CN111404769 B CN 111404769B CN 202010131629 A CN202010131629 A CN 202010131629A CN 111404769 B CN111404769 B CN 111404769B
- Authority
- CN
- China
- Prior art keywords
- server
- slave node
- node server
- program
- pressure application
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开是关于一种性能测试方法、装置、服务器及存储介质,该方法包括:从所有候选服务器中选择多个从节点服务器;分别向每一个从节点服务器发送施压程序;在接收到每一个从节点服务器上部署施压程序成功的情况下,分别向每一个从节点服务器发送施压程序执行指令;在每一个从节点服务器上施压程序均执行完成的情况下,基于查询请求处理情况信息,生成服务端程序的性能测试报告信息。实现了针对任意一个服务端程序的任意一次性能测试,均可以由主节点服务器选择从节点服务器,主节点服务器控制施压程序的分发、施压程序在从节点服务器上的部署、施压程序在从节点服务器上的等过程,从而,可以对任意一个服务端程序进行分布式的性能测试。
Description
技术领域
本公开涉及运维领域,具体涉及性能测试方法、装置、服务器及存储介质。
背景技术
对服务端程序的性能即服务端程序的处理查询请求的能力进行测试是在服务端程序提供相应的服务之前的必要环节。在对服务端程序的性能进行测试时,需要在相应的服务器上部署服务端程序和在相应的服务器上发送用于对服务端程序的性能进行测试的查询请求的施压程序。
在需要对大量的服务端程序进行性能测试情况下,对每一个服务端程序的性能测试过程中,均涉及施压程序的分发、施压程序的部署、施压程序的执行等过程,如何控制每一个服务端程序的性能测试过程中的施压程序的分发、施压程序的部署、施压程序的执行等,以完成对服务端程序的性能测试成为一个亟待解决的问题。
发明内容
为克服相关技术中存在的问题,本公开发布一种性能测试方法、装置、服务器及存储介质。
根据本公开实施例的第一方面,发布一种性能测试方法,应用于主节点服务器,包括:
从所有候选服务器中选择多个用于对待测试的服务端程序进行性能测试的从节点服务器;
分别向每一个从节点服务器发送施压程序;
在接收到的每一个从节点服务器发送的部署状态信息均指示在从节点服务器上部署施压程序成功的情况下,分别向每一个从节点服务器发送施压程序执行指令,其中,施压程序在执行过程中向所述待测试的服务端程序发送用于性能测试的查询请求;
在接收到的每一个从节点服务器发送的执行状态信息均指示施压程序执行完成的情况下,从所述待测试的服务端程序部署在的服务器获取查询请求处理情况信息,以及基于所述查询请求处理情况信息,生成所述待测试的服务端程序的性能测试报告信息。
在一些实施例中,从所有候选服务器中选择多个用于对待测试的服务端程序进行性能测试的从节点服务器包括:
基于待测试的服务端程序的目标每秒查询数和每一个候选服务器的每秒查询数,从所有候选服务器中选择多个用于对待测试的服务端程序进行性能测试的从节点服务器,其中,候选服务器的每秒查询数为施压程序利用候选服务器的当前可以用于性能测试的资源每秒最多发送的用于性能测试的查询请求的数量,所述目标每秒查询数为在测试待测试的服务端程序每秒可以处理的用于性能测试的查询请求时的测试目标。
在一些实施例中,还包括:
在接收到至少一个从节点服务器发送的指示在从节点服务器上部署施压程序失败的部署状态信息的情况下,分别向每一个从节点服务器发送施压程序删除指令,以触发每一个从节点服务器删除位于从节点服务器上的施压程序。
在一些实施例中,还包括:
在接收到至少一个从节点服务器发送的指示在施压程序的执行过程中出现异常情况的执行状态信息的情况下,向每一个从节点服务器发送施压程序停止执行指令和施压程序删除指令,以触发每一个从节点服务器停止执行部署在从节点服务器上的施压程序并且删除部署在从节点服务器上的施压程序。
在一些实施例中,所述主节点服务器与每一个从节点服务器通过持续集成工具jenkins进行交互。
根据本公开实施例的第二方面,发布一种性能测试装置,所述装置安装在主节点服务器上,包括:
选择模块,被配置为从所有候选服务器中选择多个用于对待测试的服务端程序进行性能测试的从节点服务器;
施压程序发送模块,被配置为分别向每一个从节点服务器发送施压程序;
指令发送模块,被配置为在接收到的每一个从节点服务器发送的部署状态信息均指示在从节点服务器上部署施压程序成功的情况下,分别向每一个从节点服务器发送施压程序执行指令,其中,施压程序在执行过程中向所述待测试的服务端程序发送用于性能测试的查询请求;
生成模块,被配置为在接收到的每一个从节点服务器发送的执行状态信息均指示施压程序执行完成的情况下,从所述待测试的服务端程序部署在的服务器获取查询请求处理情况信息,以及基于所述查询请求处理情况信息,生成所述待测试的服务端程序的性能测试报告信息。
在一些实施例中,选择模块进一步被配置为:基于待测试的服务端程序的目标每秒查询数和每一个候选服务器的每秒查询数,从所有候选服务器中选择多个用于对待测试的服务端程序进行性能测试的从节点服务器,其中,候选服务器的每秒查询数为施压程序利用候选服务器的当前可以用于性能测试的资源每秒最多发送的用于性能测试的查询请求的数量,所述目标每秒查询数为在测试待测试的服务端程序每秒可以处理的用于性能测试的查询请求时的测试目标。
在一些实施例中,所述装置还包括:
部署异常处理模块,被配置为在接收到至少一个从节点服务器发送的指示在从节点服务器上部署施压程序失败的部署状态信息的情况下,分别向每一个从节点服务器发送施压程序删除指令,以触发每一个从节点服务器删除位于从节点服务器上的施压程序。
在一些实施例中,所述装置还包括:
程序执行异常处理模块,被配置为在接收到至少一个从节点服务器发送的指示在施压程序的执行过程中出现异常情况的执行状态信息的情况下,向每一个从节点服务器发送施压程序停止执行指令和施压程序删除指令,以触发每一个从节点服务器停止执行部署在从节点服务器上的施压程序并且删除部署在从节点服务器上的施压程序。
在一些实施例中,所述主节点服务器与每一个从节点服务器通过持续集成工具jenkins进行交互。
本公开的实施例发布的技术方案可以包括以下有益效果:
在针对任意一个待测试的服务端程序的任意一次性能测试,均可以由主节点服务器选择用于对待测试的服务端程序的从节点服务器,主节点服务器控制施压程序的分发、施压程序在从节点服务器上的部署、施压程序在从节点服务器上的执行等过程,完成针对任意一个待测试的服务端程序的任意一次性能测试,从而,可以针对任意一个待测试的服务端程序进行分布式的性能测试,适用于对大量的服务端程序进行性能测试。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种性能测试方法的一个实施例的流程图;
图2是对服务端程序进行性能测试的一个效果示意图;
图3是根据一示例性实施例示出的一种性能测试装置的结构框图;
图4是根据一示例性实施例示出的一种服务器的结构框图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1是根据一示例性实施例示出的性能测试方法的一个实施例的流程图。该方法包括以下步骤:
步骤101,主节点服务器从所有候选服务器中选择多个用于对待测试的服务端程序进行性能测试的从节点服务器。
在本公开中,对于每一个待测试的服务端程序的每一次性能测试,均可以通过执行步骤101-104来进行性能测试。
在本公开中,可以对每一个待测试的服务端程序同时通过执行步骤101-104来同时对每一个待测试的服务端程序进行性能测试。因此,步骤101-步骤104仅为示例性地说明对一个待测试的服务端程序进行一次性能测试的过程。
主节点服务器可以运行有主节点控制程序,具体可以由主节点控制程序执行步骤101-步骤104。
应理解,从节点服务器并不特指某一个候选服务器,从节点服务器并不特定用于测试某一个特定待测试的服务端程序。在对每一个待测试的服务端程序的每一次性能测试中,均从所有候选服务器中选择相应的作为从节点服务器的候选服务器。
在本公开中,候选服务器可以为用于对待测试的服务端程序进行性能测试的服务器集群中的当前没有参与性能测试的服务器或者用于对待测试的服务端程序进行性能测试的服务器集群中的当前具有可以用于性能测试的资源的服务器。
在本公开中,主节点服务器为用于对待测试的服务端程序进行性能测试的服务器集群中的用于对每一次性能测试中选择的从节点服务器进行控制的服务器。
在本公开中,主节点服务器可以根据对待测试的服务端程序的测试目的,从所有候选服务器中选择的多个从节点服务器。
例如,测试目的为:测试待测试的服务端程序在预设时长内是否可以成功地处理预设数量的查询请求,则多个从节点服务器应该满足以下条件:在该预设时长内,每一个在从节点服务器上部署的施压程序利用从节点服务器上的当前可以用于性能测试的资源发送的查询请求的数量之和达到该预设数量。主节点服务器可以根据该测试目的,从所有候选服务器中选择满足上述条件的多个候选服务器,将满足上述条件的多个候选服务器作为用于对待测试的服务端程序进行性能测试的多个从节点服务器。
例如,测试目的为每个单位时间是否可以成功地处理预设数量的查询请求,直至累计测试时长达到预设时长。例如,单位时间为一分钟。则多个从节点服务器应该满足以下条件:在性能测试过程中的每一个单位时间,每一个在从节点服务器上部署的施压程序利用从节点服务器上的当前可以用于性能测试的资源发送的查询请求的数量之和达到该预设数量。主节点服务器可以根据该测试目的,从所有候选服务器中选择满足上述条件的多个候选服务器,将满足上述条件的多个候选服务器作为用于对待测试的服务端程序进行性能测试的多个从节点服务器。
在一些实施例中,从所有候选服务器中选择多个用于对待测试的服务端程序进行性能测试的从节点服务器包括:基于待测试的服务端程序的目标每秒查询数(Queries PerSecond,简称QPS)和每一个候选服务器的每秒查询数,从所有候选服务器中选择多个用于对待测试的服务端程序进行性能测试的从节点服务器,其中,候选服务器的每秒查询数为施压程序利用候选服务器的当前可以用于性能测试的资源每秒最多发送的用于性能测试的查询请求的数量,所述目标每秒查询数为在测试待测试的服务端程序每秒可以处理的用于性能测试的查询请求时的测试目标。
待测试的服务端程序的目标每秒查询数可以为多个用于对待测试的服务端程序进行性能测试的从节点服务器的每秒查询数之和。
对待测试的服务端程序的测试目的可以为:测试待测试的服务端程序是否可以在每秒处理目标每秒查询数个查询请求,直至累计测试时长达到预设时长。
例如,需要测试一个待测试的服务端程序是否可以在每秒处理6万个查询请求,待测试的服务端程序的目标每秒查询数为6万。主节点服务器可以从所有候选服务器中选择3个满足以下条件的候选服务器作为从节点服务器:该候选服务器上的当前可以用于性能测试的资源可以使得在该候选服务器上部署的施压程序在利用该当前可以用于性能测试的资源发送查询请求时,可以每秒发送2万个查询请求。主节点服务器选择3个满足上述条件的从节点服务器中的每一个从节点服务器的每秒查询数均为2万。
在一些实施例中,主节点服务器与每一个从节点服务器通过持续集成工具jenkins进行交互。
jenkins是开源的、提供友好操作界面的持续集成(CI)工具,利用jenkins可以进行持续集成、交付、部署(软件/代码的编译、打包、部署)。
在本公开中,主节点服务器与每一个从节点服务器可以通过jenkins进行交互即传输数据,主节点服务器可以利用jenkins向每一个从节点服务器发送施压程序、相关指令,每一个从节点服务器均可以利用jenkins部署施压程序、向主节点服务器发送相关指令。
主节点服务器可以称之为jenkins主节点服务器。从节点服务器可以称之为jenkins从节点服务器。
步骤102,主节点服务器分别向每一个从节点服务器发送施压程序。
在本公开中,主节点服务器在从所有候选服务器中选择多个对待测试的服务端程序进行性能测试的从节点服务器之后,主节点服务器可以分别向每一个从节点服务器发送施压程序。
例如,从所有候选服务器中选择3个从节点服务器,主节点服务器可以分别向3个从节点服务器中的每一个从节点服务器发送施压程序。
步骤103,主节点服务器在接收到的每一个从节点服务器发送的部署状态信息均指示部署施压程序成功的情况下,分别向每一个从节点服务器发送施压程序执行指令。
在本公开中,每一个部署状态信息指示在从节点服务器上部署施压程序成功或在从节点服务器上部署施压程序失败。
在本公开中,所有候选服务器中的每一个候选服务器均运行有用于接收主节点服务器发送的施压程序并且部署施压程序的程序。
对于每一个从节点服务器,该从节点服务器上的用于接收施压程序并且部署施压程序的程序在接收到主节点服务器发送的施压程序之后,对施压程序进行部署。
对于每一个从节点服务器,若在该从节点服务器上部署施压程序成功,则生成指示在从节点服务器上部署施压程序成功的部署状态信息,该从节点服务器向主节点服务器发送指示在从节点服务器上部署施压程序成功的部署状态信息。若在该从节点服务器上部署施压程序失败,则指示在从节点服务器上部署施压程序失败的部署状态信息,该从节点服务器向主节点服务器发送指示在从节点服务器上部署施压程序失败的部署状态信息。
在本公开中,主节点服务器在接收到的每一个从节点服务器发送的部署状态信息均指示在从节点服务器上部署施压程序成功的情况下,分别向每一个从节点服务器发送施压程序执行指令。
在本公开中,对于每一个从节点服务器,该从节点服务器响应于施压程序执行指令,执行部署在该从节点服务器上的施压程序。
例如,对待测试的服务端程序的测试目的可以为:测试待测试的服务端程序是否可以在每秒处理6万个查询请求,直至累计测试时长达到预设时长。从所有候选服务器选择3个满足以下条件的从节点服务器:该从节点服务器上的当前可以用于性能测试的资源可以使得在该从节点服务器上部署的施压程序在利用该当前可以用于性能测试的资源发送查询请求时,可以每秒向待测试的服务端程序发送2万个查询请求。
主节点服务器向3个从节点服务器中的每一个从节点服务器发送施压程序。主节点服务器在接收到的每一个从节点服务器发送的指示在从节点服务器上部署施压程序成功的部署状态信息的情况下,分别向3个从节点服务器中的每一个从节点服务器发送施压程序执行指令。在对待测试的服务端程序进行测试期间,3个从节点服务器中的每一个从节点服务器上的施压程序均每秒向待测试的服务端程序发送2万个查询请求,直至累计测试时长达到预设时长,在累计测试时长达到预设时长的时刻,3个从节点服务器中的每一个从节点服务器上的施压程序均执行完成,从而,完成一次对待测试的服务端程序的性能测试。
在本公开中,从节点服务器上可以运行有Gatling工具。Gatling工具基于Scala开发的高性能服务器性能测试工具,可以用于对服务器进行负载测试,并分析和测量服务器的各种性能指标。部署在从节点服务器上的施压程序可以利用Gatling工具向待测试的服务端程序发送查询请求。
在一些实施例中,还包括:在接收到至少一个从节点服务器发送的指示在从节点服务器上部署施压程序失败的部署状态信息的情况下,分别向每一个从节点服务器发送施压程序删除指令,以触发每一个从节点服务器删除位于从节点服务器上的施压程序。
对于每一个从节点服务器,该从节点服务器在部署施压程序失败的情况下,在该从节点服务器上生成指示在从节点服务器上部署施压程序失败的部署状态信息,该从节点服务器向主节点服务器发送指示在从节点服务器上部署施压程序失败的部署状态信息。主节点服务器在接收到至少一个从节点服务器发送的指示在从节点服务器上部署施压程序失败的部署状态信息的情况下,可以确定在至少一个从节点服务器上部署施压程序失败,主节点服务器可以向每一个从节点服务器发送施压程序删除指令。对于每一个从节点服务器,从节点服务器在接收到施压程序删除指令之后,可以响应于施压程序删除指令,删除位于该从节点服务器上的施压程序。
步骤104,主节点服务器在每一个从节点服务器发送的执行状态信息均指示施压程序执行完成的情况下,基于查询请求处理情况信息,生成性能测试报告信息。
在本公开中,对于每一个从节点服务器,主节点服务器接收到的该从节点服务器发送的执行状态信息指示在该从节点服务器上部署的施压程序执行完成或在该从节点服务器上部署的施压程序的执行过程中出现异常情况。
对于每一个从节点服务器,若在该从节点服务器上部署的施压程序的执行过程中未出现异常情况,则在该从节点服务器上部署的施压程序执行完成,在该从节点服务器上部署的施压程序的执行过程正常结束。同时,在该从节点服务器上生成指示施压程序执行完成的执行状态信息,该从节点服务器向主节点服务器发送指示施压程序执行完成的执行状态信息。
从节点服务器上可以运行用于检测在施压程序的执行过程中是否出现异常情况的程序或者施压程序可以包括用于检测在施压程序的执行过程中是否出现异常情况的指令。对于每一个从节点服务器,若在该从节点服务器上部署的施压程序的执行过程中出现异常情况,在该从节点服务器上部署的施压程序无法执行完成。同时,在该从节点服务器上生成指示在施压程序的执行过程中出现异常情况的执行状态信息,该从节点服务器向主节点服务器发送指示在施压程序的执行过程中出现异常情况的执行状态信息。
例如,主节点服务器为主节点服务器,从节点服务器为从节点服务器。对待测试的服务端程序的测试目的可以为:测试待测试的服务端程序是否可以在每秒处理6万个查询请求,直至累计测试时长达到预设时长。从所有候选服务器选择3个满足以下条件的从节点服务器:该从节点服务器上的当前可以用于性能测试的资源可以使得在该从节点服务器上部署的施压程序在利用该当前可以用于性能测试的资源发送查询请求时,可以每秒向待测试的服务端程序发送2万个查询请求。
在对待测试的服务端程序进行测试期间,每一个从节点服务器上的施压程序均每秒向待测试的服务端程序发送2万个查询请求。
若至少一个从节点服务器上的施压程序在执行过程中出现异常情况,该至少一个从节点服务器中的每一个从节点服务器向主节点服务器发送指示在施压程序的执行过程中出现异常情况的执行状态信息。
若累计测试时长达到预设时长,每一个从节点服务器上的施压程序在执行过程中均未出现异常情况,每一个从节点服务器上的施压程序的执行过程的总时长均为该预设时长,则完成一次对待测试的服务端程序的性能测试,每一个从节点服务器上的施压程序均执行完成,每一个从节点服务器均向主节点服务器发送指示施压程序执行完成的执行状态信息。
在本公开中,主节点服务器在接收到的每一个从节点服务器发送的执行状态信息均指示施压程序执行完成情况下,可以从待测试的服务端程序部署在的服务器获取查询请求处理情况信息。基于查询请求处理情况信息,生成待测试的服务端程序的性能测试报告信息。
主节点服务器可以向待测试的服务端程序部署在的服务器发送用于获取查询请求处理情况信息的请求,接收待测试的服务端程序部署在的服务器发送的查询请求处理情况信息。
在本公开中,查询请求处理情况信息指示在对待测试的服务端程序进行性能测试的过程中,该待测试的服务端程序对用于性能测试的查询请求的处理情况。
查询请求处理情况信息可以包括但不限于:在对待测试的服务端程序进行性能测试的过程中成功处理的查询请求的总数量、在对待测试的服务端程序进行性能测试的过程中对每一个成功处理的查询请求的处理时长。
在一些实施例中,还包括:在接收到至少一个从节点服务器发送的指示在施压程序的执行过程中出现异常情况的执行状态信息的情况下,向每一个从节点服务器发送施压程序停止执行指令和施压程序删除指令,以触发每一个从节点服务器停止执行部署在从节点服务器上的施压程序并且删除部署在从节点服务器上的施压程序。
在本公开中,主节点服务器在接收到至少一个从节点服务器发送的指示在施压程序的执行过程中出现异常情况的执行状态信息的情况下,可以向每一个从节点服务器发送施压程序停止执行指令和施压程序删除指令。对于每一个从节点服务器,响应于施压程序停止执行指令,停止执行部署在从节点服务器上的施压程序,然后,该从节点服务器响应于施压程序删除指令,删除部署在该从节点服务器上的施压程序。
请参考图2,其示出了对服务端程序进行性能测试的一个效果示意图。
jenkins主节点服务器上运行有jenkins主节点控制程序,jenkins从节点服务器上部署的施压程序可以称之为jenkins从节点施压程序。
可以由jenkins主节点控制程序利用jenkins工具分发施压程序、发送施压程序执行指令、接收jenkins从节点服务器发送的指示执行完成的执行状态信息或在执行过程中出现异常情况的执行状态信息。
jenkins主节点控制程序向3个jenkins从节点服务器中的每一个jenkins从节点服务器发送jenkins从节点施压程序。
每一个jenkins从节点服务器向jenkins主节点服务器发送指示在从节点服务器上部署jenkins从节点施压程序成功的部署状态信息或指示在从节点服务器上部署jenkins从节点施压程序失败的部署状态信息。
jenkins主节点控制程序可以将每一个jenkins从节点服务器发送的指示在从节点服务器上部署jenkins从节点施压程序成功的部署状态信息或指示在从节点服务器上部署jenkins从节点施压程序失败的部署状态信息写入jenkins主节点服务器上的用于存储状态信息的存储介质。
jenkins主节点控制程序在读取的主节点服务器上的用于存储状态信息的存储介质中的每一个jenkins从节点发送的部署状态信息均指示在从节点服务器上部署jenkins从节点施压程序成功的情况下,可以分别向每一个jenkins从节点服务器发送施压程序执行指令。
对于每一个jenkins从节点服务器,该jenkins从节点服务器均响应于施压程序执行指令,执行部署在该jenkins从节点服务器上的jenkins从节点施压程序。
每一个jenkins从节点服务器上的施压程序均可以在执行过程中以预设的每秒查询数即QPS向待测试的服务端程序发送查询请求。
每一个jenkins从节点服务器均可以向jenkins主节点控制程序发送指示jenkins从节点施压程序执行完成的执行状态信息或指示在jenkins从节点施压程序的执行过程中出现异常情况的执行状态信息。jenkins主节点控制程序将接收到的所有执行状态信息写入到jenkins主节点服务器上的用于存储状态信息的存储介质。
图3是根据一示例性实施例示出的一种性能测试装置的结构框图。性能测试装置安装在主节点服务器上。参照图3,该装置包括:选择模块301,施压程序发送模块302,指令发送模块303,生成模块304。
选择模块301被配置为从所有候选服务器中选择多个用于对待测试的服务端程序进行性能测试的从节点服务器;
施压程序发送模块302被配置为分别向每一个从节点服务器发送施压程序;
指令发送模块303被配置为在接收到的每一个从节点服务器发送的部署状态信息均指示在从节点服务器上部署施压程序成功的情况下,分别向每一个从节点服务器发送施压程序执行指令,其中,施压程序在执行过程中向所述待测试的服务端程序发送用于性能测试的查询请求;
生成模块304被配置为在接收到的每一个从节点服务器发送的执行状态信息均指示施压程序执行完成的情况下,从所述待测试的服务端程序部署在的服务器获取查询请求处理情况信息,以及基于所述查询请求处理情况信息,生成所述待测试的服务端程序的性能测试报告信息。
在一些实施例中,选择模块进一步被配置为:基于待测试的服务端程序的目标每秒查询数和每一个候选服务器的每秒查询数,从所有候选服务器中选择多个用于对待测试的服务端程序进行性能测试的从节点服务器,其中,候选服务器的每秒查询数为施压程序利用候选服务器的当前可以用于性能测试的资源每秒最多发送的用于性能测试的查询请求的数量,所述目标每秒查询数为在测试待测试的服务端程序每秒可以处理的用于性能测试的查询请求时的测试目标。
在一些实施例中,所述装置还包括:
部署异常处理模块,被配置为在接收到至少一个从节点服务器发送的指示在从节点服务器上部署施压程序失败的部署状态信息的情况下,分别向每一个从节点服务器发送施压程序删除指令,以触发每一个从节点服务器删除位于从节点服务器上的施压程序。
在一些实施例中,所述装置还包括:
程序执行异常处理模块,被配置为在接收到至少一个从节点服务器发送的指示在施压程序的执行过程中出现异常情况的执行状态信息的情况下,向每一个从节点服务器发送施压程序停止执行指令和施压程序删除指令,以触发每一个从节点服务器停止执行部署在从节点服务器上的施压程序并且删除部署在从节点服务器上的施压程序。
在一些实施例中,所述主节点服务器与每一个从节点服务器通过持续集成工具jenkins进行交互。
图4是根据一示例性实施例示出的一种服务器的结构框图。参照图4,服务器400包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理组件422执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行上述方法。
服务器400还可以包括一个电源组件426被配置为执行服务器400的电源控制,一个有线或无线网络接口450被配置为将服务器400连接到网络,和一个输入输出(I/O)接口458。服务器400可以操作基于存储在存储器432的操作系统,例如Windows ServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还发布了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由服务器执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本申请还发布一种计算机程序,该计算机程序包括如图1所示的操作步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种性能测试方法,应用于主节点服务器,其特征在于,所述方法包括:
基于待测试的服务端程序的目标每秒查询数和每一个候选服务器的每秒查询数,从所有候选服务器中选择多个用于对待测试的服务端程序进行性能测试的从节点服务器;
分别向每一个从节点服务器发送施压程序;
在接收到的每一个从节点服务器发送的部署状态信息均指示在从节点服务器上部署施压程序成功的情况下,分别向每一个从节点服务器发送施压程序执行指令,其中,施压程序在执行过程中向所述待测试的服务端程序发送用于性能测试的查询请求;
在接收到的每一个从节点服务器发送的执行状态信息均指示施压程序执行完成的情况下,从所述待测试的服务端程序部署在的服务器获取查询请求处理情况信息,以及基于所述查询请求处理情况信息,生成所述待测试的服务端程序的性能测试报告信息;所述待测试的服务端程序部署在的服务器用于处理施压程序发送的查询请求,并且对单位时间内处理的查询请求的数量进行统计,得到所述查询请求处理情况信息。
2.根据权利要求1所述的方法,其特征在于,候选服务器的每秒查询数为施压程序利用候选服务器的当前可以用于性能测试的资源每秒最多发送的用于性能测试的查询请求的数量,所述目标每秒查询数为在测试所述待测试的服务端程序每秒可以处理的用于性能测试的查询请求时的测试目标。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到至少一个从节点服务器发送的指示在从节点服务器上部署施压程序失败的部署状态信息的情况下,分别向每一个从节点服务器发送施压程序删除指令,以触发每一个从节点服务器删除位于从节点服务器上的施压程序。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到至少一个从节点服务器发送的指示在施压程序的执行过程中出现异常情况的执行状态信息的情况下,向每一个从节点服务器发送施压程序停止执行指令和施压程序删除指令,以触发每一个从节点服务器停止执行部署在从节点服务器上的施压程序并且删除部署在从节点服务器上的施压程序。
5.根据权利要求1-4之一所述的方法,其特征在于,所述主节点服务器与每一个从节点服务器通过持续集成工具jenkins进行交互。
6.一种性能测试装置,所述装置安装在主节点服务器上,其特征在于,所述装置包括:
选择模块,被配置为基于待测试的服务端程序的目标每秒查询数和每一个候选服务器的每秒查询数,从所有候选服务器中选择多个用于对待测试的服务端程序进行性能测试的从节点服务器;
施压程序发送模块,被配置为分别向每一个从节点服务器发送施压程序;
指令发送模块,被配置为在接收到的每一个从节点服务器发送的部署状态信息均指示在从节点服务器上部署施压程序成功的情况下,分别向每一个从节点服务器发送施压程序执行指令,其中,施压程序在执行过程中向所述待测试的服务端程序发送用于性能测试的查询请求;
生成模块,被配置为在接收到的每一个从节点服务器发送的执行状态信息均指示施压程序执行完成的情况下,从所述待测试的服务端程序部署在的服务器获取查询请求处理情况信息,以及基于所述查询请求处理情况信息,生成所述待测试的服务端程序的性能测试报告信息;所述待测试的服务端程序部署在的服务器用于处理施压程序发送的查询请求,并且对单位时间内处理的查询请求的数量进行统计,得到所述查询请求处理情况信息。
7.根据权利要求6所述的装置,其特征在于,候选服务器的每秒查询数为施压程序利用候选服务器的当前可以用于性能测试的资源每秒最多发送的用于性能测试的查询请求的数量,所述目标每秒查询数为在测试待测试的服务端程序每秒可以处理的用于性能测试的查询请求时的测试目标。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
程序执行异常处理模块,被配置为在接收到至少一个从节点服务器发送的指示在施压程序的执行过程中出现异常情况的执行状态信息的情况下,向每一个从节点服务器发送施压程序停止执行指令和施压程序删除指令,以触发每一个从节点服务器停止执行部署在从节点服务器上的施压程序并且删除部署在从节点服务器上的施压程序。
9.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至5中任一项所述的方法。
10.一种存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010131629.5A CN111404769B (zh) | 2020-02-28 | 2020-02-28 | 一种性能测试方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010131629.5A CN111404769B (zh) | 2020-02-28 | 2020-02-28 | 一种性能测试方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111404769A CN111404769A (zh) | 2020-07-10 |
CN111404769B true CN111404769B (zh) | 2022-07-08 |
Family
ID=71413896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010131629.5A Active CN111404769B (zh) | 2020-02-28 | 2020-02-28 | 一种性能测试方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111404769B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506255A (zh) * | 2016-09-21 | 2017-03-15 | 微梦创科网络科技(中国)有限公司 | 一种压力测试的方法、装置及系统 |
CN107688526A (zh) * | 2017-08-25 | 2018-02-13 | 上海壹账通金融科技有限公司 | 应用程序的性能测试方法、装置、计算机设备和存储介质 |
CN108733545A (zh) * | 2017-04-25 | 2018-11-02 | 北京微影时代科技有限公司 | 一种压力测试方法及装置 |
CN108845954A (zh) * | 2018-08-31 | 2018-11-20 | 中国联合网络通信集团有限公司 | 压力测试方法、系统及存储介质 |
CN108959000A (zh) * | 2018-06-20 | 2018-12-07 | 深圳市腾讯网络信息技术有限公司 | 一种服务器压力测试方法、系统及终端 |
-
2020
- 2020-02-28 CN CN202010131629.5A patent/CN111404769B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506255A (zh) * | 2016-09-21 | 2017-03-15 | 微梦创科网络科技(中国)有限公司 | 一种压力测试的方法、装置及系统 |
CN108733545A (zh) * | 2017-04-25 | 2018-11-02 | 北京微影时代科技有限公司 | 一种压力测试方法及装置 |
CN107688526A (zh) * | 2017-08-25 | 2018-02-13 | 上海壹账通金融科技有限公司 | 应用程序的性能测试方法、装置、计算机设备和存储介质 |
CN108959000A (zh) * | 2018-06-20 | 2018-12-07 | 深圳市腾讯网络信息技术有限公司 | 一种服务器压力测试方法、系统及终端 |
CN108845954A (zh) * | 2018-08-31 | 2018-11-20 | 中国联合网络通信集团有限公司 | 压力测试方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111404769A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104834602B (zh) | 一种程序发布方法、装置和程序发布系统 | |
CN107590075B (zh) | 一种软件测试方法及装置 | |
EP3489825A1 (en) | Method, apparatus and computer readable storage medium for processing service | |
CN106681924A (zh) | 一种软件测试方法及系统 | |
CN109977012B (zh) | 系统的联调测试方法、装置、设备及计算机可读存储介质 | |
CN104067234B (zh) | 原位处理器重新表征的方法和系统 | |
CN105404580B (zh) | 分布式压力测试系统和方法 | |
CN107038120B (zh) | 一种软件测试方法和设备 | |
CN107045475B (zh) | 测试方法和装置 | |
CN111309570A (zh) | 压力测试方法、介质、装置和计算设备 | |
CN103593293A (zh) | 一种并行自动化测试方法 | |
CN106549795B (zh) | 用于监视多个分布式设备的系统 | |
CN111984527A (zh) | 软件的性能测试方法、装置、设备和介质 | |
CN111404769B (zh) | 一种性能测试方法、装置、服务器及存储介质 | |
KR20200048633A (ko) | 소프트웨어 자동 테스트 시스템 및 방법 | |
US10826764B2 (en) | Dynamic server allocation for automated server builds | |
CN113392028A (zh) | 一种分布式测试系统及控制方法 | |
CN111722917A (zh) | 性能测试任务的资源调度方法、装置和设备 | |
CN112463574A (zh) | 软件测试方法、装置、系统、设备和存储介质 | |
CN117215635B (zh) | 任务处理方法、装置及存储介质 | |
CN114461957A (zh) | 一种道具发放方法、装置、设备及存储介质 | |
CN111309627B (zh) | 一种软件测试中防止测试冲突的方法与系统 | |
CN114328275A (zh) | 系统测试方法、装置、计算机设备和存储介质 | |
CN111090575B (zh) | 测试方法 | |
CN111400192A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |