分布式性能测试方法及装置与计算机可读存储介质制造方法及图纸

技术编号:17970262 阅读:54 留言:0更新日期:2018-05-16 11:13
本发明专利技术公开了一种分布式性能测试方法及装置与计算机可读存储介质,该分布式性能测试方法包括:根据预存的节点分配信息,解析得到各从服务器的配置信息,所述配置信息包括网络地址以及各从服务器分配的节点数;根据所述各从服务器的配置信息,对总测试数据进行拆分,得到各节点对应的子测试数据,并将测试脚本中的数据引用替换为各节点对应的子测试数据,建立各节点对应的测试脚本;将测试程序、各节点对应的子测试数据与测试脚本推送到各个从服务器的节点;根据测试任务,向所述各从服务器的节点发送相应命令,由各节点执行任务并反馈执行结果。实施本发明专利技术能将一个测试任务自动拆分在多个节点同步进行,满足大并发量的测试场景需求。

【技术实现步骤摘要】
分布式性能测试方法及装置与计算机可读存储介质
本专利技术涉及测试领域,特别涉及一种分布式性能测试方法及装置与计算机可读存储介质。
技术介绍
性能测试中经常会遇到大并发的测试任务(虚拟用户超过6万),单个压力源节点难以支撑这么高的测试场景;商业性能测试工具价格比较昂贵,而开源的测试工具在实现复杂的业务场景时存在一定的不足,需要手动修改测试数据、测试脚本等,费事费力且容易出错。测试工具Jmeter有一个远程运行的功能,通过这个模块可以从单个Jmeter客户端控制多个远程引擎,从而实现模拟服务器上的较大负载。理论上Jmeter客户端的一个实例可以控制任意数量的远程Jmeter实例,并从中收集所有的数据。远程运行功能通过以下手段实现:将测试脚本保存在本地机器;从单个机器管理多个Jmeter引擎;客户端负责将脚本的内容(请求)发送到所有的服务器;所有的节点都运行相同的测试计划,每个节点都运行完整的测试计划;而且,远程运行模式会占用更多的资源,不是独立运行相同数量的非GUI测试,如果使用的节点实例过多,会造成Jmeter客户端资源过载。另外,对于参数化的测试场景,由于每个节点运行的是相同的测试计划,就必须在各个服务器上相同的路径下准备测试数据文件。这种条件限制下,一台服务器就只能运行一个远程实例,大大升高了测试环境的需求。Jmeter的远程运行模式中,执行测试前,需要先将各个节点的Jmeter实例以Jmeterserver模式启动(手动执行);对于引用测试数据的测试计划,需要手工将数据文件拆分,然后放置在各个远程服务器的相同的路径下,并且在这种场景下,每个服务器上只能运行一个远程实例;如果节点过多,会大大增加Jmeter客户端的资源开销以及网络开销,测试结果有可能因此受到某种程度的污染。在春节抢红包性能测试任务时,由于要模拟高并发(超过5万)的场景,单个节点无法满足测试需求,并且业务要求每个账号只能调用一次,无法重复使用。当时采取的手段是将测试数据手工拆分成多个,放置在不同服务器的不同路径下,再将Jmeter拷贝多份,并分别重命名放置在相应路径下。最后再手动修改测试脚本,做成多个相似的副本(测试数据的引用内容不同),然后手动切换到不同的服务器,各自启动Jmeter程序,独立运行各自的测试脚本。整个过程手动均手动参与,如果测试场景改动,就需要改动多个测试脚本,并且测试数据如果发生变化,也要手动重新拆分,拷贝到不同的服务器的不同节点下。一个持续20分钟的测试场景,往往要做半个小时左右的准备工作,时间成本非常高,并且每个脚本都要靠手动完成,特别容易出错,六七个节点,万一其中一个出错,测试任务就要失败,需要从头开始,对人工编辑的准确性要求非常高。
技术实现思路
有鉴于此,本专利技术旨在提供一种分布式性能测试方法、装置与计算机可读存储介质,避免了测试程序客户端在多个远程节点场景下,系统开销过载的问题,减少测试结果被污染的风险。具体而言,本专利技术一种分布式性能测试方法,包括:根据预存的节点分配信息,解析得到各从服务器的配置信息,所述配置信息包括网络地址以及各从服务器分配的节点数;根据所述各从服务器的配置信息,对总测试数据进行拆分,得到各节点对应的子测试数据,并将测试脚本中的数据引用替换为各节点对应的子测试数据,建立各节点对应的测试脚本;将测试程序、各节点对应的子测试数据与测试脚本推送到各个从服务器的节点;根据测试任务,向所述各从服务器的节点发送相应命令,由各节点执行任务并反馈执行结果。进一步地,所述对总测试数据进行拆分,得到各节点对应的子测试数据的步骤还包括:对各子测试数据配置对应的节点标识;或者/并且,所述将测试脚本中的数据引用替换为各节点对应的子测试数据的步骤还包括:对各节点对应的测试脚本配置所述对应的节点标识。进一步地,所述将测试程序、各节点对应的子测试数据与测试脚本推送到各个从服务器的节点的步骤包括:所述将测试程序拷贝到各个从服务器的节点;对各节点的测试程序配置所述对应的节点标识的文件夹;将各节点对应的子测试数据与测试脚本推送对应的节点。进一步地,所述节点为测试脚本采用XML格式的XML节点,所述分布式性能测试方法还包括:采用xmlstarlet搜索全部引用测试数据文件的XML节点,将引用的测试数据文件名保存在一个数组中,得到文件数组;遍历文件数组,并执行所述将测试脚本中的数据引用替换为各节点对应的子测试数据的步骤。进一步地,各从服务器的配置信息存储在一个全局数组中,数组的每个值表示一个从服务器的配置信息。进一步地,所述测试程序为Jmeter,所述分布式性能测试方法在各节点执行任务并反馈执行结果之后还包括:利用shell脚本将反馈结果合并,调用Jmeter的插件对反馈结果进行分析统计,并绘图。进一步地,所述分布式性能测试方法在各节点执行任务并反馈执行结果之后还包括:测试结果的概要数据保存在一个CSV文件中,编写javascript脚本,将绘制的图表与统计后的CSV文件解析后加载到HTML模板中展示。本专利技术一种分布式性能测试装置,包括:解析单元,用于根据预存的节点分配信息,解析得到各从服务器的配置信息,所述配置信息包括网络地址以及各从服务器分配的节点数;配置单元,用于根据所述各从服务器的配置信息,对总测试数据进行拆分,得到各节点对应的子测试数据,并将测试脚本中的数据引用替换为各节点对应的子测试数据,建立各节点对应的测试脚本;将测试程序、各节点对应的子测试数据与测试脚本推送到各个从服务器的节点;测试控制单元,根据测试任务,向所述各从服务器的节点发送相应命令,由各节点执行任务并反馈执行结果。进一步地,所述节点为测试脚本采用XML格式的XML节点;所述配置单元,包括xmlstarlet工具,用于搜索全部引用测试数据文件的XML节点,将引用的测试数据文件名保存在一个数组中,得到文件数组;遍历文件数组,并执行所述将测试脚本中的数据引用替换为各节点对应的子测试数据的步骤。进一步地,分布式性能测试装置还包括:数据处理单元,用于利用shell脚本将反馈结果合并,调用Jmeter的插件对反馈结果进行分析统计,并绘图。进一步地,所述的分布式性能测试装置还包括:展示单元,用于测试结果的概要数据保存在一个CSV文件中,编写javascript脚本,将绘制的图表与统计后的CSV文件解析后加载到HTML模板中展示。本专利技术一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的分布式性能测试方法。本专利技术各实施例将一个测试任务自动拆分在多个节点同步进行,满足大并发量的测试场景需求;降低人工成本,减少工作时间地点等条件限制;减少数据裁剪/脚本编辑中的人工错误,降低风险。附图说明并入到说明书中并且构成说明书的一部分的附图示出了本专利技术的实施例,并且与描述一起用于解释本专利技术的原理。在这些附图中,类似的附图标记用于表示类似的要素。下面描述中的附图是本专利技术的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种分布式性能测试方法的流程图;图2为本专利技术实施例提供的另一种分布式性能测试方法的流程图;图3为本专利技术实施例提供的一种分布式性能测试装置的结构框图。本文档来自技高网
...
分布式性能测试方法及装置与计算机可读存储介质

【技术保护点】
一种分布式性能测试方法,其特征在于,包括:根据预存的节点分配信息,解析得到各从服务器的配置信息,所述配置信息包括网络地址以及各从服务器分配的节点数;根据所述各从服务器的配置信息,对总测试数据进行拆分,得到各节点对应的子测试数据,并将测试脚本中的数据引用替换为各节点对应的子测试数据,建立各节点对应的测试脚本;将测试程序、各节点对应的子测试数据与测试脚本推送到各个从服务器的节点;根据测试任务,向所述各从服务器的节点发送相应命令,由各节点执行任务并反馈执行结果。

【技术特征摘要】
1.一种分布式性能测试方法,其特征在于,包括:根据预存的节点分配信息,解析得到各从服务器的配置信息,所述配置信息包括网络地址以及各从服务器分配的节点数;根据所述各从服务器的配置信息,对总测试数据进行拆分,得到各节点对应的子测试数据,并将测试脚本中的数据引用替换为各节点对应的子测试数据,建立各节点对应的测试脚本;将测试程序、各节点对应的子测试数据与测试脚本推送到各个从服务器的节点;根据测试任务,向所述各从服务器的节点发送相应命令,由各节点执行任务并反馈执行结果。2.如权利要求1所述的分布式性能测试方法,其特征在于,所述对总测试数据进行拆分,得到各节点对应的子测试数据的步骤还包括:对各子测试数据配置对应的节点标识;或者/并且,所述将测试脚本中的数据引用替换为各节点对应的子测试数据的步骤还包括:对各节点对应的测试脚本配置所述对应的节点标识。3.如权利要求1所述的分布式性能测试方法,其特征在于,所述将测试程序、各节点对应的子测试数据与测试脚本推送到各个从服务器的节点的步骤包括:所述将测试程序拷贝到各个从服务器的节点;对各节点的测试程序配置所述对应的节点标识的文件夹;将各节点对应的子测试数据与测试脚本推送对应的节点。4.如权利要求1所述的分布式性能测试方法,其特征在于,所述节点为测试脚本采用XML格式的XML节点,所述分布式性能测试方法还包括:采用xmlstarlet搜索全部引用测试数据文件的XML节点,将引用的测试数据文件名保存在一个数组中,得到文件数组;遍历文件数组,并执行所述将测试脚本中的数据引用替换为各节点对应的子测试数据的步骤。5.如权利要求1所述的分布式性能测试方法,其特征在于,各从服务器的配置信息存储在一个全局数组中,数组的每个值表示一个从服务器的配置信息。6.如权利要求1-5中任一项所述的分布式性能测试方法,其特征在于,所述测试程序为Jmeter,所述分布式性能测试方法在各节点执行任务并反馈执行结果之后还包括:利用shell脚本将反馈结...

【专利技术属性】
技术研发人员:王福山徐静
申请(专利权)人:海尔优家智能科技北京有限公司
类型:发明
国别省市:北京,11

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

1