java应用接口自动化覆盖率统计实践
一、背景
Java应用接口自动化覆盖率统计的意义在于:
-
确保测试覆盖率:通过自动化覆盖率统计,可以确保测试用例对应用程序的各个接口进行了全面的覆盖。这有助于发现潜在的代码错误、逻辑漏洞或者未处理的异常情况。
-
提高代码质量:通过自动化覆盖率统计,可以发现代码中未被测试到的部分,从而及时修复或编写相应的测试用例。这有助于提高代码的质量、可维护性和可靠性。
-
降低风险:自动化覆盖率统计可以帮助开发团队识别和解决代码中的潜在问题,减少出现故障的风险。通过全面覆盖接口,可以减少因未覆盖的代码路径导致的潜在问题。
-
支持持续集成和持续交付:自动化覆盖率统计可以与持续集成和持续交付流程集成,确保每次代码变更都经过全面的测试覆盖。这有助于提高软件交付的质量和稳定性。
-
监控测试进度:通过自动化覆盖率统计,可以实时监控测试的进度,并根据覆盖率结果进行调整和优化测试策略。这有助于提高测试效率和准确性。
总之,Java应用接口自动化覆盖率统计对于确保测试覆盖率、提高代码质量、降低风险、支持持续集成和持续交付以及监控测试进度都具有重要意义。
二、实践步骤
1、梳理流水线步骤:1)下载待测代码 2)编译待测工程 3)待测工程部署应用 4)下载测试代码 5)编译执行测试代码 6)jacoco接口测试统计 7)jacoco接口测试覆盖率统计 8)结束
2、改动点梳理
1)部署应用
-
- 启动前脚本里下载jacoco安装包:
wget http://storage.jd.local/sunxiangyang/jacocoagent.jar -O/home/admin/jacocoagent.jar
chmod+x /home/admin/jacocoagent.jar
-
- WEB-INF/classes/default_tomcat_env.sh配置文件修改:
export maxParameterCount="1000"
export acceptCount="1000"
export maxSpareThreads="750"
export maxThreads="1000"
export minSpareThreads="50"
export URIEncoding="UTF-8"
export JAVA_OPTS="-Djava.library.path=/usr/local/lib -server -Xms1024m -Xmx1024m -XX:MaxMetaspaceSize=256m -XX:+HeapDumpOnOutOfMemoryError - XX:HeapDumpPath=/export/Logs -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300 -javaagent:/home/admin/jacocoagent.jar=includes=*,output=tcpserver,port=2014,address=0.0.0.0"
2)流水线--jacoco接口代码覆盖率统计
三、遇到的问题/注意事项
1、必须把被测源码下载后编译,否则出不来统计数据,因为没有对比源文件