CN112612705B - 一种接口覆盖率报告准确定位和展示的方法 - Google Patents

一种接口覆盖率报告准确定位和展示的方法 Download PDF

Info

Publication number
CN112612705B
CN112612705B CN202011565512.4A CN202011565512A CN112612705B CN 112612705 B CN112612705 B CN 112612705B CN 202011565512 A CN202011565512 A CN 202011565512A CN 112612705 B CN112612705 B CN 112612705B
Authority
CN
China
Prior art keywords
report
coverage
coverage rate
interface
displaying
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011565512.4A
Other languages
English (en)
Other versions
CN112612705A (zh
Inventor
李琰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Gaodun Education Technology Co ltd
Original Assignee
Shanghai Gaodun Education Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Gaodun Education Technology Co ltd filed Critical Shanghai Gaodun Education Technology Co ltd
Priority to CN202011565512.4A priority Critical patent/CN112612705B/zh
Publication of CN112612705A publication Critical patent/CN112612705A/zh
Application granted granted Critical
Publication of CN112612705B publication Critical patent/CN112612705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3628Software debugging of optimised code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种接口覆盖率报告准确定位和展示的方法,包括以下步骤:S1、获取当前版本和基线版本的源代码,进行代码比对得到变动代码行;S2、根据语法分析树解析变动代码行,得到对外服务接口;S3、通过JaCoCo工具获取待测系统的执行数据,生成覆盖率报告;S4、建立对外服务接口和报告子页面的关联关系,记录锚点;S5、解析引用函数,查找定位对应的报告子页面并标记,同时回写至原引用函数行;S6、收集覆盖率报告中各维度的百分比统计结果,生成覆盖率趋势图和完成度报表,并发送实时监控告警和消息通知;S7、展示覆盖率报告,并生成对外服务接口列表。与现有技术相比,本发明具有提高覆盖率报告查阅效率、简化报告切换的复杂操作等优点。

Description

一种接口覆盖率报告准确定位和展示的方法
技术领域
本发明涉及计算机技术领域,尤其是涉及一种接口覆盖率报告准确定位和展示的方法。
背景技术
精准化测试是一种依托于对当前版本和基线版本代码比对分析的差异代码行信息,通过设计、编写、执行针对性的接口测试用例,实现对当前版本所有新增、变动代码进行白盒测试的代码测试方法。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中所有变动代码行的关联接口的接口信息包括多个元信息,元信息的类型包括请求类型、请求地址、请求参数和响应结果。
对外服务接口列表中设有报告跳转按钮和引用函数跳转按钮,通过点击报告跳转按钮可直接打开相应的覆盖率报告子页面并定位至准确的锚点,通过点击引用函数跳转按钮可快速跳转至引用函数所在的报告子页面。
此外,需要说明的是,本说明书中所描述的具体实施例,所取名称可以不同,本说明书中所描述的以上内容仅仅是对本发明结构所做的举例说明。凡依据本发明构思的构造、特征及原理所做的等小变化或者简单变化,均包括于本发明的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实例做各种各样的修改或补充或采用类似的方法,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

Claims (9)

1.一种接口覆盖率报告准确定位和展示的方法,其特征在于,具体包括以下步骤:
S1、获取当前版本和基线版本的源代码,通过对当前版本和基线版本的源代码进行代码比对得到变动代码行;
S2、根据语法分析树解析所述变动代码行,得到变动代码行关联的对外服务接口;
S3、通过JaCoCo工具获取待测系统的执行数据,根据所述执行数据生成基于变动代码行的覆盖率报告,所述覆盖率报告包括多个报告子页面;
S4、根据匹配规则建立对外服务接口和报告子页面的关联关系,记录报告子页面的锚点;所述匹配规则包括根据类名、方法名和代码行进行匹配;
S5、解析报告子页面的所有引用函数,查找定位引用函数对应的报告子页面并标记,同时将所述标记回写至原引用函数行;
S6、收集覆盖率报告中各维度的百分比统计结果,通过数据比对生成覆盖率趋势图和完成度报表,并发送实时监控告警和消息通知;
S7、根据所述覆盖率报告中各维度的百分比统计结果、覆盖率趋势图和完成度报表生成覆盖率报告的展示模块进行展示,并生成对外服务接口列表展示所有变动代码行的关联接口。
2.根据权利要求1所述的一种接口覆盖率报告准确定位和展示的方法,其特征在于,所述步骤S2中还包括将变动代码行和对外服务接口存入数据库。
3.根据权利要求1所述的一种接口覆盖率报告准确定位和展示的方法,其特征在于,所述步骤S4中还包括将对外服务接口、报告子页面和锚点存入数据库。
4.根据权利要求1所述的一种接口覆盖率报告准确定位和展示的方法,其特征在于,所述步骤S6中生成覆盖率趋势图的过程具体为获取历史覆盖率报告,通过纵向比对所述历史覆盖率报告生成覆盖率趋势图。
5.根据权利要求1所述的一种接口覆盖率报告准确定位和展示的方法,其特征在于,所述步骤S6中生成完成度报表的具体过程为获取项目管理预设的期望值,通过横向比对所述项目管理预设的期望值生成完成度报表。
6.根据权利要求1所述的一种接口覆盖率报告准确定位和展示的方法,其特征在于,所述步骤S7中覆盖率报告的展示模块设有多级展示页面。
7.根据权利要求6所述的一种接口覆盖率报告准确定位和展示的方法,其特征在于,所述覆盖率报告的展示模块的一级页面仅展示覆盖率报告的各维度覆盖率统计数据、趋势图、完成度、项目信息和操作按钮。
8.根据权利要求7所述的一种接口覆盖率报告准确定位和展示的方法,其特征在于,所述项目信息包括被测系统信息、执行时间、执行环境、执行人、当前版本、基准版本和项目负责人,所述操作按钮包括查看报告详情按钮、查看对外服务接口列表按钮、查看系统报告数据趋势图按钮、修改项目期望值按钮和重新获取报告按钮。
9.根据权利要求1所述的一种接口覆盖率报告准确定位和展示的方法,其特征在于,所述步骤S7中所有变动代码行的关联接口的接口信息包括多个元信息,所述元信息的类型包括请求类型、请求地址、请求参数和响应结果。
CN202011565512.4A 2020-12-25 2020-12-25 一种接口覆盖率报告准确定位和展示的方法 Active CN112612705B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011565512.4A CN112612705B (zh) 2020-12-25 2020-12-25 一种接口覆盖率报告准确定位和展示的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011565512.4A CN112612705B (zh) 2020-12-25 2020-12-25 一种接口覆盖率报告准确定位和展示的方法

Publications (2)

Publication Number Publication Date
CN112612705A CN112612705A (zh) 2021-04-06
CN112612705B true CN112612705B (zh) 2024-05-17

Family

ID=75248160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011565512.4A Active CN112612705B (zh) 2020-12-25 2020-12-25 一种接口覆盖率报告准确定位和展示的方法

Country Status (1)

Country Link
CN (1) CN112612705B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589805A (zh) * 2015-12-16 2016-05-18 北京奇虎科技有限公司 一种代码覆盖率报告的生成方法和装置
CN110888817A (zh) * 2019-12-18 2020-03-17 广州唯品会研究院有限公司 代码覆盖率报告的生成方法、装置和可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110047531A1 (en) * 2009-08-19 2011-02-24 Wenguang Wang Methods and apparatuses for selective code coverage
US20150007145A1 (en) * 2013-07-01 2015-01-01 Samsung Electronics Co., Ltd. Computing system with instrumentation mechanism and capture mechanism and method of operation thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589805A (zh) * 2015-12-16 2016-05-18 北京奇虎科技有限公司 一种代码覆盖率报告的生成方法和装置
CN110888817A (zh) * 2019-12-18 2020-03-17 广州唯品会研究院有限公司 代码覆盖率报告的生成方法、装置和可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Efficient Test Generation Guided by Field Coverage Criteria;Ariel Godio等;《2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE)》;20200109;第91-101页 *
基于Spring的接口测试环境智能配置管理组件的设计与实现;王喜虎;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110615;第I138-103页 *

Also Published As

Publication number Publication date
CN112612705A (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
US11379348B2 (en) System and method for performing automated API tests
CN107622014B (zh) 测试报告生成方法、装置、可读存储介质和计算机设备
US8276126B2 (en) Determining causes of software regressions based on regression and delta information
CN110442511B (zh) 可视化埋点测试方法及装置
CN103106188B (zh) 数据模型的图形化分析系统和图形化分析方法
US9740506B2 (en) Automating interactions with software user interfaces
CN108459967B (zh) 基于用户接口状态流图的Web应用测试用例生成方法
CN101025686A (zh) 一种自动化测试系统及测试脚本的生成和运行方法
CN111026670B (zh) 测试用例的生成方法、测试用例的生成装置及存储介质
CN110688300A (zh) 兼容性测试方法、装置、设备及存储介质
US20140304253A1 (en) Screen-data editing device for programmable display device
CN108388640B (zh) 一种数据转换方法、装置以及数据处理系统
CN102043716A (zh) 基于业务驱动的软件自动化测试方法
US11436133B2 (en) Comparable user interface object identifications
CN111026647B (zh) 代码覆盖率的获取方法、装置、计算机设备和存储介质
CN111709026B (zh) 静态安全检测方法、装置、计算机设备和存储介质
CN113900962B (zh) 代码差异检测方法及装置
CN111966587A (zh) 数据采集方法、装置和设备
CN111177016B (zh) 软件测试缺陷的管理方法
CN117093497B (zh) 测试报告处理方法、装置、电子设备及存储介质
CN112612705B (zh) 一种接口覆盖率报告准确定位和展示的方法
CN117215959A (zh) 软件测试方法、装置、设备及存储介质
CN111813697A (zh) 一种基于测试对象调用标记的测试覆盖率统计方法
CN116069667A (zh) 基于代码分析的测试用例辅助定位方法及装置
CN112579456B (zh) 一种Web自动化测试方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant