一、實(shí)現(xiàn)思路
- 在 Linux 服務(wù)器安裝 docker
- 創(chuàng)建 jenkins 容器
- jenkins 中創(chuàng)建 pipeline 項(xiàng)目
- 根據(jù)自動(dòng)化項(xiàng)目依賴包構(gòu)建 python 鏡像(構(gòu)建自動(dòng)化 python 環(huán)境)
- 運(yùn)行新的 python 容器,執(zhí)行 jenkins 從倉庫中拉下來的自動(dòng)化項(xiàng)目
- 執(zhí)行完成之后刪除容器
二、環(huán)境準(zhǔn)備
- Linux 服務(wù)器一臺(我的是 CentOS7)
1、有云服務(wù)器的同學(xué)直接用云服務(wù)器2、沒有云服務(wù)器的同學(xué)參考我的博客自己動(dòng)手安裝虛擬機(jī)吧 - 在服務(wù)器上正確安裝 docker
1、拉取 jenkins 鏡像jenkins/jenkins:alpine2、拉取 python3 鏡像docker pull python:3-alpine
三、創(chuàng)建 jenkins 容器
- 命令
docker run -dit --name=jenkins_save01 -p 9999:8080 -u=root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:alpine - 參數(shù)說明
-i:表示運(yùn)行容器-t:表示容器啟動(dòng)后會進(jìn)入其命令行-d:守護(hù)式方式創(chuàng)建容器在后臺運(yùn)行--name:容器名稱-p 9999:8080:端口映射,宿主機(jī)端口:jenkins 容器端口-u=root:指定容器用戶為 root 用戶-v /var/run/docker.sock:/var/run/docker.sock:將 docker.sock 映射到 jenkins 容器中docker.sock 文件是 docker client 與 docker daemon 通訊的文件-v /usr/bin/docker:/usr/bin/docker:將宿主機(jī) docker 客戶端映射到 jenkins 容器中 - 運(yùn)行效果
1、看到返回容器 ID 表示 jenkins 容器創(chuàng)建成功
?同時(shí),我也準(zhǔn)備了一份軟件測試面試視頻教程(含接口、自動(dòng)化、性能等),需要的可以直接在下方觀看,或者直接關(guān)注VX公眾號:互聯(lián)網(wǎng)雜貨鋪,免費(fèi)領(lǐng)取
軟件測試視頻教程觀看處:
字節(jié)大佬教你逼自己如何在15天內(nèi)掌握自動(dòng)化測試(接口自動(dòng)化/APP自動(dòng)化/Web自動(dòng)化/性能測試),內(nèi)含項(xiàng)目實(shí)戰(zhàn)
四。 配置 jenkins 容器
- 瀏覽器訪問 http://192.168.1.66:9999,來到 jenkins 解鎖頁面
1、http://192.168.1.66 為 Linux 服務(wù)器 IP 地址2、9999 為宿主機(jī)映射端口
在 Linux 服務(wù)器執(zhí)行命令獲取管理員密碼
執(zhí)行命令:docker logs jenkins_save01
復(fù)制密碼輸入到密碼框,點(diǎn)下一步,來到如下頁面(中間需要等待一段時(shí)間,大概 1 分鐘左右,耐心等待)
?取消默認(rèn)插件勾選,進(jìn)入下一步
設(shè)置管理員用戶名和密碼(以后就用這個(gè)賬號密碼登陸你的 jenkins
配置實(shí)例
jenkins 初始化完成看到如下界面
五。 jenkins 安裝插件
點(diǎn)上一步驟開始使用 jenkins,來到如下界面
點(diǎn) Manage Jenkins 來到如下頁面
點(diǎn) Manage Plugins 安裝插件
1.Git 插件安裝
2、Docker 插件安裝
?
3、HTML Publisher 插件安裝
?
4、安裝 Pipeline 插件
?
5、安裝完成后重啟 jenkins 容器
docker restart jenkins_save01
六。 創(chuàng)建 jenkins 任務(wù)
重新登陸 jenkins,點(diǎn) New Item
選擇創(chuàng)建 Pipeline 項(xiàng)目
配置構(gòu)建記錄保留規(guī)則
配置 Git 倉庫
?添加 Git 憑證
配置 Jenkinsfile 路徑
配置完成直接點(diǎn)保存即可
七。 構(gòu)建有項(xiàng)目執(zhí)行環(huán)境的 python 鏡像
- 將項(xiàng)目依賴包導(dǎo)出來到 requirements.txt 文件中,txt 文件名稱可以隨意寫
pip freeze > requirements.txt - 在宿主機(jī)(安裝 docker 的機(jī)子)上新建一個(gè)目錄(我的目錄在/app),將 requirements.txt 文件復(fù)制進(jìn)去
- 在 app 目錄下創(chuàng)建 Dockerfile 文件(文件名必須是 Dockerfile,沒有后綴)
- requirement.txt 恩建內(nèi)容如下
unittestreport==1.3.2
openpyxl==3.0.7
ddt==1.4.2
pytest==6.2.2
selenium==3.141.0
pymysql==1.0.2
faker==8.1.0
jsonpath==0.82
BeautifulReport==0.1.3
rsa==4.7.2
pytest-html==3.1.1
allure-pytest==2.9.43
requests-toolbelt==0.9.1
5.Dockerfile 內(nèi)容以及解釋如下
FROM python:3-alpine #基于python:3-alpine這個(gè)基礎(chǔ)鏡像鏡像構(gòu)建鏡像
WORKDIR /app #切換工作空間目錄
ADD ./requirements.txt /app #將python項(xiàng)目依賴包文件添加到鏡像
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #安裝依賴包
CMD ["python3", "main.py"] #設(shè)置容器執(zhí)行后自動(dòng)執(zhí)行的命令,這里main.py是我們自動(dòng)化框架的執(zhí)行入口文件
在 app 目錄下執(zhí)行鏡像構(gòu)建命令
docker build -t python3.9:haili .
-t:鏡像名稱
點(diǎn)(.):點(diǎn)表示 Dockerfile 文件所在的目錄,我現(xiàn)在在 app 目錄下,點(diǎn)表示當(dāng)前目錄
6.構(gòu)建成功后會看到一個(gè)新的鏡像(docker images)
八、創(chuàng)建 build.sh 文件并放到項(xiàng)目根目錄下
echo "運(yùn)行容器python執(zhí)行自動(dòng)化"
docker run --rm -w=$WORKSPACE --volumes-from=jenkins_save01 python3.9:haili
echo "python執(zhí)行自動(dòng)化執(zhí)行成功"
九、寫 Jenkinsfile 文件并將放到項(xiàng)目根目錄下
pipeline{
//配置執(zhí)行環(huán)境
agent any
//配置構(gòu)建過程
stages{
stage('build'){
steps{
echo '開始執(zhí)行shell腳本'
sh 'sh build.sh'
}
}//stage
}//stages
//配置構(gòu)建后操作
post{
always{
echo 'Pipeline 構(gòu)建成功'
publishHTML(target:[allowMissing: false,
alwaysLinkToLastBuild: true,
keepAll: true,
reportDir: 'reports',
reportFiles: '*.html',
reportName: 'My Reports',
reportTitles: 'The Report'])
}
}//post
}//pipeline
十、提交代碼到遠(yuǎn)程倉庫
Git add .
Git commit -am'update'
Git push
十一、構(gòu)建你 jenkins 任務(wù)
點(diǎn)構(gòu)建
查看構(gòu)建日志
??
查看測試報(bào)告,此時(shí)的測試報(bào)告會沒有樣式,因?yàn)楸?Jenkins 禁用了 CSS 樣式,需要我們手動(dòng)解決
??
十二、解決測試報(bào)告沒有樣式的問題
??
把這個(gè)代碼放進(jìn)去執(zhí)行:System.setProperty("
hudson.model.DirectoryBrowserSupport.CSP","")
執(zhí)行成功返回是空,說明沒問題
重新構(gòu)建就可以看到漂亮的測試報(bào)告了
都看到這了,點(diǎn)個(gè)贊再走唄!
PS:如需要軟件測試學(xué)習(xí)資料,可在公眾號(互聯(lián)網(wǎng)雜貨鋪),后臺回復(fù)1,小編后面會逐步完善自己收藏的資料。
整理不易,給個(gè)關(guān)注點(diǎn)個(gè)贊吧,謝謝各位大佬!文章來源:http://www.zghlxwxcb.cn/news/detail-814379.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-814379.html
到了這里,關(guān)于【史上最硬核分享】Docker+jenkinsPipeline 運(yùn)行實(shí)現(xiàn) python 自動(dòng)化(超詳細(xì))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!