压测过程中的文件传参方法及系统技术方案

技术编号:33835726 阅读:17 留言:0更新日期:2022-06-16 11:51
本申请公开了一种压测过程中的文件传参方法,该方法包括:压测平台配置压测任务,并在启动所述压测任务后生成任务执行文件,其中,所述压测任务对应一组已编排的压测接口,所述任务执行文件根据传参模式和所述压测接口绑定的传参文件按预设规则生成;调度中心根据用户压力需求调度对应数量的发压实例,每个所述发压实例根据所述传参模式对应的策略分配和读取所述任务执行文件。本申请还公开了一种文件传参系统、装置、计算机设备和计算机可读存储介质。由此,能够适用于分布式压测,支持参数重复和不重两种文件传参模式。重复和不重两种文件传参模式。重复和不重两种文件传参模式。

【技术实现步骤摘要】
压测过程中的文件传参方法及系统


[0001]本申请涉及软件压力测试
,尤其涉及一种压测过程中的文件传参方法、系统、装置、计算机设备及计算机可读存储介质。

技术介绍

[0002]压力测试是软件质量保障的重要手段,目前主流的压测实施方案主要基于Jmeter、Loadrunner等开源工具。在高并发需求下,单机节点受限于CPU、网卡带宽等资源限制,发压能力可能无法满足需求,于是就有了基于多机集群的分布式压测方案。随着容器化技术和容器编排能力逐渐成熟,基于K8s(Kubernetes,容器的编排管理系统)容器化调度的分布式压测方案被提出,通常根据压测的并发数需求,调度起新的Pod(K8s中管理的最小单位级,是一个或多个容器的组合),每个Pod会执行Jmeter(或其他压测工具)指令,并在指定的并发线程进行发压。Jmeter(或其他压测工具)支持基于文件传参,使得每次施压的接口中部分字段值是动态变化的,增加压测接口内容多样性。
[0003]Jmeter等开源工具传参文件读取支持两种模式:一是重复模式,读完一遍之后再从头读一遍文件,如此反复压测接口;二是不重模式,文件只读一遍,每一行对应的接口发完即止,从而保证内容不重复。但是,在分布式压测方案中,现有开源工具对于上述两种传参模式可能存在磁盘IO(Input/Output,输入/输出)压力大或不适用的问题,从而无法采用上述两种传参模式顺利地进行文件传参。

技术实现思路

[0004]本申请的主要目的在于提出一种文件传参方法、系统、装置、计算机设备及计算机可读存储介质,旨在解决分布式压测过程中如何实现文件传参的问题。
[0005]为实现上述目的,本申请实施例提供了一种文件传参方法,所述方法包括:
[0006]压测平台配置压测任务,并在启动所述压测任务后生成任务执行文件,其中,所述压测任务对应一组已编排的压测接口,所述任务执行文件根据传参模式和所述压测接口绑定的传参文件按预设规则生成;
[0007]调度中心根据用户压力需求调度对应数量的发压实例,每个所述发压实例根据所述传参模式对应的策略分配和读取所述任务执行文件。
[0008]可选地,所述配置压测任务包括:
[0009]响应用户的操作,新建压测任务,配置所述压测任务对应的压测接口,上传传参文件至文件网盘,并将所述传参文件绑定至指定的所述压测接口,选择所述压测接口的传参模式,其中,所述传参模式包括重复模式和不重模式。
[0010]可选地,所述配置压测任务还包括:
[0011]将所述压测任务相关配置信息保存至数据库,所述相关配置信息包括所述压测任务的压测接口编排信息、每个所述压测接口的信息、所述压测接口绑定的传参文件存储路径、所述压测接口的传参模式。
[0012]可选地,所述压测接口的编排规则包括串行和并行,每组串行接口对应所述压测任务的一个子任务。
[0013]可选地,所述生成任务执行文件包括:
[0014]当所述子任务对应的一组串行接口中所有所述压测接口均采用重复模式传参时,所述子任务采用重复模式生成一个任务执行文件;
[0015]当所述子任务对应的一组串行接口中有一个或多个所述压测接口采用不重模式传参时,所述子任务采用不重模式生成多个任务执行文件分块。
[0016]可选地,所述子任务采用重复模式生成一个任务执行文件包括:
[0017]同时遍历该组串行接口对应的各个所述传参文件,每遍历一行,将读取到的传参值与接口信息拼接后按照接口编排顺序输出一行格式化内容,累加到任务执行文件中,其中,如果遍历到所述传参文件的末尾则重新从头遍历,直至满足所述任务执行文件的行数要求后退出遍历,所述行数要求由该组串行接口对应的各个所述传参文件的最大行数与预先设置的默认最小行数作比较后确定,取两者的最大值。
[0018]可选地,所述子任务采用不重模式生成多个任务执行文件分块包括:
[0019]同时遍历该组串行接口对应的各个所述传参文件,每遍历一行,将读取到的传参值与接口信息拼接后按照接口编排顺序输出一行格式化内容,累加到任务执行文件中,其中,如果采用重复模式的所述压测接口对应的所述传参文件遍历到末尾则重新从头遍历,直至任一采用不重模式的所述压测接口对应的所述传参文件遍历到末尾则退出遍历。
[0020]可选地,所述子任务采用不重模式生成多个任务执行文件分块还包括:
[0021]在遍历的过程中,当所述任务执行文件累加到N行时,切换到新文件继续累加,得到多个任务执行文件分块,其中N为预设分块行数。
[0022]可选地,所述每个所述发压实例根据所述传参模式对应的策略分配和读取所述任务执行文件包括:
[0023]当所述子任务采用重复模式时,每个所述发压实例通过一个单独的线程读取所述任务执行文件,并通过两个队列交替消费所读取的内容。
[0024]可选地,所述通过一个单独的线程读取所述任务执行文件,并通过两个队列交替消费所读取的内容包括:
[0025]所述发压实例维护两个队列A和B,所述线程从头遍历所述任务执行文件,初始时读取C行内容加入到队列A中,再读取C行内容加入到队列B中;所述发压实例的压测执行线程组先从队列A消费所述C行内容,当队列A消费完后切换到队列B消费,同时通知所述线程继续遍历所述压测执行文件,读取C行内容加入到队列A中,当遍历到文件末尾时重新从头遍历,如此交替消费以执行所述子任务。
[0026]可选地,所述每个所述发压实例根据所述传参模式对应的策略分配和读取所述任务执行文件还包括:
[0027]当所述子任务采用不重模式时,所述调度中心将所述多个任务执行文件分块的路径加入指定队列中,每个所述发压实例分别通过一个单独的线程从所述指定队列中每次消费并读取一个所述任务执行文件分块。
[0028]可选地,所述每个所述发压实例分别通过一个单独的线程从所述指定队列中每次消费并读取一个所述任务执行文件分块包括:
[0029]每个所述发压实例分别通过一个单独的线程从所述指定队列中每次消费一个所述任务执行文件分块的路径;根据所述路径从所述文件网盘中读取对应的所述任务执行文件分块,加入到队列D;所述发压实例的压测执行线程组从队列D消费所述任务执行文件分块,执行相应任务;当队列D消费完时,再从所述指定队列中消费下一个所述任务执行文件分块的路径,直至所述指定队列被消费完。
[0030]此外,为实现上述目的,本申请实施例还提供一种文件传参系统,所述系统包括:
[0031]压测平台,用于配置压测任务,并在启动所述压测任务后生成任务执行文件,其中,所述压测任务对应一组已编排的压测接口,所述任务执行文件根据传参模式和所述压测接口绑定的传参文件按预设规则生成;
[0032]调度中心,用于根据用户压力需求调度对应数量的发压实例,每个所述发压实例根据所述传参模式对应的策略分配和读取所述任务执行文件。
[0033]为实现上述目的,本申请实施例还提供一种文件传参方法,应用于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种压测过程中的文件传参方法,其特征在于,所述方法包括:压测平台配置压测任务,并在启动所述压测任务后生成任务执行文件,其中,所述压测任务对应一组已编排的压测接口,所述任务执行文件根据传参模式和所述压测接口绑定的传参文件按预设规则生成;调度中心根据用户压力需求调度对应数量的发压实例,每个所述发压实例根据所述传参模式对应的策略分配和读取所述任务执行文件。2.根据权利要求1所述的文件传参方法,其特征在于,所述配置压测任务包括:响应用户的操作,新建压测任务,配置所述压测任务对应的压测接口,上传传参文件至文件网盘,并将所述传参文件绑定至指定的所述压测接口,选择所述压测接口的传参模式,其中,所述传参模式包括重复模式和不重模式。3.根据权利要求2所述的文件传参方法,其特征在于,所述配置压测任务还包括:将所述压测任务相关配置信息保存至数据库,所述相关配置信息包括所述压测任务的压测接口编排信息、每个所述压测接口的信息、所述压测接口绑定的传参文件存储路径、所述压测接口的传参模式。4.根据权利要求1至3任一项所述的文件传参方法,其特征在于,所述压测接口的编排规则包括串行和并行,每组串行接口对应所述压测任务的一个子任务。5.根据权利要求4所述的文件传参方法,其特征在于,所述生成任务执行文件包括:当所述子任务对应的一组串行接口中所有所述压测接口均采用重复模式传参时,所述子任务采用重复模式生成一个任务执行文件;当所述子任务对应的一组串行接口中有一个或多个所述压测接口采用不重模式传参时,所述子任务采用不重模式生成多个任务执行文件分块。6.根据权利要求5所述的文件传参方法,其特征在于,所述子任务采用重复模式生成一个任务执行文件包括:同时遍历该组串行接口对应的各个所述传参文件,每遍历一行,将读取到的传参值与接口信息拼接后按照接口编排顺序输出一行格式化内容,累加到任务执行文件中,其中,如果遍历到所述传参文件的末尾则重新从头遍历,直至满足所述任务执行文件的行数要求后退出遍历,所述行数要求由该组串行接口对应的各个所述传参文件的最大行数与预先设置的默认最小行数作比较后确定,取两者的最大值。7.根据权利要求5或6所述的文件传参方法,其特征在于,所述子任务采用不重模式生成多个任务执行文件分块包括:同时遍历该组串行接口对应的各个所述传参文件,每遍历一行,将读取到的传参值与接口信息拼接后按照接口编排顺序输出一行格式化内容,累加到任务执行文件中,其中,如果采用重复模式的所述压测接口对应的所述传参文件遍历到末尾则重新从头遍历,直至任一采用不重模式的所述压测接口对应的所述传参文件遍历到末尾则退出遍历。8.根据权利要求7所述的文件传参方法,其特征在于,所述子任务采用不重模式生成多个任务执行文件分块还包括:在遍历的过程中,当所述任务执行文件累加到N行时,切换到新文件继续累加,得到多个任务执行文件分块,其中N为预设分块行数。9.根据权利要求5至8任一项所述的文件传参方法,其特征在于,所述每个所述发压实
例根据所述传参模式对应的策略分配和读取所述任务执行文件包括:当所述子任务采用重复模式时,每个所述发压实例通过一个单独的线程读取所述任务执行文件,并通过两个队列交替消费所读取的内容。10.根据权利要求9所述的文件传参方法,其特征在于,所述通过一个单独的线程读取所述任务执行文件,并通过两个队列交替消费所读取的内容包括:所述发压实例维护两个队列A和B,所述线程从头遍历所述任务执行文件,初始时读取C行内容加入到队列A中,再读取C行内容加入到队列B中;所述发压实例的压测执行线程组先从队列A消费所述C行内容,当队列A消费完后切换到队列B消费,同时通知所述线程继续遍历所述压测执行文件,读取C行内容加入到队列A中,当遍历到文件末尾时重新从头遍历,如此交替消费以执行所述子任务。11.根据权利要求5至10任一项所述的文件传参方法,其特征在于,所述每个所述发压实例根据所述传参模式对应的策略分配和读取所述任务执行文件还包括:当所述子任务采用不重模式时,所述调度中心将所述多个任务执行文件分块的路径加入指定队列中,每个所述发压实例分别通过一个单独的线程从所述指定队列中每次消费并读取一个所述任务执行文件分块。12.根据权利要求11所述的文件传参方法,其特征在于,所述每个所述发压实例分别通过一个单独的线程从所述指定队列中每次消费并读取一个所述任务执行文件分块包括:每个所述发压实例分别通过一个单独的线程从所述指定队列中每次消费一个所述任务执行文件分块的路径;根据所述路径从所述文件网盘...

【专利技术属性】
技术研发人员:徐光耀
申请(专利权)人:上海幻电信息科技有限公司
类型:发明
国别省市:

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

1