当前位置:网站首页>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 !
边栏推荐
- 【obs】win-capture需要winrt
- [UVM practice] Chapter 1: configuring the UVM environment (taking VCs as an example), run through the examples in the book
- Open source ecosystem | create a vibrant open source community and jointly build a new open source ecosystem!
- You Li takes you to talk about C language 6 (common keywords)
- [Stanford Jiwang cs144 project] lab3: tcpsender
- Redis technology leak detection and filling (II) - expired deletion strategy
- 2022-07-06: will the following go language codes be panic? A: Meeting; B: No. package main import “C“ func main() { var ch chan struct
- 【斯坦福计网CS144项目】Lab3: TCPSender
- 探索Cassandra的去中心化分布式架构
- Leanote private cloud note building
猜你喜欢
[mathematical notes] radian
Detailed explanation of Kalman filter for motion state estimation
IO stream file
即刻报名|飞桨黑客马拉松第三期等你挑战
2022 tea master (intermediate) examination questions and mock examination
[2022 ciscn] replay of preliminary web topics
buuctf misc USB
Cnopendata list data of Chinese colleges and Universities
Linux server development, redis protocol and asynchronous mode
【webrtc】m98 screen和window采集
随机推荐
探索Cassandra的去中心化分布式架构
Asemi rectifier bridge rs210 parameters, rs210 specifications, rs210 package
有 Docker 谁还在自己本地安装 Mysql ?
Pytorch parameter initialization
Common method signatures and meanings of Iterable, collection and list
PHP exports millions of data
Info | webrtc M97 update
Redis technology leak detection and filling (II) - expired deletion strategy
Li Kou interview question 04.01 Path between nodes
@component(““)
Resource create package method
Wechat applet data binding multiple data
dash plotly
3D reconstruction - stereo correction
通信设备商,到底有哪些岗位?
Ansible
MySQL multi column index (composite index) features and usage scenarios
Leanote private cloud note building
【webrtc】m98 screen和window采集
2022 tea master (intermediate) examination questions and mock examination