当前位置:网站首页>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 !
边栏推荐
- Installing postgresql11 database under centos7
- Asemi rectifier bridge rs210 parameters, rs210 specifications, rs210 package
- Codeforces Global Round 19
- pytorch 参数初始化
- [experience sharing] how to expand the cloud service icon for Visio
- misc ez_usb
- Linux server development, detailed explanation of redis related commands and their principles
- [SUCTF 2019]Game
- Linux server development, MySQL stored procedures, functions and triggers
- [Stanford Jiwang cs144 project] lab3: tcpsender
猜你喜欢

json 数据展平pd.json_normalize

The configuration that needs to be modified when switching between high and low versions of MySQL 5-8 (take aicode as an example here)

Linux server development, detailed explanation of redis related commands and their principles

Common validation comments

2022 simulated examination question bank and online simulated examination of tea master (primary) examination questions

Use and analysis of dot function in numpy

这5个摸鱼神器太火了!程序员:知道了快删!
![[Stanford Jiwang cs144 project] lab3: tcpsender](/img/82/5f99296764937e7d119b8ab22828fd.png)
[Stanford Jiwang cs144 project] lab3: tcpsender

【webrtc】m98 screen和window采集

Hands on deep learning (IV) -- convolutional neural network CNN
随机推荐
misc ez_usb
numpy中dot函数使用与解析
[OBS] win capture requires winrt
Linux server development, MySQL transaction principle analysis
pytest+allure+jenkins環境--填坑完畢
[UVM basics] summary of important knowledge points of "UVM practice" (continuous update...)
Custom class loader loads network class
Explore Cassandra's decentralized distributed architecture
图解GPT3的工作原理
Idea add class annotation template and method template
芯片 設計資料下載
Sign up now | oar hacker marathon phase III, waiting for your challenge
Weibo publishing cases
@component(““)
[UVM practice] Chapter 1: configuring the UVM environment (taking VCs as an example), run through the examples in the book
【经验分享】如何为visio扩展云服务图标
2022年茶艺师(中级)考试试题及模拟考试
Kbu1510-asemi power supply special 15A rectifier bridge kbu1510
[advanced digital IC Verification] command query method and common command interpretation of VCs tool
Pytest + allure + Jenkins Environment - - achèvement du remplissage de la fosse