基于go开发的压测工具的制作方法

文档序号:29042565发布日期:2022-02-25 21:07阅读:357来源:国知局
基于go开发的压测工具的制作方法

1.本发明涉及接口测试技术领域,尤其涉及一种基于go开发的压测工具。


背景技术:

2.互联网公司提供服务的相关数据传递主要由对外api接口提供,需要尽可能确保接口在大规模并发请求下能够保持稳定不宕机;为了应对这种海量用户请求的情况,所有api接口都需要进行一定的压力测试,因此一个符合公司技术框架的压测工具是十分必要的。
3.目前市面上常见的api接口压力测试工具例如ab(apache自带的测试工具)能够被用来做一定的接口压力测试,但是任然无法满足很多测试场景:1.只能测试web接口,无法测试grpc协议或者游戏服自定义接口。2.对于有一定参数复杂度的接口没法做到随机测试,只能进行固定参数的接口参数(get或者post的数据不变),测试内容覆盖面低,对于接口逻辑测试不全面,压测报告真实性较低。3.针对公司基于go生态框架开发的api服务,无法感知服务内部的具体运作状态,需要人为同步抓取,结合接口测试结果进行压力测试分析,成本较高且数据抓取不精准。4.针对api服务外部,对于带有prometheus等监控服务器状态的进程的数据也需要人为同步抓取记录,容易造成数据不精确。5.每次压力测试的结果都需要人为维护,压测工具的数据报告,服务内部的状态,服务外服务器整体的状态都需要手动汇总记录。如果存在二次优化测试,还需要人为对比性能优化提升情况,耗时耗力。
4.现有的压测工具只能测试web接口,无法测试grpc协议或者游戏服自定义接口,测试内容覆盖面低,对于接口逻辑测试不全面,容易造成数据不精确,需要人为对比性能优化提升情况,耗时耗力。


技术实现要素:

5.本发明的目的是为了解决现有的压测工具只能测试web接口,无法测试grpc协议或者游戏服自定义接口,测试内容覆盖面低,对于接口逻辑测试不全面,容易造成数据不精确,需要人为对比性能优化提升情况,耗时耗力的缺点,而提出的基于go开发的压测工具。
6.为了实现上述目的,本发明采用了如下技术方案:
7.基于go开发的压测工具,包括软件平台,所述软件平台包括显示模块、电源模块、测试维度配置模块、压力测试模块、监控模块、测试数据采集模块、测试数据对比模块、数据生成模块、无线传输模块,无线传输模块上连接有移动模块;
8.测试维度配置模块用于对压力测试进行规则定制;
9.显示模块用于显示测试的数据;
10.电源模块用于供电;
11.压力测试模块用于测试平台接口压力数据;
12.监控模块用于对压测记性监控;
13.测试数据采集模块用于将测试的数据进行采集获取;
14.测试数据对比模块用于将采集的数据进行对比;
15.数据生成模块用于自动生成markdown格式的压测报告以及分析元数据;
16.无线传输模块用于传输数据报告;
17.移动模块用于远程登录查看数据报告。
18.优选的,所述压力测试模块包括测试维度配置模块包括规则定制单元和保存单元。
19.优选的,所述规则定制单元包括并发数配置、压测总量统计、自定义接口参数。
20.优选的,所述自定义接口参数用于对所有参数配置,
21.包括根据并发数设置goroutine数量配置;
22.根据请求时间长度和压测论述设置程序运行总时长配置;
23.根据开启标识判断是否启动抓取服务内外部状态配置。
24.优选的,所述保存单元用于每份压测规则都进行保存留档,对于每次接口测试都会记录当前程序编译的git版本水印。
25.优选的,所述监控模块包括api服务内部监控和api服务外部;
26.api服务内部监控主要涉及go-pprof以及go-trace数据,抓取间隔可配置;
27.api服务外部,主要涉及基于prometheus的监控数据(服务器cpu/内存/io数据)。
28.优选的,所述测试数据采集模块包括测试数据记录单元、数据采集单元;
29.数据记录单元用于记录压测的时间;
30.数据采集单元用于采集压测数据。
31.优选的,所述测试数据对比模块包括测试数据对比单元、测试时间对比单元;
32.测试数据对比单元用于对比接口压力性能测试的数据;
33.测试时间对比单元用于对比接口压力性能测试时所需时间。
34.优选的,所述数据生成模块包括数据确认单元、数据保存单元、数据打印单元;
35.数据确认单元用于确认测试后的数据;
36.数据保存单元用于保存确认后的数据;
37.数据打印单元用于将确认保存的数据进行打印,自动生成多份分析报告。
38.优选的,所述无线传输模块为4g/5g通信数据,移动模块为手机或平板,通过无线传输模块进行传送,通过手机或平板远程接收数据。
39.与现有技术相比,本发明的优点在于:
40.本方案自定义接口逻辑开发大大提高了接口压测的真实性,保证各类接口情况都会存在于压测之中,而非普通的固定传参;
41.本方案支持接口压测逻辑自定义开发,提供http/grpc/游戏proto自定义的接口开发测试方案;
42.本方案记录压测工具测试结果,汇总api服务内部go进程状态,api服务外部服务器整体运作状态,自动生成接口压测报告;
43.本方案支持压测报告对比,自动比对任意两份压测报告的性能差异,方便问题追溯;
44.本方案自动采集的服务器内外状态以及报告对比功能,大大减少了压测人员的工作量,使其关注点能够更多的汇聚在接口性能优化上。
附图说明
45.图1为本发明提出的基于go开发的压测工具的框图;
46.图2为本发明提出的规则定制单元框图;
47.图3为本发明提出的监控模块框图;
48.图4为本发明提出的测试数据采集模块框图;
49.图5为本发明提出的测试数据对比模块框图;
50.图6为本发明提出的数据生成模块框图。
具体实施方式
51.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
52.实施例一
53.参照图1-6,基于go开发的压测工具,包括软件平台,软件平台包括测试维度配置模块、压力测试模块、监控模块、测试数据采集模块、测试数据对比模块、数据生成模块、无线传输模块,无线传输模块上连接有移动模块;
54.测试维度配置模块用于对压力测试进行规则定制;
55.压力测试模块用于测试平台接口压力数据;
56.监控模块用于对压测记性监控;
57.测试数据采集模块用于将测试的数据进行采集获取;
58.测试数据对比模块用于将采集的数据进行对比;
59.数据生成模块用于自动生成markdown格式的压测报告以及分析元数据;
60.无线传输模块用于传输数据报告;
61.移动模块用于远程登录查看数据报告。
62.本实施例中,压力测试模块包括测试维度配置模块包括规则定制单元和保存单元。
63.本实施例中,规则定制单元包括并发数配置、压测总量统计、自定义接口参数。
64.本实施例中,自定义接口参数用于对所有参数配置,
65.包括根据并发数设置goroutine数量配置;
66.根据请求时间长度和压测论述设置程序运行总时长配置;
67.根据开启标识判断是否启动抓取服务内外部状态配置。
68.本实施例中,保存单元用于每份压测规则都进行保存留档,对于每次接口测试都会记录当前程序编译的git版本水印。
69.本实施例中,监控模块包括api服务内部监控和api服务外部;
70.api服务内部监控主要涉及go-pprof以及go-trace数据,抓取间隔可配置;
71.api服务外部,主要涉及基于prometheus的监控数据(服务器cpu/内存/io数据)。
72.本实施例中,测试数据采集模块包括测试数据记录单元、数据采集单元;
73.数据采集单元用于采集压测相关数据,测试时间,服务内外部状态,接口延迟信息
74.数据记录单元用于记录采集到的数据,进行整合分类。
75.本实施例中,测试数据对比模块包括测试数据对比单元、测试时间对比单元;
76.测试数据对比单元用于对比接口压力性能测试的数据;
77.测试时间对比单元用于对比接口压力性能测试时所需时间。
78.本实施例中,数据生成模块包括数据确认单元、数据保存单元、数据打印单元;
79.数据确认单元用于确认采集数据的合理性;
80.数据保存单元用于保存确认后的数据;
81.数据打印单元用于将确认保存的数据进行保存以及性能指标图表制作,自动生成多份分析报告。
82.实施例二
83.参照图1-6,基于go开发的压测工具,包括软件平台,软件平台包括测试维度配置模块、压力测试模块、监控模块、测试数据采集模块、测试数据对比模块、数据生成模块、无线传输模块,无线传输模块上连接有移动模块;
84.测试维度配置模块用于对压力测试进行规则定制;
85.压力测试模块用于测试平台接口压力数据;
86.监控模块用于对压测记性监控;
87.测试数据采集模块用于将测试的数据进行采集获取;
88.测试数据对比模块用于将采集的数据进行对比;
89.数据生成模块用于自动生成markdown格式的压测报告以及分析元数据;
90.无线传输模块用于传输数据报告;
91.移动模块用于远程登录查看数据报告。
92.本实施例中,基于go开发的压测工具的压测方式具体包括以下步骤:
93.s1:基于go开发压测工具,利用压力测试模块使用时,添加多维度配置规则(并发数,压测总量,自定义接口参数等),每份压测规则都可以进行保存留档,对于每次接口测试都会记录当前程序编译的git版本水印;
94.s2:所有参数可配置化,根据并发数设置goroutine数量,根据请求时间长度和压测论述设置程序运行总时长,根据开启标识判断是否启动抓取服务内外部状态;
95.s3:通过监控模块进行监控,api服务内部监控,主要涉及go-pprof以及go-trace数据,抓取间隔可配置;api服务外部,主要涉及基于prometheus的监控数据(服务器cpu/内存/io数据);
96.s4:支持单接口多轮压测,记录以及对比不同压测情况下接口的工作情况,每轮压测间隔可自行设置确保轮次之间的服务器内外状态稳定;
97.s5:自动生成markdown格式的压测报告以及分析元数据,可对同份接口的任意两份分析元数据生成比对报告。
98.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1