一种基于分布式发压机集群的压力测试方法和系_中国专利数据库
全国客户服务热线:4006-054-001 疑难解答:159-9855-7370(7X24受理投诉、建议、合作、售前咨询),173-0411-9111(售前),155-4267-2990(售前),座机/传真:0411-83767788(售后),微信咨询:543646
企业服务导航

一种基于分布式发压机集群的压力测试方法和系

发布日期:2024-08-21 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370


一种基于分布式发压机集群的压力测试方法和系
申请号: 申请日:
公开(公告)号: 公开(公告)日:
发明(设计)人: 申请(专利权)人:
主分类号: 分类号:
代理公司: 代理人:
地址: 国省代码:
权利要求书: 说明书:
微信咨询: 添加微信:543646或【点此在线咨询 文件下载: 【点此下载】请正确填写本页网址和接收邮箱
摘要: 本发明涉及负载测试,更具体地,涉及一种基于分布式发压机集群的压力测试方法和系统。、在目前的软件业务发展中,有一项任务是在业务的发展阶段需要完成的,那就是对当前软件的最大负载进行摸底以确认在业务发展中所能承受的最大用户量。那么在负载测试的过程中,往往需要知道每秒内处理的事务数(transac...
相关服务: 软件产品登记测试全国受理 软件著作权666元代写全部资料全国受理 实用新型专利1875代写全部资料全国受理

本发明涉及负载测试,更具体地,涉及一种基于分布式发压机集群的压力测试方法和系统。背景技术:1、在目前的软件业务发展中,有一项任务是在业务的发展阶段需要完成的,那就是对当前软件的最大负载进行摸底以确认在业务发展中所能承受的最大用户量。那么在负载测试的过程中,往往需要知道每秒内处理的事务数(transactions per second,tps)的拐点,每秒内处理的事务数可由并发数除以平均响应时间计算得到,例如并发数为100,接口的平均响应时间为0.5秒,则每秒内处理的事务数为200。2、通常使用梯度增压的方法去确定每秒内处理的事务数的拐点,在一般的负载测试中,梯度增压的梯度值是固定设置的,同时为了快速找到峰值,梯度值的设定通常来说不会太小,如果峰值较高则逼近峰值的测试时间也会很久,而且还存在峰值点不精确的问题。另外,在利用发布式发压集群对目标服务器进行负载测试的过程中也存在人工无法确定每个发压机资源使用量的问题。3、在现有的专利文件中公开了一种软件的负载测试装置,包括:虚拟用户发生器,捕获用户业务流程并创建测试脚本;控制台,控制软件运行测试脚本并监视测试脚本的运行状况,控制台还监控软件的负载情况,控制台根据测试脚本的运行情况和软件的负载情况生成场景的执行结果文件并保存;分析器,打开控制台生成的场景的执行结果文件,将执行结果文件中的数据以图形化的方式显示;负载发生器,产生虚拟客户端的请求,创建不同等级的负载,负载提供给控制台,控制台将负载加载到软件的运行中;然而该方案只是收集了负载测试中各种因素的数据进行汇总显示,还是需要人工判断负载测试中所能达到的最大负载,准确率较低;尽管该方案可以协助测试人员预估最大负载,但还是存在人工测试的人力、时间成本较高的问题,而且也很依赖测试人员的经验和水平来找到最大负载。技术实现思路1、本发明的目的之一在于提供一种基于分布式发压机集群的压力测试方法,本发明的目的之二在于提供一种基于分布式发压机集群的压力测试系统,以解决现有技术在进行软件压力测试时人工成本高、准确率低以及无法确定发压机集群中每个发压机资源使用量的缺陷。2、为解决上述技术问题,本发明的技术方案如下:3、一种基于分布式发压机集群的压力测试方法,包括以下步骤:4、对分布式发压机集群中目标服务器的历史tps和历史并发数进行函数拟合,获取第一拟合函数;5、对分布式发压机集群中每个发压机的性能指标和历史并发数进行函数拟合,获取第二拟合函数;根据所述第二拟合函数获取每个发压机的并发数上限值;6、利用所述第一拟合函数确定拟合最大并发数;7、若所述第一拟合函数无法确定拟合最大并发数,则根据分布式发压机集群中目标服务器、中间件和数据库的性能指标,以及预先训练好的神经网络模型确定拟合最大并发数;8、基于每个发压机的并发数上限值分配发压机,将所述拟合最大并发数作为总并发数,对目标服务器进行施压,获取执行tps;9、重复进行函数拟合、确定拟合最大并发数和获取执行tps,直至所述执行tps满足预设的峰值条件,获取峰值tps,完成压力测试;10、在本方法中,为了节约资源,先利用第一拟合函数确定拟合最大并发数,若确定不了,则进一步利用神经网络模型去计算;另外判断执行tps是否满足峰值条件,可以通过执行拟合最大并发数相邻的两个并发数,获取相邻并发数对应的两个相邻执行tps,若执行tps均大于这两个相邻执行tps,那么就说明此时的执行tps处于峰值拐点(同时为极大值和最大值),因此,即可获取峰值tps,完成压力测试。11、优选地,所述的对目标服务器的历史tps和历史并发数进行函数拟合,获取第一拟合函数包括:12、将目标服务器的并发数作为自变量x1、tps作为因变量y拟合为一元n次回归方程:,其中,w1和b1分别为第一和第二待拟合参数;n为预设值;13、利用最小二乘法分别计算不同n值的一元n次回归方程的待拟合参数和残差平方和,获取残差平方和最小的n值并保存为n1;14、将目标服务器的并发数进行n1次根号计算后作为自变量x2、tps作为因变量y拟合为一元n1次回归方程:,其中,w2、w3和b2分别为第三、第四和第五待拟合参数;15、利用最小二乘法计算所述一元n1次回归方程的待拟合参数,获取所述第一拟合函数。16、优选地,所述的对每个发压机的性能指标和历史并发数进行函数拟合,获取第二拟合函数包括:17、对每个发压机的性能指标进行异常值剔除,分别计算每个发压机异常值剔除后的性能指标与所述并发数之间的相关度,再次剔除相关度低于预设阈值的性能指标,获取每个发压机的相关度剔除后的性能指标并进行归一化处理;18、将每个发压机归一化后的性能指标作为自变量、目标服务器的并发数作为因变量构建多元一次线性回归方程,使用岭回归方法拟合所述多元一次线性回归方程的参数,获取所述第二拟合函数。19、优选地,获取所述的预先训练好的神经网络模型包括:20、对目标服务器、中间件和数据库的性能指标进行异常值剔除,获取异常值剔除后的性能指标,分别计算所述异常值剔除后的性能指标与所述并发数之间的第一相关度,以及所述异常值剔除后的性能指标与所述tps之间的第二相关度,再次剔除第一或第二相关度低于预设阈值的性能指标,获取目标服务器、中间件和数据库的相关度剔除后的性能指标并进行归一化处理;21、在目标服务器、中间件和数据库的归一化处理后的性能指标中,将最大相关度的性能指标作为基准参数,建立其他性能指标与所述基准参数之间的关联关系;建立关联关系可以有效提高模型的拟合效果;22、将基准参数和其他性能指标作为输入、目标服务器的tps和并发数作为输出,对预设的神经网络模型进行训练,获取所述预先训练好的神经网络模型。23、优选地,所述预设的神经网络模型具体为bp神经网络模型;24、所述bp神经网络模型包括依次连接的:输入层、第一隐藏层、第二隐藏层和输出层。25、优选地,利用局部异常因子算法进行所述异常值剔除;利用斯皮尔曼相关系数进行所述相关度的计算;利用均值归一法进行所述归一化处理。26、优选地,所述的根据分布式发压机集群中目标服务器、中间件和数据库的性能指标,以及预先训练好的神经网络模型确定拟合最大并发数包括:27、将所述目标服务器、中间件和数据库的性能指标输入预先训练好的神经网络模型,获取一一对应的tps预测结果和并发数预测结果;28、对所述目标服务器、中间件和数据库的性能指标和tps预测结果进行函数拟合,获取第三拟合函数;利用所述第三拟合函数确定拟合最大tps,包括:29、若所述第三拟合函数存在峰值拐点,则将第三拟合函数峰值拐点对应的tps作为所述拟合最大tps;30、若所述第三拟合函数不存在峰值拐点,则将所述目标服务器、中间件和数据库的各个性能指标上限阈值分别代入第三拟合函数中进行计算,分别获取各个性能指标上限阈值对应的理论tps;31、利用预设的判定条件对各个理论tps进行可执行判定,获取可执行的理论tps,将可执行的理论tps中的最小值作为所述拟合最大tps;32、由于第三拟合函数获取的都是理论计算值,因此可能会存在计算结果对应的指标值超出实际的上限阈值的情况,因此必须进行可执行判定,从而避免发生故障;33、将拟合最大tps对应的并发数预测结果作为所述拟合最大并发数。34、优选地,所述的对目标服务器进行施压的过程中还包括发压机异常检测;35、若检测到异常发压机,则根据每个发压机的并发数上限值调用其他发压机替换所述异常发压机。36、优选地,所述对分布式发压机集群中目标服务器的历史tps和历史并发数进行函数拟合,获取第一拟合函数之前还包括:37、初始化总并发数并对目标服务器进行初始施压,获取初始施压过程中目标服务器的并发数和tps并分别保存为历史并发数和历史tps,以及获取每个发压机、目标服务器、中间件和数据库的性能指标;所述的性能指标包括:cpu、内存和带宽;38、若历史tps中存在峰值拐点,则将该峰值拐点作为峰值tps,完成压力测试。39、本发明还提供一种基于分布式发压机集群的压力测试系统,包括:分布式发压机集群和若干个压力测试工具;40、所述分布式发压机集群包括:主发压机、至少1个从发压机、目标服务器以及目标服务器对应的中间件和数据库,所述主发压机分别与每个所述从发压机连接,每个发压机均分别与所述目标服务器连接;41、每个所述发压机、目标服务器、中间件和数据库上均设置有所述压力测试工具,所述压力测试工具存储有计算机程序,所述计算机程序被执行时实现上述基于分布式发压机集群的压力测试方法的步骤。42、与现有技术相比,本发明技术方案的有益效果是:43、本发明提供一种基于分布式发压机集群的压力测试方法,首先对历史并发与历史tps进行拟合,生成第一拟合函数,并利用第一拟合函数确定待执行的拟合最大并发数,若第一拟合函数无法确定拟合最大并发数,则利用神经网络模型和目标服务器、中间件和数据库的性能指标去预测tps和并发数,随后基于tps和并发数的预测结果确定拟合最大并发数;调整总并发数进行施压,判断拟合最大并发数对应的执行tps是否满足峰值条件,若满足,则将该执行tps作为峰值tps,完成压力测试,若不满足,则重复执行上述步骤,直到确定峰值tps;44、本发明通过第一拟合函数和神经网络模型去确定待执行的拟合最大并发数,能够根据历史数据进行全自动化的压力测试,在压力测试过程中无需人工干预,有效降低了人力物力成本,同时提高了压力测试的智能化程度和准确率;45、同时,本发明会事先采集发压机集群中各节点的性能指标,并拟合出各发压机的性能指标与并发的关系作为第二拟合函数,以此确定每个发压机的并发数上限值,然后当第一拟合函数或神经网络模型确定出需要执行的拟合最大并发时,则根据不同发压机的并发数上限值计算出需要的节点数,调用对应个数的节点执行压力测试;46、本发明能够利用事先采集到性能指标分析发压机集群中各个节点的能力,能够确定发压机集群中每个发压机资源使用量,并且动态调度发压机集群的发压机;47、另外,在压力测试的过程中,本发明还能自动检测所使用的发压机是否出现异常,并且若出现异常则会做出更换节点的动作,有效保障了分布式发压机集群压力测试的安全性和鲁棒性;48、最后,本发明还提供一种基于分布式发压机集群的压力测试系统,系统中提供了一种专用于分布式发压机集群的压力测试工具,从而将本发明的方法部署在各个节点上进行实施,从而进行自动化的压力测试。

一种基于分布式发压机集群的压力测试方法和系