案例分享:基於Docker環境下的Jenkins搭建及使用

博為峰網校發表於2022-11-08

Jenkins作為目前持續整合中使用較為廣泛的工具,在實際生產過程中透過結合眾多的外掛,從而實現工程的持續構建、持續部署。 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~

而傳統構建的應用場景大多數執行在虛擬機器或者獨立的伺服器上,在資源開銷和管理維護較為複雜。相比於獨立的伺服器/虛擬機器而言,容器不僅部署方便,且佔用資源較少。

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

瀏覽器輸入訪問Jenkins首頁:

密碼地址

容器內:/var/jenkins_home/secrets/initialAdminPassword

宿主機:/home/jenkins/secrets/initialAdminPassword

進入外掛下載頁面,下載外掛:

Jenkins外掛下載

再進入外掛下載管理頁面/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 # 獲取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:。

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必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。

這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2922438/,如需轉載,請註明出處,否則將追究法律責任。

相關文章