基于docker搭建pytest自動化測試環境(docker+pytest+jenkins+allure)

pytest搭建自動化測試環境(docker+pytest+jenkins+allure)

這里我以ubuntu18為例

  • 如果有docker環境,可以直接拉取我打包好的鏡像
  • docker pull ziyigun/jenkins:v1.0

1 搭建Docker

1.1 安裝docker

# 配置docker安裝環境
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# 添加阿里的GPG秘鑰
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -# 添加阿里鏡像源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"# 更新apt
sudo apt-get update# 查詢docker有哪些版本 第二列是版本號,第三列是存儲庫的名稱。
apt-cache madison docker-ce# 安裝最新版本
sudo apt-get install -y docker-ce#或者安裝指定版本(根據操作系統版本來安裝對應docker版本)
# sudo apt-get install -y docker-ce=5:19.03.1~3-0~ubuntu-cosmic# 查看docker版本
sudo docker version

1.2 配置鏡像加速

sudo vi /etc/docker/daemon.json
# 保存如下內容
{"registry-mirrors": ["https://ooq07srv.mirror.aliyuncs.com""https://registry.cn-hangzhou.aliyuncs.com","http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com" ] 
}# 重啟docker驗證是否成功
sudo service docker restart
#或者
sudo systemctl restart docker

bug1:ExecStart=/usr/bin/dockerd -H fd://

  • 如果發現docker啟動或者重啟報錯:
    ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)

解決辦法:
方法一:

cp /etc/docker/daemon.json /etc/docker/daemon.conf
sudo systemctl restart docker

方法二:

sudo edit /usr/lib/systemd/system/docker.service
# 原來的內容
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
# 改為如下的內容
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph /usr/local/docker# 重啟docker
systemctl daemon-reload
systemctl restart docker

bug2:mediaType in manifest should be …

  • 如果發現報錯:
    mediaType in manifest should be ‘application/vnd.docker.distribution.manifest.v2+json’ not ‘application/vnd.oci.image.manifest.v1+json’

解決辦法:

方法一:

# 升級Docker版本: 您可以嘗試升級Docker到支持OCI格式的版本
sudo apt-get purge docker-ce docker-ce-cli containerd.io
# 安裝最新的docker版本
sudo apt-get install -y docker-ce

方法二:

# Docker Registry API v2
docker pull --disable-content-trust jenkins/jenkins

1.3 卸載docker

如果使用完成之后想要卸載docker

# 卸載docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io

2 搭建Jenkins

2.1 拉取并運行Jenkins鏡像

# 拉取最新穩定版的jenkins
docker pull jenkins/jenkins:lts# 創建目錄,掛載jenkins信息
mkdir -p /var/jenkins_node# 設置目錄權限
chmod -R 777 /var/jenkins_node# 創建jenkins容器
docker run -d -uroot -p 80:8080 --name jenkins -v /var/jenkins_node:/var/jenkins_home jenkins/jenkins:lts
#說明:-d: 指定容器運行于前臺還是后臺,默認為false
#-u: 指定容器的用戶-p: 指定容器暴露的端口,主機的80端口映射容器的8080端口
#--name: 容器名稱-v: 給容器掛載存儲卷,掛載到容器的某個目錄# 查看容器運行狀態
docker ps | grep jenkins# 進入jenkins容器內部
docker exec -it -uroot jenkins bash

2.2 瀏覽器訪問Jenkins并配置

在瀏覽器中輸入宿主機ip,即可訪問到jenkins頁面,如:10.16.53.10

# 查看jenkins默認密碼(在容器外部執行命令)
docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword

然后根據自己的需求來選擇是否需要安裝Jenkins需要的插件(我這里選擇接受推薦的插件):
在這里插入圖片描述

完成之后,創建一個用戶,設置用戶名密碼、郵箱等

  • 修改時區
    在這里插入圖片描述

3 配置Python

在jenkins容器中,執行如下命令:

3.1 更新apt軟件包

# 獲取最新的軟件包
apt-get update
#升級已安裝的軟件包
apt-get upgrade  
#提前安裝,以便接下來的配置操作
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

3.2 下載python3源碼

cd /usr/local/src
# 安裝wget命令
apt-get install wget
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
tar -zxvf Python-3.6.8.tgz 
mv Python-3.6.8 py3.6
cd py3.6

3.3 編譯并配置環境變量

# 在/usr/local/src/py3.6目錄執行以下命令
./configure --prefix=/var/jenkins_home/python3 --with-ssl
make
make install#添加python3軟鏈接ln -s /var/jenkins_home/python3/bin/python3 /usr/bin/python3# rm -f /usr/bin/python3即可刪除軟鏈接#添加pip3軟鏈接
# 將/var/jenkins_home/python3/bin/pip3鏈接到/usr/bin/pip3
ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3# 查看安裝結果
# 輸入python3,查看是否有對應信息輸出
python3
# 輸入exit()即可退出python的交互頁面

在這里插入圖片描述

3.4 安裝項目所需python包依賴

# 在python根目錄下生成requirements.txt(指定python項目所依賴的包)
pip3 freeze > requirements.txt  
# 將requirements.txt上傳到主機
docker cp requirements.txt jenkins:/usr/local/src
# 安裝所需的依賴到jenkins中
pip3 install -r requirements.txt  

4 安裝allure依賴:輸出測試報告

# 退出jenkins容器,執行下面命令
# 官網地址:https://github.com/allure-framework/allure2/releases  建議選擇最新版本下載
# 下載成功之后上傳到服務器 或者直接通過wget命令下載也可以
wget https://github.com/allure-framework/allure2/releases/download/2.23.1/allure-2.23.1.zip
docker cp allure-2.23.1.zip jenkins:/usr/local/src# 重新進入jenkins容器中執行下面命令
docker exec -itu root jenkins bash# 解壓
unzip allure-2.23.1.zipmv allure-2.23.1 allure# /var/jenkins_home/python3/bin/python3.6 
#配置python和allure環境
cat >> /root/.bashrc << "EOF"
export PATH=/usr/local/src/allure/bin:$PATH
export PATH=/usr/local/src/py3.6/bin:$PATH
EOF# 更新環境變量配置
source /root/.bashrc# 驗證環境變量
allure --version  

5 安裝Java環境:allure需要有java環境

運行allure需要java環境

cd /usr/local
wget https://download.java.net/openjdk/jdk8u43/ri/openjdk-8u43-linux-x64.tar.gztar -xzf openjdk-8u43-linux-x64.tar.gz -C /usr/local/src/
cd /usr/local/src
mv java-se-8u43-ri java8# 配置Java環境變量
echo "export JAVA_HOME=/usr/local/src/java8" >> /root/.bashrc
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /root/.bashrcsource /root/.bashrc
# 驗證Java安裝
java -version

在這里插入圖片描述

6 安裝pytest

pip3 install pytest
ln -s /var/jenkins_home/python3/bin/pytest /usr/bin/pytest
export PATH=/usr/local/src/pytest/bin:$PATH
source /root/.bashrc
# 輸入pytest查看是否安裝成功

7 配置jenkins中的插件和git地址

7.1安裝allure插件

在這里插入圖片描述

7.2 設置本地jenkins容器中allure的可執行文件地址

在這里插入圖片描述

7.3 新建jenkins項目(項目風格可以選擇自由風格)

①Item- 新建- 選擇Freestyle project - 填寫項目名稱
在這里插入圖片描述

②填寫項目描述信息,并配置源碼管理(配置git倉庫地址和憑證)
在這里插入圖片描述

編寫好自動化測試腳本(python代碼)后,上傳到git倉庫中

  • 例如:https://gitee.com/Zifasdfa/pytest.git

③配置構建步驟
在這里插入圖片描述④添加構建的步驟(生成allure報告)
在這里插入圖片描述

在allure report模塊下,點擊高級

在這里插入圖片描述
點擊應用,然后點擊保存

⑤構建任務,點擊立即構建
在這里插入圖片描述
⑥構建結果
在這里插入圖片描述

點擊allure report,跳轉用例輸出界面,查看具體測試結果信息

在這里插入圖片描述

根據需求,可以將本地已經部署好的jenkins容器打包本地鏡像上傳到dockerhub

docker tag jenkins/jenkins:lts ziyigun/jenkins:v1.0
docker login
# 輸入用戶名和密碼
# 推送到dockerhub倉庫
docker push ziyigun/jenkins:v1.0

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41143.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41143.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41143.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

潤和軟件HopeStage操作系統正式上架阿里云、華為云、騰訊云商店

近日&#xff0c;潤和軟件HopeStage操作系統正式上架阿里云、華為云、騰訊云商店。 隨著科技的發展&#xff0c;云服務成為現代社會信息和資訊的交換、共享、存儲、檢索、應用等重要方式。阿里云、華為云、騰訊云作為我國云服務市場三巨頭&#xff0c;其云商店產品全面覆蓋云、…

Nvidia Jetson 編解碼開發(1)介紹

前言 由于項目需要,需要開發Jetson平臺的硬件編解碼; 優化CPU帶寬,后續主要以介紹硬件編解碼為主 1.Jetson各平臺編解碼性能說明 如下是拿了Jetson nano/tx2/Xavier等幾個平臺做對比; 這里說明的編解碼性能主要是對硬件來說的 2. 編解碼實現說明 2.1 軟件編解碼 優點:…

Idea中隱藏指定文件或指定類型文件

Setting ->Editor ->Code Style->File Types → Ignored Files and Folders輸入要隱藏的文件名&#xff0c;支持*號通配符回車確認添加

Windows權限維持—自啟動映像劫持粘滯鍵輔助屏保后門WinLogon

Windows權限維持—自啟動&映像劫持&粘滯鍵&輔助屏保后門&WinLogon 1. 前置2. 自啟動2.1. 路徑加載2.1.1. 放置文件2.1.2. 重啟主機 2.2. 服務加載2.2.1. 創建服務2.2.2. 查看服務2.2.3. 重啟主機 2.3. 注冊表加載2.3.1. 添加啟動項2.3.2. 查看注冊表2.3.3. 重啟…

YOLOv5基礎知識入門(7)— NMS(非極大值抑制)原理解析

前言&#xff1a;Hello大家好&#xff0c;我是小哥談。NMS是指非極大值抑制&#xff08;non maximum suppression&#xff09;&#xff0c;它是一種常用于物體檢測任務的算法。在物體檢測中&#xff0c;通常會有多個預測框&#xff08;bounding box&#xff09;被提議出來&…

機器學習深度學習——transformer(機器翻譯的再實現)

&#x1f468;?&#x1f393;作者簡介&#xff1a;一位即將上大四&#xff0c;正專攻機器學習的保研er &#x1f30c;上期文章&#xff1a;機器學習&&深度學習——自注意力和位置編碼&#xff08;數學推導代碼實現&#xff09; &#x1f4da;訂閱專欄&#xff1a;機器…

【論文閱讀】 Model Sparsity Can Simplify Machine Unlearning

Model Sparsity Can Simplify Machine Unlearning 背景主要內容Contribution Ⅰ&#xff1a;對Machine Unlearning的一個全面的理解Contribution Ⅱ&#xff1a;說明model sparsity對Machine Unlearning的好處Pruning方法的選擇sparse-aware的unlearning framework Experiments…

JetBrains IDE遠程開發功能可供GitHub用戶使用

JetBrains與GitHub去年已達成合作&#xff0c;提供GitHub Codespaces 與 JetBrains Gateway 之間的集成。 GitHub Codespaces允許用戶創建安全、可配置、專屬的云端開發環境&#xff0c;此集成意味著您可以通過JetBrains Gateway使用在 GitHub Codespaces 中運行喜歡的IDE進行…

VScode搭建Opencv(C++開發環境)

VScode配置Opencv 一、 軟件版本二 、下載軟件2.1 MinGw下載2.2 Cmake下載2.3 Opencv下載 三、編譯3.1 cmake-gui3.2 make3.3 install 四、 VScode配置4.1 launch.json4.2 c_cpp_properties.json4.3 tasks.json 五、測試 一、 軟件版本 cmake :cmake-3.27.2-windows-x86_64 Mi…

JAVA基礎知識(一)——Java語言描述、變量和運算符

TOC(Java語言描述、變量和運算符) 一、JAVA語言描述 1.1 java語言描述 JDK、JRE、jVM三者之間的關系&#xff0c;以及JDK、JRE包含的主要結構有哪些&#xff1f; JDKJre java的開發工具&#xff08;javac.exe java.exe javadoc.exe&#xff09; jre jvmjava的核心類庫 為什…

C++策略模式

1 簡介&#xff1a; 策略模式是一種行為型設計模式&#xff0c;用于在運行時根據不同的情況選擇不同的算法或行為。它將算法封裝成一個個具體的策略類&#xff0c;并使這些策略類可以相互替換&#xff0c;以達到動態改變對象的行為的目的。 2 實現步驟&#xff1a; 以下是使用…

【JavaEE基礎學習打卡03】Java EE 平臺有哪些內容?

目錄 前言一、Java EE平臺說明二、Java EE平臺容器及組件1.平臺容器2.平臺組件 三、JavaEE平臺API服務1.API服務概覽2.平臺API 總結 前言 &#x1f4dc; 本系列教程適用于Java Web初學者、愛好者&#xff0c;小白白。我們的天賦并不高&#xff0c;可貴在努力&#xff0c;堅持不…

使用CLI添加磁盤到VM

登錄 https://portal.azure.com/#home&#xff0c;點擊右上角的控制臺圖標 &#xff0c;打開CLI 在控制臺中輸入如下指令&#xff0c;在NetworkWatcherRG創建一個名字為TEST的虛擬機&#xff0c;使用的鏡像是Win2019datacenter&#xff0c;username是aaa,password是1234567890A…

mysql的快速復習 和一些思考記錄

數據庫設計 第一范式&#xff1a;有主鍵&#xff0c;具有原子性&#xff0c;字段不可分割 數據庫表中不能出現重復記錄&#xff0c;每個字段是原子性的不能再分 關于第一范式&#xff0c;每一行必須唯一&#xff0c;也就是每個表必須有主鍵。 每一列不可再分&#xff01;&#…

Sui主網升級至V1.7.1版本

Sui主網現已升級至V1.7.1版本&#xff0c;此升級包含了多項修復和優化。升級要點如下所示&#xff1a; #12915 協議版本提升至20版本。 在Sui框架中新增Kiosk Extensions API和一個新的sui::kiosk_extension模塊。 您可以使用該API構建自定義的Kiosk應用程序&#xff0c;以…

okhttp源碼簡單流程分析

攔截器詳細解析可以看大佬簡書 "https://www.jianshu.com/p/6fac73f7570f"和 “https://www.jianshu.com/p/3c740829475c” okhttp請求流程 1&#xff1a;OkHttpClient okHttpClient new OkHttpClient.Builder() 構建一個okhttpClient對象&#xff0c;傳入你想傳入的…

vector使用以及模擬實現

vector使用以及模擬實現 vector介紹vector常用接口1.構造2.迭代器3.容量4.增刪查改5.練習 vector模擬實現1.迭代器失效2.反向迭代器3.完整代碼 vector介紹 和我們原來講的string不同&#xff0c;vector并不是類&#xff0c;是一個類模板&#xff0c;加<類型>實例化以后才…

主機防護的重要性和方式

01 主機防護的重要性 主機防護是網絡安全的重要組成部分。在互聯網時代&#xff0c;網絡攻擊成為了一種常見的威脅&#xff0c;而主機防護則是保護計算機系統免受網絡攻擊的重要手段。 主機防護可以防范各種網絡攻擊&#xff0c;如病毒、木馬、黑客攻擊等&#xff0c;從而保…

氣象監測站:用科技感知氣象變化

氣象監測站是利用科學技術感知當地小氣候變化情況的氣象觀測儀器&#xff0c;可用于農業、林業、養殖業、畜牧業、環境保護、工業等多個領域&#xff0c;提高對環境數據的利用率&#xff0c;促進產業效能不斷提升。 氣象監測站主要由氣象傳感器、數據傳輸系統、電源系統、支架…

Linux debian12解壓和壓縮.rar文件教程

一、Debian12安裝rar命令 sudo apt install rar二、使用rar軟件 1.解壓文件 命令格式&#xff1a; rar x 文件名.rar實力測試&#xff1a; [rootdoudou tmp]# rar x test.rar2.壓縮文件 test是一個文件夾 命令格式&#xff1a; rar a 文件名.rar 文件夾名實例測試&#x…