Jenkins作為目前持續(xù)集成中使用較為廣泛的工具,在實際生產(chǎn)過程中通過結合眾多的插件,從而實現(xiàn)工程的持續(xù)構建、持續(xù)部署。
![]()
而傳統(tǒng)構建的應用場景大多數(shù)運行在虛擬機或者獨立的服務器上,在資源開銷和管理維護較為復雜。相比于獨立的服務器/虛擬機而言,容器不僅部署方便,且占用資源較少。
Docker作為目前作為業(yè)內(nèi)最火的一個容器解決方案之一,通過將兩者結合,從而實現(xiàn)服務的輕量化,并通過Docker管理Jenkins的資源。下面通過Docker部署Jenkins、Jenkins配置以及實例構建,講述Jenkins的基本使用。
Docker下安裝Jenkins
注:因為Jenkins容器里的用戶是Jenkins,而主機用戶不是Jenkins,就算是root也一樣會報錯:/var/jenkins_home/copy_reference_file.log: Permission denied,這個時候就需要在主機上面給主機地址賦予訪問Jenkins容器的權限,Jenkins內(nèi)部用的是uid 1000的user。
-privileged=true讓容器具有root權限,便于進入容器
-p 9090:8080指定主機9090端口映射到Jenkins容器的8080端口(Jenkins的web訪問端口)
-v /home/jenkins:/var/jenkins_home容器/var/jenkins_home路徑掛載到宿主機/home/jenkins路徑
啟動Jenkins
瀏覽器輸入http://ip:9090訪問Jenkins首頁:
![]()
密碼地址
容器內(nèi):/var/jenkins_home/secrets/initialAdminPassword
宿主機:/home/jenkins/secrets/initialAdminPassword
進入插件下載頁面,下載插件:
![]()
Jenkins插件下載
再進入插件下載管理頁面http://ip:9090/pluginManager/advanced,使用https://cdn.jsdelivr.net/gh/jenkins-zh/update-center-mirror/tsinghua/current/update-center.json替換原來的json。
配置Jenkins
![]()
修改Jenkins時間
查看宿主機系統(tǒng)時間:
date -R
進入Jenkins容器查看時間:
docker exec -it -u root 容器id /bin/bash # 進入容器
date -R # 查看容器內(nèi)時間
echo Asia/Shanghai >/etc/timezone # 容器內(nèi)創(chuàng)建Asia時區(qū)文件
docker cp /usr/share/zoneinfo/Asia/Shanghai 容器id:/etc/localtime # 退出容器并復制宿主機中l(wèi)ocaltime到容器內(nèi)
配置Python3環(huán)境
Jenkins容器內(nèi)并沒有Python3環(huán)境,需要自己安裝:
docker exec -it -u root 容器id /bin/bash #進入容器
cat /etc/issue #查看當前操作系統(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報告/Allure報告
HTML報告配置
HTML Publisher插件下載,系統(tǒng)設置-->插件管理-可選插件,搜索:HTML Publisher。
![]()
Allure報告配置
下載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)路徑。
簡單使用-實例構建
構建job。
![]()
參數(shù)化構建
系統(tǒng)設置-->插件管理-可選插件,搜索Git Parameter.
![]()
安裝完成后,job中勾選參數(shù)化構建過程。
注:這里是生成allure報告的配置,如果是要生成HTML報告則使用如下命令:
pytest test_demo.py --html=report/result.html --self-contained-html
構建后操作
![]()
path地方寫Aallure報告的地址,與執(zhí)行shell地方生成的報告地址保持一致即可。
![]()
注:上述是生成allure報告配置,生成HTML配置如下:
![]()
![]()
注:HTML添加css樣式。
安裝Startup Trigger和Groovy插件
在Job配置頁面構建觸發(fā)器勾選Build when job nodes start
![]()
增加構建步驟Execute system Groovy script
![]()
配置成功
配置成功后,參數(shù)化構建:
![]()
控制臺輸出
![]()
Allure報告查看
![]()
![]()
HTML報告查看
![]()
![]()
最后:在我的V :atstudy-js,可以免費領取一份10G軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!其中包括了有基礎知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構開發(fā)測試框架、性能測試、安全測試等。
![]()
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
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.