首页 > 编程语言 >java应用接口自动化覆盖率统计实践

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

时间:2023-08-22 17:37:31浏览次数:34  
标签:java 覆盖率 代码 接口 export 测试 自动化

一、背景

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

 

标签:java,覆盖率,代码,接口,export,测试,自动化
From: https://www.cnblogs.com/wangcp-2014/p/17649142.html

相关文章

  • java-sdk接口测试覆盖率统计实践
    一、背景接口覆盖率统计在JavaSDK开发中具有重要的意义。它衡量了代码中接口被测试用例覆盖的程度,即测试用例对接口的执行情况进行了多少次验证。接口覆盖率统计的意义包括:质量保证:接口覆盖率统计可以帮助开发团队评估测试的全面性和质量,确保代码的正确性和稳定性。高覆盖率......
  • Jmeter接口上传图片/文件
    参考:https://blog.csdn.net/weixin_46039178/article/details/1101793351)配置接口基本信息 2)添加信息头管理器content-type:multipart/form-data3)上传文件,填写需要上传文件的地址填写文件地址,参数名称,MIME类型:multipart/form-data 4)填写该接口的其他参数 5)选择客......
  • Java中怎么进行原子操作?
    在Java中进行原子操作,特别是替换某个属性,你可以使用AtomicReference类来实现。AtomicReference可以保证对对象引用的原子更新操作。以下是一个示例,展示如何使用AtomicReference来进行原子替换操作:javaCopycodeimportjava.util.concurrent.atomic.AtomicReference;publ......
  • java实现大文件上传技术
    ​ 1,项目调研因为需要研究下断点上传的问题。找了很久终于找到一个比较好的项目。 在GoogleCode上面,代码弄下来超级不方便,还是配置hosts才好,把代码重新上传到了github上面。 https://github.com/freewebsys/java-large-file-uploader-demo 效果: 上传中,显示进度,时间......
  • 让Android Studo 不编译某个Java文件
    有时为了调试,让某些文件暂时不需编译,这样可以排除错误带来的无法运行情况,可以在build.gradle中加入:excludes=['com.coolweather.myble/AddrInterceptor.java'],如下compileOptions{sourceCompatibilityJavaVersion.VERSION_1_8targetCompatibilityJavaVers......
  • 15 JavaScript ES6中的箭头函数
    15JavaScriptES6中的箭头函数什么是箭头函数ES6中允许使用=>来定义函数。箭头函数相当于匿名函数,并简化了函数定义。基本语法//箭头函数letfn=(name)=>{//函数体return`Hello${name}!`;};//等同于letfn=function(name){//函数体......
  • Javascript关于对象的理解
    对象的概念  对象是一个包含数据和方法的集合。  下面,我们通过实例探索对象。首先,创建一个对象varperson={};  如果在控制台输入person,将会得到 [objectObject] 这时,我们就创建了一个空的对象,接着,我们需要向空对象中添加数据或方法varperson={name:[......
  • JAVA使用Protobuf GRPC
    IDEA安装Protobuf插件引入maven依赖<dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>3.19.1</version></dependency>protobuf是目前比较新的版本,之前测试过程中使用3.9.1。发现生成的源代码......
  • java实现大文件上传实例解析
    ​  上周遇到这样一个问题,客户上传高清视频(1G以上)的时候上传失败。一开始以为是session过期或者文件大小受系统限制,导致的错误。查看了系统的配置文件没有看到文件大小限制,web.xml中seesiontimeout是30,我把它改成了120。但还是不行,有时候10分钟就崩了。同事说,可能是客户这......
  • java中猜数字的小游戏
    importjava.util.Random;importjava.util.Scanner;publicclasscaishuzi{publicstaticvoidmain(String[]args){Randomrandom=newRandom();intmath=random.nextInt(100);Scannerscanner=newScanner(System.in);......