CN117149591A - 用于性能测试的方法和*** - Google Patents
用于性能测试的方法和*** Download PDFInfo
- Publication number
- CN117149591A CN117149591A CN202211322247.6A CN202211322247A CN117149591A CN 117149591 A CN117149591 A CN 117149591A CN 202211322247 A CN202211322247 A CN 202211322247A CN 117149591 A CN117149591 A CN 117149591A
- Authority
- CN
- China
- Prior art keywords
- press
- presses
- test
- stress test
- tasks
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 204
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000013515 script Methods 0.000 claims abstract description 48
- 230000004044 response Effects 0.000 claims abstract description 28
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000013475 authorization Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000004083 survival effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011056 performance test Methods 0.000 description 3
- 238000013480 data collection Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及用于性能测试的方法和***。提供了一种用于性能测试的方法,包括:响应于接收到来自用户的压力测试请求,从压力机群中分配处于空闲状态的一个或多个压力机;通过利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本以执行压力测试任务,其中所述一个或多个压力机的状态被改变为已占用;在所述压力测试任务的执行期间收集测试数据并将所述测试数据存储在数据库中;以及响应于所述压力测试任务的执行完成,所述一个或多个压力机的状态被改变为空闲状态。
Description
技术领域
本公开涉及性能测试领域,更具体地,涉及一种用于性能测试的方法、***、设备和介质。
背景技术
目前,主要使用商业软件来进行性能测试。例如,诸如LoadRunner的性能自动化测试工具被广泛使用。这样的软件属于收费软件并且价格昂贵。这样的商业软件属于非开源软件,无法进行功能扩展。
在性能测试过程中,为了给服务器足够的压力,一般需要使用压力机(即,模拟的客户端)。目前,通常使用Windows服务器作为压力机,而因为Windows服务器比较昂贵,这导致了性能测试的成本升高。作为压力机的Windows服务器,需要在服务器的现场进行登录才能使用,并且仅支持少数人(即,具有建立的专门账号和密码的人)使用,这产生了一定的账号管理和维护成本。压力机在被一个用户登录并使用进行测试的过程中,其他用户无法登录或使用该压力机,并且这样管理的压力机有大量时间处于闲置状态,这造成了资源的浪费。
此外,压力机自身有内存、CPU资源的限制。当压力机运行的LoadRunner线程的数量过多时,压力机的处理能力不足,会导致数据包接收滞后、延长服务器的响应时间、每秒查询数(QPS)的统计不准确,这样就造成了压力机自身的瓶颈。而作为压力机的Windows服务器的资源占用率高,这导致其发压能力弱。
另外,使用诸如LoadRunner的商业软件进行性能测试,测试过程中的压力测试过程数据不支持持久化存储,从而无法基于压力测试过程数据进行数据统计和分析。
发明内容
本公开旨在提供用于实现一种用于性能测试的方法、***、设备和介质。
根据本公开的一些实施例,提供了一种用于性能测试的方法,包括:响应于接收到来自用户的压力测试请求,从压力机群中分配处于空闲状态的一个或多个压力机;通过利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本以执行压力测试任务,其中所述一个或多个压力机的状态被改变为已占用;在所述压力测试任务的执行期间收集测试数据并将所述测试数据存储在数据库中;以及响应于所述压力测试任务的执行完成,所述一个或多个压力机的状态被改变为空闲状态。
根据本公开的一些实施例,所述压力机是以下的一者:云平台上的虚拟机;或物理服务器。
根据本公开的一些实施例,所述压力机群中的一个压力机对被测试目标服务的多个客户端进行模拟,并且执行所述压力测试任务包括模拟所述多个客户端向所述被测试目标服务并行地发送客户端请求。
根据本公开的一些实施例,所述测试数据包括所述被测试目标服务针对所述客户端请求的响应。
根据本公开的一些实施例,所述压力机群中的压力机是经注册的压力机,并且从压力机群中分配处于空闲状态的一个或多个压力机还包括:根据来自所述压力机群中的压力机的心跳消息确定相应压力机处于存活状态;以及从所述压力机群中处于存活状态的压力机中分配处于空闲状态的所述一个或多个压力机。
根据本公开的一些实施例,所述压力机群中的每个压力机可以被单独授权,并且仅有被授权的压力机能够被分配给用户以执行压力测试任务。
根据本公开的一些实施例,该方法还包括响应于用户的输入而显示压力测试任务的列表,所述列表包括利用所述压力机群中的压力机正在执行的一个或多个压力测试任务以及已完成执行的一个或多个压力测试任务。
根据本公开的一些实施例,该方法还包括响应于用户选择所述列表中的一个压力测试任务,显示与该压力测试任务相关联的测试数据。
根据本公开的一些实施例,与所述压力测试请求相关联的所述压力测试脚本是用户从存储的多个测试脚本中选择的并且被发送给所述一个或多个压力机用于运行。
根据本公开的一些实施例,利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本还包括读取存储的参数化文件以用于所述压力测试脚本的运行。
根据本公开的一些实施例,该方法还包括响应于用户的输入而显示与压力测试相关的统计数据,所述统计数据包括以下的一者或多者:用户的数量、压力测试脚本的数量、任务的数量、所述压力机群中的压力机的数量、空闲状态的压力机的数量、执行中的任务的数量、按时间分布的新增任务数、以及按时间分布的新增脚本数。
根据本公开的一些实施例,所述压力机群中的压力机的数量能够被增加或减少,并且所述压力机群中的每个压力机的资源能够被增加以提高压力机的性能或者能够被减少以降低压力机的性能。
根据本公开的一些实施例,所述压力机群中的压力机使用Linux操作***。
根据本公开的一些实施例,所述压力测试脚本是使用Groovy语言编写的。
根据本公开一些实施例,提供了一种计算机***,包括:一个或多个处理器,和与所述一个或多个处理器耦接的存储器,所述存储器存储计算机可读程序指令,所述指令在被所述一个或多个处理器执行时执行如上所述的方法。
根据本公开一些实施例,提供了一种计算机可读存储介质,其上存储计算机可读程序指令,所述指令在被所述处理器执行时执行如上所述的方法。
根据本公开一些实施例,提供了一种用于性能测试的设备,包括用于实现如上所述的方法的步骤的装置。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图。
图2示出了根据本发明的一个实施例的用于性能测试的方法的流程图。
图3示出了根据本发明的一个实施例的用于管理压力机群的用户界面的示例。
图4A示出了根据本发明的一个实施例的基于被测试目标服务或功能的汇总任务数。
图4B示出了根据本发明的一个实施例的测试相关数据统计的图示。
图4C示出了根据本发明的另一个实施例的测试相关数据统计的图示。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图。图1显示的计算机***/服务器12仅仅是示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机***/服务器12以通用计算设备的形式表现。计算机***/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机***/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质。尽管图1中未示出,还可以提供磁盘驱动器以及光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机***/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机***/服务器12交互的设备通信,和/或与使得该计算机***/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机***/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机***/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机***/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
现在参看图2,图2示出了根据本发明的一个实施例的用于性能测试的方法200的流程图。该方法200例如由图1所述的计算机***/服务器12执行。该方法200包括压力机分配步骤210、压力测试执行步骤220、测试数据收集步骤230、以及压力机释放步骤240。
方法200开始于压力机分配步骤210。在压力机分配步骤210中,响应于接收到来自用户的压力测试请求,从压力机群中分配处于空闲状态的一个或多个压力机。根据本发明的实施例,压力机可以是云平台上的虚拟机或者物理服务器中的一者。例如,一个压力机可以是从云平台服务租用的一台虚拟机,也可以是一台物理计算机。压力机群可以由多台虚拟机构成,可以由多台物理计算机构成,也可以由虚拟机和物理计算机的组合构成。
根据本发明的一个实施例,压力机群中的一个压力机可以对被测试目标服务(或服务器)的多个客户端进行模拟。在一个例子中,在一个压力机中可以同时运行多个线程,所述多个线程中的每个线程可以模拟一个客户端来与被测试目标服务进行交互。
根据本发明的一个实施例,本发明可以被实现为web平台,用户无需在现场登录作为压力机的服务器,而是可以通过浏览器就可以使用压力机。通过这样做,不需要频繁地为需要现场登录该服务器的用户创建和删除账号,也不必为每个用户进行权限设置。此外,通过使用浏览器来使用压力机,能够使更多的人参与到性能测试中。例如除了测试人员以外,开发人员也可以方便地从浏览器中使用压力机进行测试,从而可以在开发阶段就能够验证产品的性能,而不必等到测试阶段。
图3示出了根据本发明的一个实施例的用于管理压力机群的用户界面的示例。在图3所示的示例中,压力机群以分页列表的方式进行显示,并且该压力机群具有总计30个压力机。这30个压力机分三页显示,每页显示10个压力机的信息。图3中的例子显示的是第一页,即,总计30个压力机中的10个压力机的信息。根据本发明的其他实施例,压力机群也可以以除列表以外的其他方式进行显示,例如以图形化方式进行显示,其中30个压力机被显示为30个机器形状的图标,当点击一个图标或者鼠标指针滑动到该图标上时,可以显示与该图标对应的压力机的详细信息。
根据本发明的一个实施例,压力机群中的压力机使用Linux操作***。由于Windows属于桌面操作***,其本身就占用很多资源,而Linux是非桌面操作***,资源占用小,所以可以使用较低配置的压力机实现与采用Windows操作***的压力机同样的每秒事务数(TPS)。通过选择使用Linux作为压力机的操作***,更低配置的压力机即可满足同等测试需求,所需成本是安装Windows的压力机的约1/6。而如果使用相同的成本来提供Linux压力机,则Linux压力机可以提供更强大的发压能力。此外,通过选择使用Linux作为压力机的操作***,提高了资源利用率并且减少了浪费。但是本发明并不限以上示例,在其他实施例中,压力机也可以使用除Windows以外的其它操作***,诸如Unix或者鸿蒙等。
在图3示出的示例中,压力机群的列表可以包括每个压力机的例如以下信息的至少一部分:存活状态301、工作状态302、压力机ID 303、压力机IP 304、压力机端口305、模拟的客户端的数目306、任务ID 307、授权开关308。图3中的列表仅仅是一个说明性示例,该列表可以包括更多或者更少的列。例如,该列表还可以包括虚拟压力机的创建时间和/或修改时间等。
根据本发明的一个实施例,压力机群中的压力机是经注册的压力机,并且从压力机群中分配处于空闲状态的一个或多个压力机还可以包括:根据来自所述压力机群中的压力机的心跳消息确定相应压力机处于存活状态;以及从所述压力机群中处于存活状态的压力机中分配处于空闲状态的所述一个或多个压力机。根据本发明的实施例,压力机主动向本发明的***注册,并定期发送心跳消息以同步存活状态,本发明的***识别处于存活状态的压力机并将其中空闲的压力机分配给任务。例如,图3的示例中的列表中的列301表示压力机的存活状态,在该示例中圆形表示存活并且×表示非存活,仅有存活的压力机才会被判断其工作状态(302)。图3中显示的第一页中的10个压力机均处于存活状态。图3中的列表仅仅是一个说明性示例,还可以以其他方式显示压力机的存活状态,例如绿色表示存活并且红色表示非存活。
根据本发明的一个实施例,压力机群中的每个压力机可以被单独授权,并且仅有被授权的压力机能够被分配给用户以执行压力测试任务。以图3中所示的列表为例,列表中的授权开关308可以被点击以在开与关状态之间切换,从而控制相应的压力机是否可以被授权分配给压力测试任务。当一个压力机的授权开关308处于“开”位置时,它可以被分配执行压力测试任务;而当该压力机的授权开关308处于“关”位置时,它不可以被分配执行压力测试任务。图3中显示的第一页中的10个压力机的授权开关308均处于“开”位置。
现在返回参照图2,在压力测试执行步骤220中,通过利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本以执行压力测试任务,其中所述一个或多个压力机的状态被改变为已占用。以图3所示的示例进行说明,有四个空闲的压力机被分配用于执行一个压力测试任务,即,ID为23、24、25、26(参见图3中的列303)的四个压力机被分配执行任务ID为10493的任务(参加图3中的列307)。此外,根据图3的例子,在总计30个压力机中,除了压力机23-26以外的其余26个压力机处于空闲状态。也就是说,当被分配的压力机23-26用于执行压力测试任务时,它们的工作状态被改变为已占用。在图3的例子中,压力机23-26的工作状态302被显示为“运行中”,这表示压力机此时被占用,正在执行压力测试任务10493,从而这四个压力机被锁定并且由任务10493独享,从而保证了在该任务的执行期间不受其他用户或任务的干扰。
根据本发明的一个实施例,执行压力测试任务包括模拟多个客户端向被测试目标服务并行地发送客户端请求。例如,在图3的示例中,压力机23-26中的每个模拟200个客户端(参见列表中的列306),以向被测试目标服务并行地发送客户端请求。这样的客户端请求是基于压力测试脚本的执行而发送的。
在本发明的一个实施例中,与压力测试请求相关联的压力测试脚本是用户从存储的多个测试脚本中选择的并且被发送给所述一个或多个压力机用于运行。根据本发明的一个实施例,压力测试脚本由测试人员预先编写并且存储在***中。该压力测试脚本规定压力机所模拟的客户端的一系列行为(即,与被测试目标服务的交互)。在一个例子中,压力测试脚本例如可以包括以下的顺序操作:
(i)搜索一个地点名称;
(ii)从返回的多个地点中选择一个;以及
(iii)指示导航至所选择的地点。
例如,一个压力机可以利用200个线程并发地执行该压力测试脚本,来模拟200个客户端同时执行包括以上的操作(i)-(iii)以测试一目标导航服务的性能。
根据本发明的一个实施例,利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本还可以包括读取存储的参数化文件以用于所述压力测试脚本的运行。在根据本发明的一个实施例中,利用参数化文件可以使得压力机逼真地模拟客户端。以上面的压力测试脚本为例进行说明,对于压力机所模拟的不同客户端,可以通过参数化文件的读取而使操作(i)-(iii)有所不同。例如,对于操作(i),不同的客户端可以通过读取参数化文件而确定不同的搜索地点名称,例如,客户端A可能被参数化为搜索“火车站”,客户端B可能被参数化为搜索“人民公园”。对于操作(ii),不同的客户端可以通过读取参数化文件而选择不同的返回地点,例如,客户端A可能被参数化为选择第一个返回结果,客户端B可能被参数化为选择第二个返回结果。对于操作(iii),不同的客户端可以通过读取参数化文件而设置不同的当前位置,例如,客户端A可能被参数化为当前位置在“X地铁站”,客户端B可能被参数化为当前位置在“首都机场”,这样操作(iii)将会请求包括不同起止点的路径的导航规划。通过压力测试脚本的执行和参数化文件的应用,根据本发明的性能测试方法将能够灵活且逼真地模拟各种不同的客户端对测试目标服务发起的多样的请求,从而使得测试场景更加接近于实际使用场景,获得更可靠的测试结果。
在本发明的一个实施例,***中可以存储多个不同的压力测试脚本,不同的压力测试脚本可以用于执行不同的任务。用户可以选择相应的一个压力测试脚本以由***分配的压力机来运行,从而执行一个压力测试任务。此外,不同的压力测试脚本可以针对不同的被测试目标服务。
根据本发明的一个实施例,压力测试脚本可以使用Groovy语言编写。由于脚本使用Groovy语言编写,它可以和Java无缝衔接,从而更加灵活,可以实现任何复杂的场景。在根据本发明的其他实施例中,也可以使用本领域公知的其他语言来编写压力测试脚本。
现在返回参照图2,在测试数据收集步骤230中,在压力测试任务的执行期间收集测试数据并将测试数据存储在数据库中。根据本发明的一个实施例,所述测试数据例如为测试过程数据。通过使测试过程数据全部持久化,使得压力测试过程被保留,这为数据统计、过程管理等提供了基础原始数据。此外,由于测试过程数据得以保留,***的管理员能够看到真实的测试过程。根据本发明的一个实施例,测试数据可以包括被测试目标服务针对客户端请求的响应。以上面的压力测试脚本为了,测试数据例如可以包括:被测试目标导航服务针对客户端的操作(i)而返回的多个地点、被测试目标导航服务针对客户端的操作(ii)而返回的客户端所选择的地点的信息(例如,包含其的局部地图)、以及被测试目标导航服务针对客户端的操作(iii)而返回的规划导航路径。根据本发明的一个实施例,用于存储测试数据的所述数据库例如可以是MySQL。在另一个实施例中,也可以使用其它数据库来使测试数据持久化。
根据本发明的一个实施例,测试数据在被存储在数据库中之前可以由***进行数据整合汇总,并且之后可以由***从数据库中获取以向用户展示。
现在返回参照图2,在压力机释放步骤240中,响应于压力测试任务的执行完成,所述一个或多个压力机的状态被改变为空闲状态。根据本发明,在压力测试任务的执行结束后主动释放压力机,并更新压力机的工作状态,从而实现了压力机的循环利用,使得压力机资源的利用率最大化。
根据本发明的一个实施例,方法200还可以包括响应于用户的输入而显示压力测试任务的列表,所述列表包括利用所述压力机群中的压力机正在执行的一个或多个压力测试任务以及已完成执行的一个或多个压力测试任务。在本发明的一个实施例中,可以响应于用户的请求而显示压力测试任务的列表,例如可以采用类似于图3的分页列表的形式。在该列表中可以同时显示正在执行中的压力测试任务和已经完成执行的压力测试任务。在一个例子中,例如可以用绿色表示正在执行中的压力测试任务,并且可以用灰色表示已经完成执行的压力测试任务。根据本发明的一个实施例,方法200还可以包括响应于用户选择压力测试任务列表中的一个压力测试任务,显示与该压力测试任务相关联的测试数据。也就是说,当用户选择了该列表中的一个压力测试任务时,可以显示已存储在数据库中的该压力测试任务的测试过程数据。
根据本发明的一个实施例,方法200还可以包括响应于用户的输入而显示与压力测试相关的统计数据,所述统计数据包括以下的一者或多者:用户的数量、压力测试脚本的数量、任务的数量、所述压力机群中的压力机的数量、空闲状态的压力机的数量、执行中的任务的数量、按时间分布的新增任务数、以及按时间分布的新增脚本数。
图4A示出了根据本发明的一个实施例的基于被测试目标服务或功能的汇总任务数。根据本发明的***可以进行各种数据统计。例如,图4A的例子示出了针对不同的服务A至F统计的已执行的压力测试任务的数目。图4B示出了根据本发明的一个实施例的最近30天新增任务数。图4B显示了按时间分布的新增任务数。此外,图4B还显示了近30天来单日最大新增任务数147以及单日最小新增任务数2。图4C示出了根据本发明的一个实施例的最近30天新增脚本数。图4C显示了按时间分布的新增脚本数。此外,图4C还显示了近30天来单日最大新增脚本数41以及单日最小新增脚本数1。图4A-4C仅仅给出了与测试相关的数据统计的三个示例,还可以基于测试数据进行其他的各种数据统计,例如,按用户所属于的公司部门汇总的任务数等。
根据本公开的一个实施例,压力机群中的压力机的数量能够被增加或减少,并且压力机群中的每个压力机的资源能够被增加以提高压力机的性能或者能够被减少以降低压力机的性能。也就是说,根据本发明的***支持压力机的横向扩容和纵向升配,提升***的发压能力。此外,数据库也可以通过升级配置的方式提升并行压力测试任务的容量。
根据本发明的***可以是一种压力测试平台,其不受任何商业因素的限制,可以开发出完全符合本企业的流程和规范的功能,并且对变化能够做出快速响应。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
根据本发明的一个实施例,提供了一种计算机***,该计算机***包括一个或多个处理器和与所述一个或多个处理器耦接的存储器。所述存储器存储计算机可读程序指令,所述指令在被所述一个或多个处理器执行时执行:响应于接收到来自用户的压力测试请求,从压力机群中分配处于空闲状态的一个或多个压力机;通过利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本以执行压力测试任务,其中所述一个或多个压力机的状态被改变为已占用;在所述压力测试任务的执行期间收集测试数据并将所述测试数据存储在数据库中;以及响应于所述压力测试任务的执行完成,所述一个或多个压力机的状态被改变为空闲状态。
根据本发明的另一个实施例,提供了一种计算机可读存储介质,其上存储计算机可读程序指令,所述指令在被处理器执行时执行:响应于接收到来自用户的压力测试请求,从压力机群中分配处于空闲状态的一个或多个压力机;通过利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本以执行压力测试任务,其中所述一个或多个压力机的状态被改变为已占用;在所述压力测试任务的执行期间收集测试数据并将所述测试数据存储在数据库中;以及响应于所述压力测试任务的执行完成,所述一个或多个压力机的状态被改变为空闲状态。
根据本发明的另一个实施例,提供了一种用于性能测试的设备,包括:用于响应于接收到来自用户的压力测试请求,从压力机群中分配处于空闲状态的一个或多个压力机的装置;用于通过利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本以执行压力测试任务的装置,其中所述一个或多个压力机的状态被改变为已占用;用于在所述压力测试任务的执行期间收集测试数据并将所述测试数据存储在数据库中的装置;以及用于响应于所述压力测试任务的执行完成,将所述一个或多个压力机的状态改变为空闲状态的装置。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (17)
1.一种用于性能测试的方法,包括:
响应于接收到来自用户的压力测试请求,从压力机群中分配处于空闲状态的一个或多个压力机;
通过利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本以执行压力测试任务,其中所述一个或多个压力机的状态被改变为已占用;
在所述压力测试任务的执行期间收集测试数据并将所述测试数据存储在数据库中;以及
响应于所述压力测试任务的执行完成,所述一个或多个压力机的状态被改变为空闲状态。
2.根据权利要求1所述的方法,其中所述压力机是以下的一者:
云平台上的虚拟机;或
物理服务器。
3.根据权利要求1所述的方法,其中所述压力机群中的一个压力机对被测试目标服务的多个客户端进行模拟,并且执行所述压力测试任务包括模拟所述多个客户端向所述被测试目标服务并行地发送客户端请求。
4.根据权利要求3所述的方法,其中所述测试数据包括所述被测试目标服务针对所述客户端请求的响应。
5.根据权利要求1所述的方法,其中所述压力机群中的压力机是经注册的压力机,并且从压力机群中分配处于空闲状态的一个或多个压力机还包括:
根据来自所述压力机群中的压力机的心跳消息确定相应压力机处于存活状态;以及
从所述压力机群中处于存活状态的压力机中分配处于空闲状态的所述一个或多个压力机。
6.根据权利要求1所述的方法,其中所述压力机群中的每个压力机可以被单独授权,并且仅有被授权的压力机能够被分配给用户以执行压力测试任务。
7.根据权利要求1所述的方法,还包括响应于用户的输入而显示压力测试任务的列表,所述列表包括利用所述压力机群中的压力机正在执行的一个或多个压力测试任务以及已完成执行的一个或多个压力测试任务。
8.根据权利要求7所述的方法,还包括响应于用户选择所述列表中的一个压力测试任务,显示与该压力测试任务相关联的测试数据。
9.根据权利要求1所述的方法,其中与所述压力测试请求相关联的所述压力测试脚本是用户从存储的多个测试脚本中选择的并且被发送给所述一个或多个压力机用于运行。
10.根据权利要求1所述的方法,其中利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本还包括:
读取存储的参数化文件以用于所述压力测试脚本的运行。
11.根据权利要求1所述的方法,还包括响应于用户的输入而显示与压力测试相关的统计数据,所述统计数据包括以下的一者或多者:
用户的数量、压力测试脚本的数量、任务的数量、所述压力机群中的压力机的数量、空闲状态的压力机的数量、执行中的任务的数量、按时间分布的新增任务数、以及按时间分布的新增脚本数。
12.根据权利要求1所述的方法,其中所述压力机群中的压力机的数量能够被增加或减少,并且所述压力机群中的每个压力机的资源能够被增加以提高压力机的性能或者能够被减少以降低压力机的性能。
13.根据权利要求2所述的方法,其中所述压力机群中的压力机使用Linux操作***。
14.根据权利要求1所述的方法,其中所述压力测试脚本是使用Groovy语言编写的。
15.一种计算机***,包括:
一个或多个处理器;和
与所述一个或多个处理器耦接的存储器,所述存储器存储计算机可读程序指令,所述指令在被所述一个或多个处理器执行时执行如权利要求1-14中任一项所述的方法。
16.一种计算机可读存储介质,其上存储计算机可读程序指令,所述指令在被处理器执行时执行如权利要求1-14中任一项所述的方法。
17.一种用于性能测试的设备,包括用于实现如权利要求1-14中任一项所述的方法的步骤的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211322247.6A CN117149591A (zh) | 2022-10-27 | 2022-10-27 | 用于性能测试的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211322247.6A CN117149591A (zh) | 2022-10-27 | 2022-10-27 | 用于性能测试的方法和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117149591A true CN117149591A (zh) | 2023-12-01 |
Family
ID=88910755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211322247.6A Pending CN117149591A (zh) | 2022-10-27 | 2022-10-27 | 用于性能测试的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149591A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992362A (zh) * | 2016-10-27 | 2018-05-04 | 北京京东尚科信息技术有限公司 | 自动化性能测试的方法、装置及*** |
CN109359033A (zh) * | 2018-09-05 | 2019-02-19 | 广州神马移动信息科技有限公司 | 压力测试方法、测试服务器、管理服务器及*** |
CN111563014A (zh) * | 2019-02-13 | 2020-08-21 | 北京京东尚科信息技术有限公司 | 接口服务性能测试方法、装置、设备和存储介质 |
CN112148616A (zh) * | 2020-09-30 | 2020-12-29 | 中国民航信息网络股份有限公司 | 一种性能测试管理平台 |
US20210373922A1 (en) * | 2020-05-28 | 2021-12-02 | Sap Se | Enhancing parameter-less exit-calls from a command line interface |
-
2022
- 2022-10-27 CN CN202211322247.6A patent/CN117149591A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992362A (zh) * | 2016-10-27 | 2018-05-04 | 北京京东尚科信息技术有限公司 | 自动化性能测试的方法、装置及*** |
CN109359033A (zh) * | 2018-09-05 | 2019-02-19 | 广州神马移动信息科技有限公司 | 压力测试方法、测试服务器、管理服务器及*** |
CN111563014A (zh) * | 2019-02-13 | 2020-08-21 | 北京京东尚科信息技术有限公司 | 接口服务性能测试方法、装置、设备和存储介质 |
US20210373922A1 (en) * | 2020-05-28 | 2021-12-02 | Sap Se | Enhancing parameter-less exit-calls from a command line interface |
CN112148616A (zh) * | 2020-09-30 | 2020-12-29 | 中国民航信息网络股份有限公司 | 一种性能测试管理平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10515000B2 (en) | Systems and methods for performance testing cloud applications from multiple different geographic locations | |
US11157393B2 (en) | Performance testing platform that enables reuse of automation scripts and performance testing scalability | |
US9973571B2 (en) | Migrating legacy applications to a multi-tenant computing environment | |
US10977167B2 (en) | Application monitoring with a decoupled monitoring tool | |
US9811445B2 (en) | Methods and systems for the use of synthetic users to performance test cloud applications | |
US10025671B2 (en) | Smart virtual machine snapshotting | |
US9946630B2 (en) | Efficiently debugging software code | |
CN109656646B (zh) | 一种远程桌面控制方法、装置、设备及虚拟化芯片 | |
US20220050728A1 (en) | Dynamic data driven orchestration of workloads | |
US11928038B2 (en) | Managing data sets based on user activity | |
US10169101B2 (en) | Software based collection of performance metrics for allocation adjustment of virtual resources | |
US11144429B2 (en) | Detecting and predicting application performance | |
CN115268964A (zh) | 一种数据回注方法、***、电子设备及可读存储介质 | |
US11526379B2 (en) | Application building in a distributed computing environment | |
CN111338930A (zh) | 一种基于多进程多租户的自动化测试***及方法 | |
CN117149591A (zh) | 用于性能测试的方法和*** | |
US20230306026A1 (en) | Database query performance improvement | |
JP2021513137A (ja) | 階層型ストレージ管理システムにおけるデータ・マイグレーション | |
CN114726909A (zh) | 云服务迁移信息处理方法、装置、设备、介质及产品 | |
CN113391768A (zh) | 集中存储管理方法及装置 | |
CN111782834A (zh) | 图像检索的方法、装置、设备及计算机可读存储介质 | |
CN110650063A (zh) | 一种集中式的银行第三方软件仿真***及方法 | |
US20190073280A1 (en) | Stopping central processing units for data collection based on event categories of events | |
CN115981857B (zh) | 故障分析*** | |
US20220383183A1 (en) | Machine learning pipeline optimization |
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 |