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