一、實現思路
- 在 Linux 服務器安裝 docker
- 創(chuàng)建 jenkins 容器
- jenkins 中創(chuàng)建 pipeline 項目
- 根據自動化項目依賴包構建 python 鏡像(構建自動化 python 環(huán)境)
- 運行新的 python 容器,執(zhí)行 jenkins 從倉庫中拉下來的自動化項目
- 執(zhí)行完成之后刪除容器
二、環(huán)境準備
- Linux 服務器一臺(我的是 CentOS7)
1、有云服務器的同學直接用云服務器2、沒有云服務器的同學參考我的博客自己動手安裝虛擬機吧 - 在服務器上正確安裝 docker
1、拉取 jenkins 鏡像jenkins/jenkins:alpine2、拉取 python3 鏡像docker pull python:3-alpine
同時,我也為大家準備了一份軟件測試視頻教程(含面試、接口、自動化、性能測試等),就在下方,需要的可以直接去觀看,也可以直接點擊文末小卡片免費領取資料文檔
軟件測試視頻教程觀看處:
字節(jié)大佬教你逼自己如何在15天內掌握自動化測試(接口自動化/APP自動化/Web自動化/性能測試),內含項目實戰(zhàn)
三、創(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 - 參數說明
-i:表示運行容器-t:表示容器啟動后會進入其命令行-d:守護式方式創(chuàng)建容器在后臺運行--name:容器名稱-p 9999:8080:端口映射,宿主機端口: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:將宿主機 docker 客戶端映射到 jenkins 容器中 - 運行效果
1、看到返回容器 ID 表示 jenkins 容器創(chuàng)建成功
四。 配置 jenkins 容器
- 瀏覽器訪問 http://192.168.1.66:9999,來到 jenkins 解鎖頁面
1、http://192.168.1.66 為 Linux 服務器 IP 地址2、9999 為宿主機映射端口
在 Linux 服務器執(zhí)行命令獲取管理員密碼
執(zhí)行命令:docker logs jenkins_save01
復制密碼輸入到密碼框,點下一步,來到如下頁面(中間需要等待一段時間,大概 1 分鐘左右,耐心等待)
??
取消默認插件勾選,進入下一步
設置管理員用戶名和密碼(以后就用這個賬號密碼登陸你的 jenkins
配置實例
jenkins 初始化完成看到如下界面
五。 jenkins 安裝插件
點上一步驟開始使用 jenkins,來到如下界面
點 Manage Jenkins 來到如下頁面
點 Manage Plugins 安裝插件
1.Git 插件安裝
2、Docker 插件安裝
?
3、HTML Publisher 插件安裝
?
4、安裝 Pipeline 插件
?
5、安裝完成后重啟 jenkins 容器
docker restart jenkins_save01
六。 創(chuàng)建 jenkins 任務
重新登陸 jenkins,點 New Item
選擇創(chuàng)建 Pipeline 項目
配置構建記錄保留規(guī)則
配置 Git 倉庫
?添加 Git 憑證
配置 Jenkinsfile 路徑
配置完成直接點保存即可
七。 構建有項目執(zhí)行環(huán)境的 python 鏡像
- 將項目依賴包導出來到 requirements.txt 文件中,txt 文件名稱可以隨意寫
pip freeze > requirements.txt - 在宿主機(安裝 docker 的機子)上新建一個目錄(我的目錄在/app),將 requirements.txt 文件復制進去
- 在 app 目錄下創(chuàng)建 Dockerfile 文件(文件名必須是 Dockerfile,沒有后綴)
- requirement.txt 恩建內容如下
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 內容以及解釋如下
FROM python:3-alpine #基于python:3-alpine這個基礎鏡像鏡像構建鏡像
WORKDIR /app #切換工作空間目錄
ADD ./requirements.txt /app #將python項目依賴包文件添加到鏡像
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #安裝依賴包
CMD ["python3", "main.py"] #設置容器執(zhí)行后自動執(zhí)行的命令,這里main.py是我們自動化框架的執(zhí)行入口文件
在 app 目錄下執(zhí)行鏡像構建命令
docker build -t python3.9:haili .
-t:鏡像名稱
點(.):點表示 Dockerfile 文件所在的目錄,我現在在 app 目錄下,點表示當前目錄
6.構建成功后會看到一個新的鏡像(docker images)
八、創(chuàng)建 build.sh 文件并放到項目根目錄下
echo "運行容器python執(zhí)行自動化"
docker run --rm -w=$WORKSPACE --volumes-from=jenkins_save01 python3.9:haili
echo "python執(zhí)行自動化執(zhí)行成功"
九、寫 Jenkinsfile 文件并將放到項目根目錄下
pipeline{
//配置執(zhí)行環(huán)境
agent any
//配置構建過程
stages{
stage('build'){
steps{
echo '開始執(zhí)行shell腳本'
sh 'sh build.sh'
}
}//stage
}//stages
//配置構建后操作
post{
always{
echo 'Pipeline 構建成功'
publishHTML(target:[allowMissing: false,
alwaysLinkToLastBuild: true,
keepAll: true,
reportDir: 'reports',
reportFiles: '*.html',
reportName: 'My Reports',
reportTitles: 'The Report'])
}
}//post
}//pipeline
十、提交代碼到遠程倉庫
Git add .
Git commit -am'update'
Git push
十一、構建你 jenkins 任務
點構建
查看構建日志
查看測試報告,此時的測試報告會沒有樣式,因為被 Jenkins 禁用了 CSS 樣式,需要我們手動解決
??
十二、解決測試報告沒有樣式的問題
??
把這個代碼放進去執(zhí)行:System.setProperty("
hudson.model.DirectoryBrowserSupport.CSP","")
執(zhí)行成功返回是空,說明沒問題
重新構建就可以看到漂亮的測試報告了
都看到這了,點個贊再走唄!
PS:這里分享一套軟件測試的自學教程合集。對于在測試行業(yè)發(fā)展的小伙伴們來說應該會很有幫助,有需要的朋友你可以dd我。除了基礎入門的資源,博主也收集不少進階自動化的資源,從理論到實戰(zhàn),知行合一才能真正的掌握。全套內容已經打包到網盤,內容總量接近100個G。
? 240集-零基礎到精通全套視頻課程
? [課件+源碼]-完整配套的教程
? 18套-測試實戰(zhàn)項目源碼
? 37套-測試工具軟件包
? 268道-真實面試題
? 200個模板-面試簡歷模板、測試方案模板、軟件測試報告模板、測試分析模版、測試計劃模板、性能測試報告、性能測試報告、性能測試腳本用例模板(信息完整)
這些資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術行業(yè),一定要提升技術功底。文章來源:http://www.zghlxwxcb.cn/news/detail-709178.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-709178.html
到了這里,關于Docker+jenkinsPipeline運行實現python自動化測試(超詳細)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!