Jenkins作為目前持續(xù)集成中使用較為廣泛的工具,在實(shí)際生產(chǎn)過程中通過結(jié)合眾多的插件,從而實(shí)現(xiàn)工程的持續(xù)構(gòu)建、持續(xù)部署。
![]()
而傳統(tǒng)構(gòu)建的應(yīng)用場景大多數(shù)運(yùn)行在虛擬機(jī)或者獨(dú)立的服務(wù)器上,在資源開銷和管理維護(hù)較為復(fù)雜。相比于獨(dú)立的服務(wù)器/虛擬機(jī)而言,容器不僅部署方便,且占用資源較少。
Docker作為目前作為業(yè)內(nèi)最火的一個(gè)容器解決方案之一,通過將兩者結(jié)合,從而實(shí)現(xiàn)服務(wù)的輕量化,并通過Docker管理Jenkins的資源。下面通過Docker部署Jenkins、Jenkins配置以及實(shí)例構(gòu)建,講述Jenkins的基本使用。
Docker下安裝Jenkins
注:因?yàn)镴enkins容器里的用戶是Jenkins,而主機(jī)用戶不是Jenkins,就算是root也一樣會(huì)報(bào)錯(cuò):/var/jenkins_home/copy_reference_file.log: Permission denied,這個(gè)時(shí)候就需要在主機(jī)上面給主機(jī)地址賦予訪問Jenkins容器的權(quán)限,Jenkins內(nèi)部用的是uid 1000的user。
-privileged=true讓容器具有root權(quán)限,便于進(jìn)入容器
-p 9090:8080指定主機(jī)9090端口映射到Jenkins容器的8080端口(Jenkins的web訪問端口)
-v /home/jenkins:/var/jenkins_home容器/var/jenkins_home路徑掛載到宿主機(jī)/home/jenkins路徑
啟動(dòng)Jenkins
瀏覽器輸入http://ip:9090訪問Jenkins首頁:
![]()
密碼地址
容器內(nèi):/var/jenkins_home/secrets/initialAdminPassword
宿主機(jī):/home/jenkins/secrets/initialAdminPassword
進(jìn)入插件下載頁面,下載插件:
![]()
Jenkins插件下載
再進(jìn)入插件下載管理頁面http://ip:9090/pluginManager/advanced,使用https://cdn.jsdelivr.net/gh/jenkins-zh/update-center-mirror/tsinghua/current/update-center.json替換原來的json。
配置Jenkins
![]()
修改Jenkins時(shí)間
查看宿主機(jī)系統(tǒng)時(shí)間:
date -R
進(jìn)入Jenkins容器查看時(shí)間:
docker exec -it -u root 容器id /bin/bash # 進(jìn)入容器
date -R # 查看容器內(nèi)時(shí)間
echo Asia/Shanghai >/etc/timezone # 容器內(nèi)創(chuàng)建Asia時(shí)區(qū)文件
docker cp /usr/share/zoneinfo/Asia/Shanghai 容器id:/etc/localtime # 退出容器并復(fù)制宿主機(jī)中l(wèi)ocaltime到容器內(nèi)
配置Python3環(huán)境
Jenkins容器內(nèi)并沒有Python3環(huán)境,需要自己安裝:
docker exec -it -u root 容器id /bin/bash #進(jìn)入容器
cat /etc/issue #查看當(dāng)前操作系統(tǒng)
注:Debian系統(tǒng),這里使用apt-get代替yum。
apt-get update #更新apt-get
#apt-get安裝依賴包
apt-get -y install gcc automake autoconf libtool make
apt-get -y install make*
apt-get -y install zlib*
apt-get -y install openssl libssl-dev
apt-get install sudo
# 安裝Python3
cd /var/jenkins_home
mkdir python3
cd python3
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz # 獲取python-3.6.8.tgz包
tar -xvf Pyhthon-3.6.8.tgz #解壓
cd Python-3.6.8 # 切換到Python-3.6.8目錄
#執(zhí)行make和make install安裝
./configure --prefix=/var/jenkins_home/python3 --with-ssl
make
make install
# 添加軟連接
# 添加Python3軟連接
ln -s /var/jenkins_home/python3/bin/python3.6 /usr/bin/python3
# 添加pip3軟連接
ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3
# 安裝所需Python庫
pip3 instal requests pytest-html pytest
配置HTML報(bào)告/Allure報(bào)告
HTML報(bào)告配置
HTML Publisher插件下載,系統(tǒng)設(shè)置-->插件管理-可選插件,搜索:HTML Publisher。
![]()
Allure報(bào)告配置
下載allure:https://github.com/allure-framework/allure2/releases/download/2.14.0/allure-2.14.0.tgz。
docker cp /home/allure-2.14.0.tgz 容器id:/var/jenkins_home # 拷貝到容器內(nèi)
cd /var/jenkins_home
mkdir allure
cd /var/jenkins_home/allure
tar -xvf allure-2.14.0.tgz # 解壓allure
安裝Allure Jenkins Plugin插件,系統(tǒng)管理插件管理-可選插件,搜索Allure:
![]()
安裝完成后,全局工具配置>Allure Commandline安裝allure命令行工具,選擇容器內(nèi)路徑。
簡單使用-實(shí)例構(gòu)建
構(gòu)建job。
![]()
參數(shù)化構(gòu)建
系統(tǒng)設(shè)置-->插件管理-可選插件,搜索Git Parameter.
![]()
安裝完成后,job中勾選參數(shù)化構(gòu)建過程。
注:這里是生成allure報(bào)告的配置,如果是要生成HTML報(bào)告則使用如下命令:
pytest test_demo.py --html=report/result.html --self-contained-html
構(gòu)建后操作
![]()
path地方寫Aallure報(bào)告的地址,與執(zhí)行shell地方生成的報(bào)告地址保持一致即可。
![]()
注:上述是生成allure報(bào)告配置,生成HTML配置如下:
![]()
![]()
注:HTML添加css樣式。
安裝Startup Trigger和Groovy插件
在Job配置頁面構(gòu)建觸發(fā)器勾選Build when job nodes start
![]()
增加構(gòu)建步驟Execute system Groovy script
![]()
配置成功
配置成功后,參數(shù)化構(gòu)建:
![]()
控制臺(tái)輸出
![]()
Allure報(bào)告查看
![]()
![]()
HTML報(bào)告查看
![]()
![]()
最后:在我的V :atstudy-js,可以免費(fèi)領(lǐng)取一份10G軟件測(cè)試工程師面試寶典文檔資料。以及相對(duì)應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!其中包括了有基礎(chǔ)知識(shí)、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測(cè)試工具、測(cè)試進(jìn)階-Python編程、Web自動(dòng)化測(cè)試、APP自動(dòng)化測(cè)試、接口自動(dòng)化測(cè)試、測(cè)試高級(jí)持續(xù)集成、測(cè)試架構(gòu)開發(fā)測(cè)試框架、性能測(cè)試、安全測(cè)試等。
![]()
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.