项目介绍
java代码覆盖率的意义
开发团队开发完成的Java项目质量保障体系需要通过多维度的测试和验证过程来确保最终交付物的可靠性和稳定性。除了开发人员在编 码过程中进行的基本自测外,项目的质量控制流程主要由以下几个关键环节构成:
-
功能测试
- 由QA团队负责对系统的核心功能进行全面的功能测试,确保每个模块按照设计要求完成并满足用户需求。
- 测试内容包括但不限于用户界面的交互性、数据处理的准确性、系统的响应速度以及异常情况下的行为表现。
-
自动化测试
- 引入专业的测试工具和框架,实现代码在不同环境下的自动部署和运行。
- 持续集成(CI)流程的建立确保每次代码提交都经过严格的自动化测试,并及时发现潜在问题。
- 使用测试用例库进行模块化测试设计,提升测试效率并减少人为错误可能性。
但测试也是人工如何保证测试覆盖了程序的在多功能或流程呢。JaCoCo就是用来解决这类问题的。但目前互联网应用的趋势是偏微服务化,动不动一个项目就会上到100个微服务站点。如何快速的统计所有站点的测试质量?本项目平台就是一个自动化的发现K8s集群内需要进行测试的站点,并自动/手动生成报告的平台。
本程序有两种运行状态。
-
单微服务测试:
- 只需要在WEB界面上点击覆盖报告获取即可获得本POD从上次启动到当前时间点的所有测试过的代码覆盖情况的HTML报告。该模式适合与功能测试进行配合,确认功能测试对于代码的测试覆盖情况。
-
批量获取报告
- 每天可以定时在自动化跑完后,进行批量的XML报告生成。之后通过SonarQube生成整体的覆盖率。来验证自动化测试的覆盖度。
项目运行架构介绍
本项目需要工作在K8s环境内,通过jacoco agent项目来dump java项目的测试覆盖率。并通过pod上的git commit值来下载对应的代码生成覆盖率报告。 最终报告会上传到minio的对象存储中。