java应用接口自动化覆盖率统计实践

发布时间 2023-08-22 17:27:33作者: 飘飘雪

一、背景

Java应用接口自动化覆盖率统计的意义在于:

  1. 确保测试覆盖率:通过自动化覆盖率统计,可以确保测试用例对应用程序的各个接口进行了全面的覆盖。这有助于发现潜在的代码错误、逻辑漏洞或者未处理的异常情况。

  2. 提高代码质量:通过自动化覆盖率统计,可以发现代码中未被测试到的部分,从而及时修复或编写相应的测试用例。这有助于提高代码的质量、可维护性和可靠性。

  3. 降低风险:自动化覆盖率统计可以帮助开发团队识别和解决代码中的潜在问题,减少出现故障的风险。通过全面覆盖接口,可以减少因未覆盖的代码路径导致的潜在问题。

  4. 支持持续集成和持续交付:自动化覆盖率统计可以与持续集成和持续交付流程集成,确保每次代码变更都经过全面的测试覆盖。这有助于提高软件交付的质量和稳定性。

  5. 监控测试进度:通过自动化覆盖率统计,可以实时监控测试的进度,并根据覆盖率结果进行调整和优化测试策略。这有助于提高测试效率和准确性。

总之,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、必须把被测源码下载后编译,否则出不来统计数据,因为没有对比源文件