是新朋友吗?记得先点蓝字关注我们哦~
本周TestOps免费试听课课程表
时间 | 主题 |
6.3(周三)20:00 | 基于接口调用的动态覆盖率获取 |
B站直播地址
【扫一扫】
“6.3周三晚上20:00B站和腾讯课堂一起直播哦!
” 最近每次在和客户聊自动化测试的时候都会引出一个问题,我怎么知道我的测试做的是有效的呢?哪些是我没有测试到的部分?其实在这点上的解决方案是比较成熟的,很多传统大型软件公司都能做到智能化的覆盖率统计分析及测试拓展,然而这样的方案了解的人却比较少,大大出乎了云层的意料,所以这次云层来给大家分享一下关于这个知识点的内容。首先来简单聊一下覆盖率,在单元测试中很容易通过覆盖率工具获取对代码的调用情况。 这里的覆盖率都是在junit类的单元测试框架获取了,那么能不能让系统在生产运行的情况下获取动态覆盖率呢?所谓的运行时动态获取覆盖率,答案是肯定的,通过Jacoco插桩的模式即可。首先需要下载Jacoco的代理Agent,然后在应用启动的时候加载这个Agent来收集覆盖率。 这里我们使用一个Springboot项目,打包获取Jar包,并使用Java -jar启动(War包要通过Tomcat启动插桩模式)java -javaagent:lib/jacocoagent.jar=destfile=e:/jacoco.exec,output=file -jar demo-0.0.1-SNAPSHOT.jar
接着使用PostMan对被测对象
的方法进行访问相应的功能接口,可以看到jacoco.exec文件已经发生了变化,也就是刚才的接口访问带来了覆盖率统计的变化。
传统
一般使用ant调用jacoco的解析来生成报告,这里可以直接使用IDEA工具自带的覆盖率读取功能。
可以发现前面Postman调用的代码已经被覆盖了,而别的模块没有被覆盖。通过这样的方式可以快速了解当前自动化体系的漏测及覆盖率,从而提高测试用例的有效性。
长
按
关
注
TestOps公众号
微信号 : TestOps
新浪微博:@TestOps官方微博
知乎:TestOps-云层
往期文章
这位客官,520抽奖活动了解下
敏捷课程开始邀请返现啦!上不封顶哦
吵着要过儿童节的你,真的有小学生努力吗
自动化测试的策略和实施|TestOps邀您参与直播探讨
我知道你在看哟>>>