一种接口覆盖率报告准确定位和展示的方法
文献发布时间:2023-06-19 10:29:05
技术领域
本发明涉及计算机技术领域,尤其是涉及一种接口覆盖率报告准确定位和展示的方法。
背景技术
精准化测试是一种依托于对当前版本和基线版本代码比对分析的差异代码行信息,通过设计、编写、执行针对性的接口测试用例,实现对当前版本所有新增、变动代码进行白盒测试的代码测试方法。JaCoCo(Java Code Coverage)是一种分析单元测试覆盖率的工具,运行单元测试生成相应的测试覆盖率报告后,可以查看代码中哪些部分被单元测试测到,哪些部分没有没测到,并且给出整个项目不同维度覆盖率百分比统计结果。
但是查看覆盖率报告是需要逐级打开,从包名到类名到方法名到代码行需要依次点击才能找到对应的代码行,操作繁琐且低效。不仅不能快速搜索具体的方法行,同时也无法快速定位业务属性的对外服务接口,也不能快速切换报告中代码的引用函数。
发明内容
本发明的目的就是为了克服上述现有技术存在的操作繁琐且低效的缺陷而提供一种接口覆盖率报告准确定位和展示的方法。
本发明的目的可以通过以下技术方案来实现:
一种接口覆盖率报告准确定位和展示的方法,具体包括以下步骤:
S1、获取当前版本和基线版本的源代码,通过对当前版本和基线版本的源代码进行代码比对得到变动代码行;
S2、根据语法分析树解析所述变动代码行,得到变动代码行关联的对外服务接口;
S3、通过JaCoCo工具获取待测系统的执行数据,根据所述执行数据生成基于变动代码行的覆盖率报告,所述覆盖率报告包括多个报告子页面;
S4、根据匹配规则建立对外服务接口和报告子页面的关联关系,记录报告子页面的锚点;
S5、解析报告子页面的所有引用函数,查找定位引用函数对应的报告子页面并标记,同时将所述标记回写至原引用函数行;
S6、收集覆盖率报告中各维度的百分比统计结果,通过数据比对生成覆盖率趋势图和完成度报表,并发送实时监控告警和消息通知;
S7、根据所述覆盖率报告中各维度的百分比统计结果、覆盖率趋势图和完成度报表生成覆盖率报告的展示模块进行展示,并生成对外服务接口列表展示所有变动代码行的关联接口。
所述步骤S2中还包括将变动代码行和对外服务接口存入数据库。
所述步骤S4中的匹配规则包括根据类名、方法名和代码行进行匹配。
所述步骤S4中还包括将对外服务接口、报告子页面和锚点存入数据库。
所述步骤S5中通过将所述标记回写至原引用函数行,实现在覆盖率报告子页面的引用函数间的快读跳转。
所述步骤S6中生成覆盖率趋势图的过程具体为获取历史覆盖率报告,通过纵向比对所述历史覆盖率报告生成覆盖率趋势图。
所述步骤S6中生成完成度报表的具体过程为获取项目管理预设的期望值,通过横向比对所述项目管理预设的期望值生成完成度报表。
所述步骤S7中覆盖率报告的展示模块设有多级展示页面。
进一步地,所述覆盖率报告的展示模块的一级页面仅展示覆盖率报告的各维度覆盖率统计数据、趋势图、完成度、项目信息和操作按钮。
进一步地,所述项目信息包括被测系统信息、执行时间、执行环境、执行人、当前版本、基准版本和项目负责人,所述操作按钮包括查看报告详情按钮、查看对外服务接口列表按钮、查看系统报告数据趋势图按钮、修改项目期望值按钮和重新获取报告按钮。
所述步骤S7中所有变动代码行的关联接口的接口信息包括多个元信息,所述元信息的类型包括请求类型、请求地址、请求参数和响应结果。
所述对外服务接口列表中设有报告跳转按钮和引用函数跳转按钮,通过点击报告跳转按钮可直接打开相应的覆盖率报告子页面并定位至准确的锚点,通过点击引用函数跳转按钮可快速跳转至引用函数所在的报告子页面。
与现有技术相比,本发明具有以下有益效果:
1.本发明在现有JaCoCo覆盖率报告中新增了变动代码行和对外服务接口关联关系映射,从而提高了覆盖率报告查阅效率,即便没有任何代码基础的人,也能通过最多两次点击操作(在报告展示一级页面点击查看对外服务接口列表,在对外服务接口列表点击跳转)打开并准确定位到接口代码行。
2.本发明在覆盖率报告中引用函数解析、标记、快速跳转,极大的简化了多个类和方法之间报告切换的复杂操作,有效的提高了覆盖率报告分析效率。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1所示,一种接口覆盖率报告准确定位和展示的方法,具体包括以下步骤:
S1、获取当前版本和基线版本的源代码,通过对当前版本和基线版本的源代码进行代码比对得到变动代码行;
S2、根据语法分析树解析变动代码行,得到变动代码行关联的对外服务接口;
S3、通过JaCoCo工具获取待测系统的执行数据,根据执行数据生成基于变动代码行的覆盖率报告,覆盖率报告包括多个报告子页面;
S4、根据匹配规则建立对外服务接口和报告子页面的关联关系,记录报告子页面的锚点;
S5、解析报告子页面的所有引用函数,查找定位引用函数对应的报告子页面并标记,同时将标记回写至原引用函数行;
S6、收集覆盖率报告中各维度的百分比统计结果,通过数据比对生成覆盖率趋势图和完成度报表,并发送实时监控告警和消息通知;
S7、根据覆盖率报告中各维度的百分比统计结果、覆盖率趋势图和完成度报表生成覆盖率报告的展示模块进行展示,并生成对外服务接口列表展示所有变动代码行的关联接口。
步骤S2中还包括将变动代码行和对外服务接口存入数据库。
步骤S4中的匹配规则包括根据类名、方法名和代码行进行匹配。
步骤S4中还包括将对外服务接口、报告子页面和锚点存入数据库。
步骤S5中通过将标记回写至原引用函数行,实现在覆盖率报告子页面的引用函数间的快读跳转。
步骤S6中生成覆盖率趋势图的过程具体为获取历史覆盖率报告,通过纵向比对历史覆盖率报告生成覆盖率趋势图。
步骤S6中生成完成度报表的具体过程为获取项目管理预设的期望值,通过横向比对项目管理预设的期望值生成完成度报表。
步骤S7中覆盖率报告的展示模块设有多级展示页面。
覆盖率报告的展示模块的一级页面仅展示覆盖率报告的各维度覆盖率统计数据、趋势图、完成度、项目信息和操作按钮。
项目信息包括被测系统信息、执行时间、执行环境、执行人、当前版本、基准版本和项目负责人,操作按钮包括查看报告详情按钮、查看对外服务接口列表按钮、查看系统报告数据趋势图按钮、修改项目期望值按钮和重新获取报告按钮。
步骤S7中所有变动代码行的关联接口的接口信息包括多个元信息,元信息的类型包括请求类型、请求地址、请求参数和响应结果。
对外服务接口列表中设有报告跳转按钮和引用函数跳转按钮,通过点击报告跳转按钮可直接打开相应的覆盖率报告子页面并定位至准确的锚点,通过点击引用函数跳转按钮可快速跳转至引用函数所在的报告子页面。
此外,需要说明的是,本说明书中所描述的具体实施例,所取名称可以不同,本说明书中所描述的以上内容仅仅是对本发明结构所做的举例说明。凡依据本发明构思的构造、特征及原理所做的等小变化或者简单变化,均包括于本发明的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实例做各种各样的修改或补充或采用类似的方法,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
- 一种接口覆盖率报告准确定位和展示的方法
- 一种基于MRO测量报告对LTE终端位置进行准确定位的方法