用于性能测试的方法和系统技术方案

技术编号:39654156 阅读:5 留言:0更新日期:2023-12-09 11:22
本公开涉及用于性能测试的方法和系统

【技术实现步骤摘要】
用于性能测试的方法和系统


[0001]本公开涉及性能测试领域,更具体地,涉及一种用于性能测试的方法

系统

设备和介质


技术介绍

[0002]目前,主要使用商业软件来进行性能测试

例如,诸如
LoadRunner
的性能自动化测试工具被广泛使用

这样的软件属于收费软件并且价格昂贵

这样的商业软件属于非开源软件,无法进行功能扩展

[0003]在性能测试过程中,为了给服务器足够的压力,一般需要使用压力机
(
即,模拟的客户端
)。
目前,通常使用
Windows
服务器作为压力机,而因为
Windows
服务器比较昂贵,这导致了性能测试的成本升高

作为压力机的
Windows
服务器,需要在服务器的现场进行登录才能使用,并且仅支持少数人
(
即,具有建立的专门账号和密码的人
)
使用,这产生了一定的账号管理和维护成本

压力机在被一个用户登录并使用进行测试的过程中,其他用户无法登录或使用该压力机,并且这样管理的压力机有大量时间处于闲置状态,这造成了资源的浪费

[0004]此外,压力机自身有内存
、CPU
资源的限制

当压力机运行的
LoadRunner
线程的数量过多时,压力机的处理能力不足,会导致数据包接收滞后

延长服务器的响应时间

每秒查询数
(QPS)
的统计不准确,这样就造成了压力机自身的瓶颈

而作为压力机的
Windows
服务器的资源占用率高,这导致其发压能力弱

[0005]另外,使用诸如
LoadRunner
的商业软件进行性能测试,测试过程中的压力测试过程数据不支持持久化存储,从而无法基于压力测试过程数据进行数据统计和分析


技术实现思路

[0006]本公开旨在提供用于实现一种用于性能测试的方法

系统

设备和介质

[0007]根据本公开的一些实施例,提供了一种用于性能测试的方法,包括:响应于接收到来自用户的压力测试请求,从压力机群中分配处于空闲状态的一个或多个压力机;通过利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本以执行压力测试任务,其中所述一个或多个压力机的状态被改变为已占用;在所述压力测试任务的执行期间收集测试数据并将所述测试数据存储在数据库中;以及响应于所述压力测试任务的执行完成,所述一个或多个压力机的状态被改变为空闲状态

[0008]根据本公开的一些实施例,所述压力机是以下的一者:云平台上的虚拟机;或物理服务器

[0009]根据本公开的一些实施例,所述压力机群中的一个压力机对被测试目标服务的多个客户端进行模拟,并且执行所述压力测试任务包括模拟所述多个客户端向所述被测试目标服务并行地发送客户端请求

[0010]根据本公开的一些实施例,所述测试数据包括所述被测试目标服务针对所述客户
端请求的响应

[0011]根据本公开的一些实施例,所述压力机群中的压力机是经注册的压力机,并且从压力机群中分配处于空闲状态的一个或多个压力机还包括:根据来自所述压力机群中的压力机的心跳消息确定相应压力机处于存活状态;以及从所述压力机群中处于存活状态的压力机中分配处于空闲状态的所述一个或多个压力机

[0012]根据本公开的一些实施例,所述压力机群中的每个压力机可以被单独授权,并且仅有被授权的压力机能够被分配给用户以执行压力测试任务

[0013]根据本公开的一些实施例,该方法还包括响应于用户的输入而显示压力测试任务的列表,所述列表包括利用所述压力机群中的压力机正在执行的一个或多个压力测试任务以及已完成执行的一个或多个压力测试任务

[0014]根据本公开的一些实施例,该方法还包括响应于用户选择所述列表中的一个压力测试任务,显示与该压力测试任务相关联的测试数据

[0015]根据本公开的一些实施例,与所述压力测试请求相关联的所述压力测试脚本是用户从存储的多个测试脚本中选择的并且被发送给所述一个或多个压力机用于运行

[0016]根据本公开的一些实施例,利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本还包括读取存储的参数化文件以用于所述压力测试脚本的运行

[0017]根据本公开的一些实施例,该方法还包括响应于用户的输入而显示与压力测试相关的统计数据,所述统计数据包括以下的一者或多者:用户的数量

压力测试脚本的数量

任务的数量

所述压力机群中的压力机的数量

空闲状态的压力机的数量

执行中的任务的数量

按时间分布的新增任务数

以及按时间分布的新增脚本数

[0018]根据本公开的一些实施例,所述压力机群中的压力机的数量能够被增加或减少,并且所述压力机群中的每个压力机的资源能够被增加以提高压力机的性能或者能够被减少以降低压力机的性能

[0019]根据本公开的一些实施例,所述压力机群中的压力机使用
Linux
操作系统

[0020]根据本公开的一些实施例,所述压力测试脚本是使用
Groovy
语言编写的

[0021]根据本公开一些实施例,提供了一种计算机系统,包括:一个或多个处理器,和与所述一个或多个处理器耦接的存储器,所述存储器存储计算机可读程序指令,所述指令在被所述一个或多个处理器执行时执行如上所述的方法

[0022]根据本公开一些实施例,提供了一种计算机可读存储介质,其上存储计算机可读程序指令,所述指令在被所述处理器执行时执行如上所述的方法

[0023]根据本公开一些实施例,提供了一种用于性能测试的设备,包括用于实现如上所述的方法的步骤的装置

附图说明
[0024]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的

特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件

[0025]图1示出了适于用来实现本专利技术实施方式的示例性计算机系统
/
服务器
12
的框图

[0026]图2示出了根据本专利技术本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种用于性能测试的方法,包括:响应于接收到来自用户的压力测试请求,从压力机群中分配处于空闲状态的一个或多个压力机;通过利用所述一个或多个压力机运行与所述压力测试请求相关联的压力测试脚本以执行压力测试任务,其中所述一个或多个压力机的状态被改变为已占用;在所述压力测试任务的执行期间收集测试数据并将所述测试数据存储在数据库中;以及响应于所述压力测试任务的执行完成,所述一个或多个压力机的状态被改变为空闲状态
。2.
根据权利要求1所述的方法,其中所述压力机是以下的一者:云平台上的虚拟机;或物理服务器
。3.
根据权利要求1所述的方法,其中所述压力机群中的一个压力机对被测试目标服务的多个客户端进行模拟,并且执行所述压力测试任务包括模拟所述多个客户端向所述被测试目标服务并行地发送客户端请求
。4.
根据权利要求3所述的方法,其中所述测试数据包括所述被测试目标服务针对所述客户端请求的响应
。5.
根据权利要求1所述的方法,其中所述压力机群中的压力机是经注册的压力机,并且从压力机群中分配处于空闲状态的一个或多个压力机还包括:根据来自所述压力机群中的压力机的心跳消息确定相应压力机处于存活状态;以及从所述压力机群中处于存活状态的压力机中分配处于空闲状态的所述一个或多个压力机
。6.
根据权利要求1所述的方法,其中所述压力机群中的每个压力机可以被单独授权,并且仅有被授权的压力机能够被分配给用户以执行压力测试任务
。7.
根据权利要求1所述的方法,还包括响应于用户的输入而显示压力测试任务的列表,所述列表包括利用所述压力机群中的压力机正在执行的一个或多个压力测试任务以及已完成执行的一个或多个压力测试任务
。8.
根据权利要求7所述的方法,还包括响应于用户选择所述列表中的一个压力测试任务,显示与该压力测试任务相关联的测试数据
。9.
根据权利要求1所述的方法,其中与所述压力测试请求相关联的所述压力测试脚本是用户从存储的多个测试脚本中选择的并...

【专利技术属性】
技术研发人员:赵梦蕾
申请(专利权)人:领悦数字信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1