精准测试

引言

测试项目

自己写一个简单的Spring Boot项目,上传到gitlab上。创建两个分支:master和dev

master代码:

@RestControllerpublic class DemoController {    @PostMapping("check")    public boolean check(@RequestParam String inputString){        return isPalindrome(inputString);    }    public boolean isPalindrome(String inputString) {        if (inputString.length() == 0) {            return true;        } else {            char firstChar = inputString.charAt(0);            char lastChar = inputString.charAt(inputString.length() - 1);            String mid = inputString.substring(1, inputString.length() - 1);            return (firstChar == lastChar) && isPalindrome(mid);        }    }}

dev代码:

@RestControllerpublic class DemoController {    @PostMapping("check")    public boolean check(@RequestParam String inputString){       //return isPalindrome(inputString);       return false;    }//   public boolean isPalindrome(String inputString) {//       if (inputString.length() == 0) {//           return true;//       } else {//           char firstChar = inputString.charAt(0);//           char lastChar = inputString.charAt(inputString.length() - 1);//           String mid = inputString.substring(1, inputString.length() - 1);//           return (firstChar == lastChar) && isPalindrome(mid);//       }//   }}

其实两段代码的差别就是master的会多一点,增加一个判断一段文字是否是回文的函数。

在master分支打包后,可以用命令启动程序:

  • java -javaagent:D:Gitjacocojacocoagent.jar=includes=*,output=tcpserver,address=192.168.30.47,port=6300 -jar D:Gitspring-boot-demotargetspring-boot-demo-0.0.1-SNAPSHOT.jar

    有同学可能问jacocoagent.jar文件哪里来。可以这里下:
    https://www.jacoco.org/jacoco/

    address: 是java所在电脑的IP(K8S直接用0.0.0.0), 6300是随意选的一个端口 ,不重就行。

    启动后可以用postman测试一下:

    我们调用了一次,所以等下生成的 告覆盖率就不为0了

    插件安装方式

    插件工程地址:https://github.com/AngryTester/jacoco-plugin

    打包命令:mvn clean package -Dmaven.test.skip=true

    通过Jenkins安装官方Jacoco插件(这一步的主要目的是安装Jacoco插件依赖的其他插件),然后删除Jenkins主目录plugins下的jacoco:

    将上面打包后target目录下的jacoco.hpi复制至Jenkins主目录下plugins目录,重启Jenkins即可。

    我不太喜欢用ssh这种方式pull代码,所以对项目做一点小改动。所以大家看我后面截图不要有疑惑。

    创建Job

    这段命令很重要,用来dump exec文件的。

  • mvn org.jacoco:jacoco-maven-plugin:0.8.1:dump -Djacoco.address=192.168.30.47 -Djacoco.reset=false -Djacoco.port=6300 -Djacoco.append=true

    测试结果

    Build一下这个job就可以看到结果

    结语

    我们在我们每个微服务启动时都启动一下jacocoagent。 这样我们做功能测试或者自动化测试时,不再担心我们有漏测了。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

  • 上一篇 2020年8月17日
    下一篇 2020年8月18日

    相关推荐