当前位置:网站首页>Quickly use Jacobo code coverage statistics
Quickly use Jacobo code coverage statistics
2022-07-07 07:58:00 【Wu_ Candy】
brief introduction
Jacoco Is an open source coverage tool .
Jacoco Can be embedded into Ant 、Maven in , And provides EclEmma Eclipse plug-in unit , You can also use JavaAgent Technical monitoring Java Program .
Many third-party tools provide access to Jacoco Integration of , Such as sonar、Jenkins etc. .
Today's sharing environment is :
k8s+jenkins Built , It involves in node Generated in the container of the node machine jacoco.exec file , Then copy it to the node machine , Then from the node machine jacoco.exec File copy to jenkins In the code base of , Used to generate reports .
Operation steps
**Step1:** Introduce the corresponding jar To the directory of application services , And modify the startup script of the application service that needs to be monitored
The following is in jenkins The corresponding application service deployment script is adjusted
echo ' cd /opt/ wget http://192.168.214.100:7777/jacoco/tools/jacocoagent.jar # Here a siampleHttp service , Used to get jar package wget http://192.168.214.100:7777/jacoco/tools/jacocoant.jar wget -O buildexec.xml http://192.168.214.100:7777/jacoco/buildexec/build.xml wget http://192.168.214.100:7777/jacoco/tools/cron.sh sh cron.sh& # See... Here step2 Script edited in sed -i "s#exec java#exec java -javaagent:/opt/jacocoagent.jar=includes=*,output=tcpserver,port=8044,address=127.0.0.1 -Xverify:none -javaagent:/opt/skywalking-agent/skywalking-agent.jar #g" /opt/mt/bin/startup.sh && cd /opt/mt/ && dos2unix -k start.sh && cd /opt/mt/bin/ && dos2unix -k startup.sh && sh startup.sh '> ./start.sh
Step2: It is used to generate jacoco.exec
this jacoco.exec The file is one generated by the fetched code execution file exec file , This file is just Step1 A script file required in .
[[email protected] tools]# more cron.sh
while true;do ant dump -buildfile buildexec.xml;sleep 60;done
Step3: stay jenkins Pull the source code , The generated jacoco.exec Copy the file , Then generate the final execution report
Here is one jenkins job
cd ../test-deploy
wget -O buildreport.xml http://192.168.214.100:7777/jacoco/buildreport/build_test_model.xml
wget -nc http://192.168.214.100:7777/jacoco/tools/jacocoant.jar
wget -nc http://192.168.214.100:7777/jacoco/tools/dlexec.sh
sh dlexec.sh testqyd test-model # Detailed see step4
ant report -buildfile ./buildreport.xml # Generate executed reports
open site:http://192.168.214.100:7777/jacoco/report/testqyd/test-model/jacocoReport/ # Open the report
Step4: from docker In order to get jacoco.exec file , And then on jenkins Extract the source code directory
[[email protected]]# more dlexec.sh
platformname=$1
projectname=$2
echo " ############################################# # from node Node machine download jacoco.exec File execution script # ############################################# "
case $# in
0)
echo ""
;;
1)
ssh [email protected] "kubectl get pods -n $platformname -o wide"
;;
2)
pnip=`ssh 192.168.214.50 "kubectl --kubeconfig=/etc/kubernetes/kubelet.kubeconfig get pods -n $platformname -o wide|grep $projectname|awk '{print \\$7}'|head -1"`
if [ $pnip == '192.168.214.55' ];then
pnip='[email protected]'
rqid=`ssh $pnip "docker ps |grep $platformname/$projectname|awk '{print \\$1}'|head -1"`
ssh $pnip "docker cp $rqid:/opt/jacoco.exec /opt/test/jacoco.exec"
scp $pnip:/opt/test/jacoco.exec ./
elif [ $pnip == '192.168.214.56' ];then
pnip='[email protected]'
rqid=`ssh $pnip "docker ps |grep $platformname/$projectname|awk '{print \\$1}'|head -1"`
ssh $pnip "docker cp $rqid:/opt/jacoco.exec /opt/test/jacoco.exec"
scp $pnip:/opt/test/jacoco.exec ./
else
echo "not found!"
fi
;;
esac
Jenkins The execution effect diagram is shown in the following figure :

Welcome to your attention : The way of immeasurable testing official account , reply : Claim resources
Python+Unittest frame API automation 、
Python+Unittest frame API automation 、
Python+Pytest frame API automation 、
Python+Pandas+Pyecharts Big data analysis 、
Python+Selenium frame Web Of UI automation 、
Python+Appium frame APP Of UI automation 、
Python Programming learning resources dry goods 、
Vue Front end component framework development 、
Resources and code Free ~
contain : Data analysis 、 big data 、 machine learning 、 Test Development 、API Interface automation 、 Test operation and maintenance 、UI automation 、 Performance testing 、 code detection 、 Programming technology, etc .
WeChat search official account : The way of immeasurable testing , Add the attention , Let's grow together !
边栏推荐
- Qt学习28 主窗口中的工具栏
- C language flight booking system
- 【斯坦福计网CS144项目】Lab3: TCPSender
- 2022年茶艺师(中级)考试试题及模拟考试
- Linux server development, MySQL index principle and optimization
- 【Unity】物体做圆周运动的几个思路
- Weibo publishing cases
- Linux server development, MySQL stored procedures, functions and triggers
- 今日现货白银操作建议
- Téléchargement des données de conception des puces
猜你喜欢

Qt学习26 布局管理综合实例

A bit of knowledge - about Apple Certified MFI

【数字IC验证快速入门】17、SystemVerilog学习之基本语法4(随机化Randomization)

Numbers that appear only once

Leetcode 40: combined sum II

Linux server development, MySQL index principle and optimization

nacos

Figure out the working principle of gpt3

3D reconstruction - stereo correction

Mysql高低版本切换需要修改的配置5-8(此处以aicode为例)
随机推荐
[UVM foundation] what is transaction
2022 welder (elementary) judgment questions and online simulation examination
Force buckle 145 Binary Tree Postorder Traversal
3D reconstruction - stereo correction
nacos
[UTCTF2020]file header
Button wizard script learning - about tmall grabbing red envelopes
Is the test cycle compressed? Teach you 9 ways to deal with it
leanote私有云笔记搭建
Qt学习28 主窗口中的工具栏
Info | webrtc M97 update
Chip design data download
2022 recurrent training question bank and answers of refrigeration and air conditioning equipment operation
快速使用 Jacoco 代码覆盖率统计
buuctf misc USB
2022年茶艺师(中级)考试试题及模拟考试
Solve could not find or load the QT platform plugin "xcb" in "
Resource create package method
芯片 設計資料下載
【webrtc】m98 screen和window采集