Java代码覆盖率统计系统技术方案

技术编号:20992448 阅读:28 留言:0更新日期:2019-04-29 22:28
本发明专利技术公开了一种Java代码覆盖率统计系统。其包括:覆盖率统计服务客户端,是被安装被测应用所在服务器上的Web服务,用于:启停被测应用所在Web容器、加载或卸载Jacoco相应的启动参数到Web容器的启动文件中、下载Jacoco产生的覆盖率统计文件中的至少一种;覆盖率统计服务端,用于:覆盖率统计配置;系统覆盖率统计;单元测试覆盖率统计;支持所述覆盖率统计服务客户端查询覆盖率统计结果。本发明专利技术能够提供一站式Java覆盖率统计配置,自动化测试执行以及覆盖率结果查看等服务,为测试人员提供了便利。

Java Code Coverage Statistics System

The invention discloses a Java code coverage statistics system. It includes: coverage statistics service client, which is a Web service installed on the server where the application under test is located. It is used to start and stop the Web container where the application under test is located, load or uninstall Jacoco's corresponding startup parameters into the startup file of the Web container, download at least one of the coverage statistics files generated by Jacoco, and coverage statistics server, which is used for: coverage statistics configuration; Overall coverage statistics; unit test coverage statistics; support the coverage statistics service client query coverage statistics results. The invention can provide one-stop Java coverage statistics configuration, automated test execution and coverage results viewing services, and provides convenience for testers.

【技术实现步骤摘要】
Java代码覆盖率统计系统
本专利技术属于互联网领域,尤其涉及一种Java(一种面向对象编程语言)代码覆盖率统计系统。
技术介绍
目前Java代码覆盖率统计解决方案要么是嵌入Ant,Maven等构件工具进行,要么是与jenkins等持续集成工具整合进行。但是多是进行单元测试的代码覆盖率统计,且测试人无法很便捷的触发和配置覆盖率统计的执行,也无法直观的查看和统计覆盖率统计的历史情况。亟需为测试人员提供一个简单配置就可以进行代码覆盖率统计,查看覆盖率统计结果的测试方案。
技术实现思路
本专利技术针对上述技术问题,提供一种Java代码覆盖率统计系统。本专利技术是通过以下技术方案解决上述技术问题的:一种Java代码覆盖率统计系统,包括:覆盖率统计服务客户端,是被安装被测应用所在服务器上的Web(互联网总称)服务,用于:启停被测应用所在Web容器、加载或卸载Jacoco(覆盖率统计工具)相应的启动参数到Web容器的启动文件中、下载Jacoco产生的覆盖率统计文件中的至少一种;覆盖率统计服务端,用于:覆盖率统计配置,具体包括忽略模块配置、覆盖率包含配置、覆盖率排除配置中的至少一种;系统覆盖率统计,具体包括:通过所述覆盖率统计服务客户端在被测应用的启动过程中把Jacoco插桩到被测应用的JVM(Java虚拟机)进程中,以捕获应用过程中产生的第一覆盖率数据,通过所述第一覆盖率数据进行系统级别的覆盖率统计;单元测试覆盖率统计,具体包括:从Git服务器拉取单元测试用例代码到本地服务器,通过执行Jacoco-maven-plugin插件获取单元测试的第二覆盖率数据,将所述第二覆盖率数据交由SonarQube(一种代码质量管理平台)进行单元测试的覆盖率统计;支持所述覆盖率统计服务客户端查询覆盖率统计结果。较佳地,所述覆盖率统计服务端还用于:代码质量静态检查,具体包括从Git服务器拉取代码到本地服务器,通过执行sonar-maven-plugin插件把代码交由SonarQube进行代码静态扫描。较佳地,所述覆盖率统计服务端还用于:增量覆盖率统计,具体包括比对两个版本中新增代码的覆盖率。较佳地,所述覆盖率统计服务端还用于:一键覆盖率统计,具体包括在开启覆盖率统计后,调用配置的API(应用程序编程接口)或UI(用户界面)自动化测试平台的接口执行自动化测试平台中配置的测试用例,获取所述自动化测试平台执行完毕后的反馈结果,通过所述覆盖率统计服务客户端拉取覆盖率统计文件到服务器进行覆盖率统计分析。较佳地,所述覆盖率统计服务端还用于:分布式执行管理,具体包括覆盖率统计任务的分发,处理和结果收集,以及节点服务器的管理和状态监测。较佳地,覆盖率统计服务端还用于支持覆盖率结果详情查看,所述覆盖率结果详情包括以下内容中的至少一种:覆盖率数据库,存储有覆盖率、分支覆盖率、行覆盖率和新代码覆盖率中的至少一种;设置的覆盖率统计包含的各代码目录或文件的覆盖率统计情况列表;被测应用代码的概况数据展示;被测应用的覆盖率历史统计趋势图显示;被测应用的覆盖率历史统计数据列表显示。较佳地,所述覆盖率统计服务端部署在多个Windows服务器上,其中一个服务器作为主站点,其他服务器作为覆盖率统计的执行站点。在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本专利技术各较佳实例。本专利技术的积极进步效果在于:本专利技术能够提供一站式Java覆盖率统计配置,自动化测试执行以及覆盖率结果查看等服务,为测试人员提供了便利。附图说明图1为本专利技术实施例1的一种Java代码覆盖率统计系统的系统框图。图2为本专利技术实施例1的Java代码覆盖率统计系统的系统架构图。图3为本专利技术实施例1的系统实施物理部署图。具体实施方式下面通过实施例的方式进一步说明本专利技术,但并不因此将本专利技术限制在所述的实施例范围之中。实施例1本实施例提供了一种Java代码覆盖率统计系统。如图1所示,所述Java代码覆盖率统计系统包括:覆盖率统计服务客户端10和覆盖率统计服务端20。所述覆盖率统计服务客户端10是被安装被测应用所在服务器上的Web服务,主要用于:启停被测应用所在Web容器(比如Tomcat)、加载或卸载Jacoco相应的启动参数到Web容器的启动文件中、下载Jacoco产生的覆盖率统计文件中的至少一种。所述覆盖率统计服务端20可以用于提供多种服务,具体包括:覆盖率统计配置,系统覆盖率统计,单元测试覆盖率统计,代码质量静态检查,增量覆盖率统计,一键覆盖率统计,分布式执行管理,覆盖率结果查询,覆盖率结果详情查看。当然,本实施例并不局限于此,测试人员可以根据需求增加或删减部分服务。下面对各服务进行详细说明:(1)覆盖率统计配置,具体可以包括:A.忽略模块配置:如在Java的Maven项目中,经常会有多模块的项目,通过该设置,可以在编译以及统计覆盖率时忽略某些模块;B.覆盖率包含配置:如通过可视化树状代码结构,可以对需要覆盖率统计的目录和代码进行勾选,最后覆盖率统计结果就只包含选择目录和代码的覆盖率;C.覆盖率排除配置:通过可视化树状代码结构,可以对不需要覆盖率统计的目录和代码进行勾选,最后覆盖率统计结果就会排除掉选择的目录和代码的覆盖率。(2)系统覆盖率统计,具体包括:通过所述覆盖率统计服务客户端10在被测应用的启动过程中把Jacoco插桩到被测应用的JVM进程中,以捕获应用过程中产生的第一覆盖率数据,所述覆盖率统计服务端20通过所述第一覆盖率数据进行系统级别的覆盖率统计。(3)单元测试覆盖率统计,具体包括:从Git服务器拉取单元测试用例代码到本地服务器,通过执行Jacoco-maven-plugin插件获取单元测试的第二覆盖率数据,将所述第二覆盖率数据交由SonarQube进行单元测试的覆盖率统计。(4)代码质量静态检查,具体包括:从Git服务器拉取代码到本地服务器,通过执行sonar-maven-plugin插件把代码交由SonarQube进行代码静态扫描。(5)增量覆盖率统计,具体包括:比对两个版本中新增代码的覆盖率,通过增量覆盖率统计,测试人员可以很清晰的了解新版本中新增功能的覆盖情况,进而提高回归测试的质量。(6)一键覆盖率统计,具体包括:通过与API,UI自动化测试的整合,在开启覆盖率统计后,调用配置的API或UI自动化测试平台的接口执行自动化测试平台中配置的测试用例,获取所述自动化测试平台执行完毕后的反馈结果,通过所述覆盖率统计服务客户端10拉取覆盖率统计文件到服务器进行覆盖率统计分析,分析完毕后用户就可以查看应用的覆盖率统计情况了。(7)分布式执行管理,具体包括:A.覆盖率统计任务的分发,处理和结果收集,实现了任务的并行处理,有效的减少了服务器的负载;B.节点服务器的管理(包括增删改)和状态监测。(8)支持所述覆盖率统计服务客户端10查询覆盖率统计结果:覆盖率结果查询可以便捷的查询本组,本人覆盖率统计的详细信息.同时用户也可以下载覆盖率查询结果。(9)支持覆盖率结果详情查看为了使用户可以更清晰,更全面的了解自己应用的覆盖率统计情况,所述覆盖率结果详情主要包括以下内容中的至少一种:A.覆盖率数据库,存储有覆盖率、分支覆盖率、行覆盖率和新代码覆盖率中的至少一种;B.设置的覆盖率统计包含的各代码目录或文件的覆本文档来自技高网...

【技术保护点】
1.一种Java代码覆盖率统计系统,其特征在于,包括:覆盖率统计服务客户端,是被安装被测应用所在服务器上的Web服务,用于:启停被测应用所在Web容器、加载或卸载Jacoco相应的启动参数到Web容器的启动文件中、下载Jacoco产生的覆盖率统计文件中的至少一种;覆盖率统计服务端,用于:覆盖率统计配置,具体包括忽略模块配置、覆盖率包含配置、覆盖率排除配置中的至少一种;系统覆盖率统计,具体包括:通过所述覆盖率统计服务客户端在被测应用的启动过程中把Jacoco插桩到被测应用的JVM进程中,以捕获应用过程中产生的第一覆盖率数据,通过所述第一覆盖率数据进行系统级别的覆盖率统计;单元测试覆盖率统计,具体包括:从Git服务器拉取单元测试用例代码到本地服务器,通过执行Jacoco‑maven‑plugin插件获取单元测试的第二覆盖率数据,将所述第二覆盖率数据交由SonarQube进行单元测试的覆盖率统计;支持所述覆盖率统计服务客户端查询覆盖率统计结果。

【技术特征摘要】
1.一种Java代码覆盖率统计系统,其特征在于,包括:覆盖率统计服务客户端,是被安装被测应用所在服务器上的Web服务,用于:启停被测应用所在Web容器、加载或卸载Jacoco相应的启动参数到Web容器的启动文件中、下载Jacoco产生的覆盖率统计文件中的至少一种;覆盖率统计服务端,用于:覆盖率统计配置,具体包括忽略模块配置、覆盖率包含配置、覆盖率排除配置中的至少一种;系统覆盖率统计,具体包括:通过所述覆盖率统计服务客户端在被测应用的启动过程中把Jacoco插桩到被测应用的JVM进程中,以捕获应用过程中产生的第一覆盖率数据,通过所述第一覆盖率数据进行系统级别的覆盖率统计;单元测试覆盖率统计,具体包括:从Git服务器拉取单元测试用例代码到本地服务器,通过执行Jacoco-maven-plugin插件获取单元测试的第二覆盖率数据,将所述第二覆盖率数据交由SonarQube进行单元测试的覆盖率统计;支持所述覆盖率统计服务客户端查询覆盖率统计结果。2.如权利要求1所述的Java代码覆盖率统计系统,其特征在于,所述覆盖率统计服务端还用于:代码质量静态检查,具体包括从Git服务器拉取代码到本地服务器,通过执行sonar-maven-plugin插件把代码交由SonarQube进行代码静态扫描。3.如权利要求1所述的Java代码覆盖率统计系统,其特征在于,所述...

【专利技术属性】
技术研发人员:王幸福梅强强张秋会
申请(专利权)人:携程计算机技术上海有限公司
类型:发明
国别省市:上海,31

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

1