pytest搭建自動(dòng)化測(cè)試環(huán)境(docker+pytest+jenkins+allure)
這里我以u(píng)buntu18為例
- 如果有docker環(huán)境,可以直接拉取我打包好的鏡像
docker pull ziyigun/jenkins:v1.0
1 搭建Docker
1.1 安裝docker
# 配置docker安裝環(huán)境
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有哪些版本 第二列是版本號(hào),第三列是存儲(chǔ)庫的名稱。
apt-cache madison docker-ce
# 安裝最新版本
sudo apt-get install -y docker-ce
#或者安裝指定版本(根據(jù)操作系統(tǒng)版本來安裝對(duì)應(yīng)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
# 保存如下內(nèi)容
{
"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驗(yàn)證是否成功
sudo service docker restart
#或者
sudo systemctl restart docker
bug1:ExecStart=/usr/bin/dockerd -H fd://
- 如果發(fā)現(xiàn)docker啟動(dòng)或者重啟報(bào)錯(cuò):
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
# 原來的內(nèi)容
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
# 改為如下的內(nèi)容
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 …
- 如果發(fā)現(xiàn)報(bào)錯(cuò):
mediaType in manifest should be ‘a(chǎn)pplication/vnd.docker.distribution.manifest.v2+json’ not ‘a(chǎn)pplication/vnd.oci.image.manifest.v1+json’
解決辦法:
方法一:
# 升級(jí)Docker版本: 您可以嘗試升級(jí)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 拉取并運(yùn)行Jenkins鏡像
# 拉取最新穩(wěn)定版的jenkins
docker pull jenkins/jenkins:lts
# 創(chuàng)建目錄,掛載jenkins信息
mkdir -p /var/jenkins_node
# 設(shè)置目錄權(quán)限
chmod -R 777 /var/jenkins_node
# 創(chuàng)建jenkins容器
docker run -d -uroot -p 80:8080 --name jenkins -v /var/jenkins_node:/var/jenkins_home jenkins/jenkins:lts
#說明:-d: 指定容器運(yùn)行于前臺(tái)還是后臺(tái),默認(rèn)為false
#-u: 指定容器的用戶-p: 指定容器暴露的端口,主機(jī)的80端口映射容器的8080端口
#--name: 容器名稱-v: 給容器掛載存儲(chǔ)卷,掛載到容器的某個(gè)目錄
# 查看容器運(yùn)行狀態(tài)
docker ps | grep jenkins
# 進(jìn)入jenkins容器內(nèi)部
docker exec -it -uroot jenkins bash
2.2 瀏覽器訪問Jenkins并配置
在瀏覽器中輸入宿主機(jī)ip,即可訪問到j(luò)enkins頁面,如:10.16.53.10
# 查看jenkins默認(rèn)密碼(在容器外部執(zhí)行命令)
docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
然后根據(jù)自己的需求來選擇是否需要安裝Jenkins需要的插件(我這里選擇接受推薦的插件):
完成之后,創(chuàng)建一個(gè)用戶,設(shè)置用戶名密碼、郵箱等
- 修改時(shí)區(qū)
3 配置Python
在jenkins容器中,執(zhí)行如下命令:
3.1 更新apt軟件包
# 獲取最新的軟件包
apt-get update
#升級(jí)已安裝的軟件包
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 編譯并配置環(huán)境變量
# 在/usr/local/src/py3.6目錄執(zhí)行以下命令
./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
# 查看安裝結(jié)果
# 輸入python3,查看是否有對(duì)應(yīng)信息輸出
python3
# 輸入exit()即可退出python的交互頁面
3.4 安裝項(xiàng)目所需python包依賴
# 在python根目錄下生成requirements.txt(指定python項(xiàng)目所依賴的包)
pip3 freeze > requirements.txt
# 將requirements.txt上傳到主機(jī)
docker cp requirements.txt jenkins:/usr/local/src
# 安裝所需的依賴到j(luò)enkins中
pip3 install -r requirements.txt
4 安裝allure依賴:輸出測(cè)試報(bào)告
# 退出jenkins容器,執(zhí)行下面命令
# 官網(wǎng)地址:https://github.com/allure-framework/allure2/releases 建議選擇最新版本下載
# 下載成功之后上傳到服務(wù)器 或者直接通過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
# 重新進(jìn)入jenkins容器中執(zhí)行下面命令
docker exec -itu root jenkins bash
# 解壓
unzip allure-2.23.1.zip
mv allure-2.23.1 allure
# /var/jenkins_home/python3/bin/python3.6
#配置python和allure環(huán)境
cat >> /root/.bashrc << "EOF"
export PATH=/usr/local/src/allure/bin:$PATH
export PATH=/usr/local/src/py3.6/bin:$PATH
EOF
# 更新環(huán)境變量配置
source /root/.bashrc
# 驗(yàn)證環(huán)境變量
allure --version
5 安裝Java環(huán)境:allure需要有java環(huán)境
運(yùn)行allure需要java環(huán)境
cd /usr/local
wget https://download.java.net/openjdk/jdk8u43/ri/openjdk-8u43-linux-x64.tar.gz
tar -xzf openjdk-8u43-linux-x64.tar.gz -C /usr/local/src/
cd /usr/local/src
mv java-se-8u43-ri java8
# 配置Java環(huán)境變量
echo "export JAVA_HOME=/usr/local/src/java8" >> /root/.bashrc
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /root/.bashrc
source /root/.bashrc
# 驗(yàn)證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 設(shè)置本地jenkins容器中allure的可執(zhí)行文件地址
7.3 新建jenkins項(xiàng)目(項(xiàng)目風(fēng)格可以選擇自由風(fēng)格)
①Item- 新建- 選擇Freestyle project - 填寫項(xiàng)目名稱
②填寫項(xiàng)目描述信息,并配置源碼管理(配置git倉庫地址和憑證)
編寫好自動(dòng)化測(cè)試腳本(python代碼)后,上傳到git倉庫中
- 例如:https://gitee.com/Zifasdfa/pytest.git
③配置構(gòu)建步驟④添加構(gòu)建的步驟(生成allure報(bào)告)
在allure report模塊下,點(diǎn)擊高級(jí)
點(diǎn)擊應(yīng)用,然后點(diǎn)擊保存
⑤構(gòu)建任務(wù),點(diǎn)擊立即構(gòu)建
⑥構(gòu)建結(jié)果
點(diǎn)擊allure report,跳轉(zhuǎn)用例輸出界面,查看具體測(cè)試結(jié)果信息
文章來源:http://www.zghlxwxcb.cn/news/detail-655840.html
根據(jù)需求,可以將本地已經(jīng)部署好的jenkins容器打包本地鏡像上傳到dockerhub文章來源地址http://www.zghlxwxcb.cn/news/detail-655840.html
docker tag jenkins/jenkins:lts ziyigun/jenkins:v1.0
docker login
# 輸入用戶名和密碼
# 推送到dockerhub倉庫
docker push ziyigun/jenkins:v1.0
到了這里,關(guān)于基于docker搭建pytest自動(dòng)化測(cè)試環(huán)境(docker+pytest+jenkins+allure)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!