Docker-jenkins容器内部署pytest+allure+requests运行环境(java+python2+python3),解决过程中遇到的各种大坑!!!

项目运行环境配置

首先我们来看一下,你提交的代码都放在了服务器的什么位置
在这里插入图片描述

进入到workspaces目录下,可以看到提交的项目代码
在这里插入图片描述
但是,这时候,项目还不能运行起来,因为没有安装对应的环境依赖,接下来我们进入到jenkins所在的容器,安装python环境

进jenkins容器

docker exec -it -u root 容器id /bin/bash

查看当前操作系统

cat /etc/issue
这里查到的是Debian系统(不是ubuntu, 也不是centos),这里yum是没有的,所以不能用yum安装了,这里用apt-get代替yum
先执行更新apt-get
apt-get update

下载python3安装包,我这边安装的是3.8.10版本

root@3be4b6cd9b8c:/var/jenkins_home# cd /var/jenkins_home/
root@3be4b6cd9b8c:/var/jenkins_home# mkdir python3
root@3be4b6cd9b8c:/var/jenkins_home# cd python3/
root@3be4b6cd9b8c:/var/jenkins_home#apt-get install wget
root@3be4b6cd9b8c:/var/jenkins_home/python3# wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz
root@3be4b6cd9b8c:/var/jenkins_home/python3# tar -xvf Python-3.8.10.tgz
root@3be4b6cd9b8c:/var/jenkins_home/python3# ls
Python-3.8.10  Python-3.8.10.tgz
root@3be4b6cd9b8c:/var/jenkins_home/python3# cd Python-3.8.10
root@3be4b6cd9b8c:/var/jenkins_home/python3/Python-3.8.10# ./configure --prefix=/var/jenkins_home/python3

执行 ./configure --prefix=/var/jenkins_home/python3时报上面错:configure: error: no acceptable C compiler found in $PATH,这个是因为缺少gcc相关依赖包,下边使用apt-get代替yum安装相关依赖包

安装依赖包

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
sudo apt-get update
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev
sudo apt-get install libxpm-dev libxext-dev 
sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev

编译安装

# 需要在python目录下执行
./configure --prefix=/var/jenkins_home/python3 --with-ssl
make && make install
# 添加软链接,检查环境
ln -s /var/jenkins_home/python3/bin/python3.8 /usr/bin/python3
ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3
python3 --version
pip3 --version
# 升级PIP
/var/jenkins_home/python3/bin/python3.8 -m pip install --upgrade pip

如果你的linux系统需要python2和3并存,请继续往下看

python的ssl模块需要openssl 1.1.1,所以我们需要卸载旧版本的openssl,再手动安装新的openssl
# 卸载 openssl
rpm -qa | grep openssl 查看已安装的openssl
yum -y remove openssl-1.0.2k-25.el7_9.x86_64 卸载
# 手动安装 openssl
wget http://www.openssl.org/source/openssl-1.1.1.tar.gz
tar -zxvf openssl-1.1.1.tar.gz
./config --prefix=/usr/local/openssl
yum -y install perl
./config --prefix=/usr/local/openssl
make && make install
[spark@spark2 openssl-1.1.1]# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
[spark@spark2 openssl-1.1.1]# ln -s /usr/local/openssl/include/openssl /usr/include/openssl
[spark@spark2 openssl-1.1.1]# ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[spark@spark2 openssl-1.1.1]# ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
[spark@spark2 openssl-1.1.1]#
[root@qa openssl-1.1.1]# openssl version
OpenSSL 1.1.1  11 Sep 2018
# 安装依赖
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
# 下载压缩包
wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz
tar -xvf Python-3.8.10.tgz
# 配置python文件存放目录,便于统一管理
./configure --prefix=/home/work/python/python3 --with-openssl=/usr/local/openssl/
# 编译安装
make && make install
# 配置软链接
ln -s /home/work/python/python3/bin/python3 /usr/bin/python3
ln -s /home/work/python/python3/bin/pip3 /usr/bin/pip3
# 查看pip配置
cat ~/.pip/pip.conf
# 升级PIP
/home/work/python/python3/bin/python3.8 -m pip install --upgrade pip
# 安装项目依赖
pip3 install -r requirements.txt

安装allure

# 安装Java环境
# 同样使用rz -be上传
# oracle官网 下载linux版本包
# https://www.oracle.com/java/technologies/downloads/#java8
# 在/usr/目录下创建java目录
mkdir /usr/local/java
cd /usr/local/java
# 把下载的文件 jdk-8u151-linux-x64.tar.gz 放在/usr/local/java/目录下
# 解压 JDK
tar -zxvf jdk-8u151-linux-x64.tar.gz
# 设置环境变量,修改
vi /etc/profile
## 在 profile 文件中添加如下内容并保存:
#set java environment
JAVA_HOME=/usr/local/java/jdk1.8.0_151        
JRE_HOME=/usr/local/java/jdk1.8.0_151/jre     
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export JAVA_HOME JRE_HOME CLASS_PATH PATH
# 注意:其中 JAVA_HOME, JRE_HOME 请根据自己的实际安装路径及 JDK 版本配置。
# 让修改生效:
source /etc/profile
# 测试
java -version
# 显示 java 版本信息,则说明 JDK 安装成功
# 创建node文件,安装node
 mkdir node
 wget https://npm.taobao.org/mirrors/node/v15.8.0/node-v15.8.0-linux-x64.tar.gz
 tar -zxvf node-v15.8.0-linux-x64.tar.gz
# 创建软连接
 ln -s /home/work/node/node-v15.8.0-linux-x64/bin/npm /usr/bin/npm
 ln -s /home/work/node/node-v15.8.0-linux-x64/bin/node /usr/bin/node
# 安装allure
 npm install -g allure-commandline --save-dev
# 如以上方法不行,使用rz命令上传
yum install lrzsz -y 
rz -be
tar -zxvf allure-commandline-2.13.0.tgz 
cd package/
chmod 777 package
ln -s /home/work/allure/package/bin/allure /usr/bin/allure
rz命令扩展
  • -+, --append:将文件内容追加到已存在的同名文件

  • -a,–ascii:以文本方式传输

  • -b, --binary:以二进制方式传输,推荐使用

  • –delay-startup N:等待N秒

  • -e, --escape:对所有控制字符转义,建议使用

  • -E, --rename:已存在同名文件则重命名新上传的文件,以点和数字作为后缀

  • -p, --protect:对ZMODEM协议有效,如果目标文件已存在则跳过 -

  • q, --quiet:安静执行,不输出提示信息

  • -v, --verbose:输出传输过程中的提示信息

  • -y, --overwrite:存在同名文件则替换

  • -X, --xmodem:使用XMODEM协议

  • –ymodem:使用YMODEM协议

  • -Z, --zmodem:使用ZMODEM协议

  • –version:显示版本信息

  • –h, --help:显示帮助信息

到这步环境就搭建完成了,接下来说下我过程中遇到的坑,以及如何解决的

这里我遇到了一个坑,启动项目报错

在这里插入图片描述
多放查阅后,发现是我的python版本和openssl版本号不匹配,导致在运行python的时候,找不到ssl模块,下边说一下解决办法:

  • 修改python配置
    打开python的安装目录,找到setup文件
cd python/Python-3.8.10/Modules/
vi Setup

找到这五行代码,把注释取消掉(截图是我修改后的路径)
找到我们上边安装openssl的地址,python3.9以上版本这里的路径是openssl,我这里安装的是3.8版本,路径是SSL,所以找到我们SSL的实际安装目录,修改后保存

在这里插入图片描述

  • 重新安装python
找到我们之前的python安装目录文件夹
rm -rf 删除
回到安装包路径下,重新编译安装
./configure --prefix=/home/work/python/python3
make && make install
问题解决,验证成功

在这里插入图片描述

继续安装python项目虚拟环境,防止服务器多个python项目的情况下,发生依赖冲突
  • 方法1
pip3 install pipenv  # 全局安装,如果只想在当前用户模式下安装,可添加参数:--user
如需更新可使用
pip3 install --user --upgrade pipenv
pip3 install pipenv
找到pipenv的安装路径
find / -name pipenv
##### 创建软连接
ln -s /home/work/python/python3/bin/pipenv /usr/bin/pipenv
##### 项目目录下创建虚拟环境
pipenv shell
pipenv install -r requirements.txt
pipenv run python3 run.py
pipenv graph 虚拟环境依赖
  • 方法2
[root@qa skr_autotest]# python3 -m venv venv
[root@qa skr_autotest]# source venv/bin/activate
(venv) [root@qa skr_autotest]# pip list

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建项目自动化框架需要一定的技术基础,以下是从0到1使用 Docker + Jenkins + Git + Pytest + Allure 搭建项目自动化框架的步骤: 1. 安装 Docker 首先需要在本机安装 Docker,可以到 Docker 官网下载并安装。 2. 创建 Docker 镜像 使用 Dockerfile 创建 Docker 镜像,配置好 Python 3.7 环境以及所需的依赖包,例如 pytest, allure-pytest 等。 3. 创建 Jenkins 服务器 使用 Docker 创建 Jenkins 服务器,可以通过以下命令启动 Jenkins 服务器: ``` docker run -p 8080:8080 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts ``` 其-p参数是指定端口映射,-v参数是挂载目录到本地磁盘。 4. 安装必要的 Jenkins 插件 在 Jenkins 安装必要的插件,如 Git 插件、Allure 插件等。 5. 创建 Jenkins 任务 创建一个 Jenkins 任务,配置源码管理为 Git,指定 Git 仓库地址和分支名称。在构建步骤添加执行命令的步骤,例如: ``` docker run -it --rm -v $WORKSPACE:/test -w /test <docker_image_name> pytest --alluredir ./report/allure-report ``` 其,$WORKSPACE 是 Jenkins 任务的工作目录,<docker_image_name> 是之前创建的 Docker 镜像名称,pytest 命令是执行测试用例的命令。 6. 配置 Allure 报告 在 Jenkins 配置 Allure 报告,安装 Allure 插件,配置 Allure 命令路径,并指定报告存放路径。 7. 执行 Jenkins 任务 执行 Jenkins 任务,Jenkins 将会拉取 Git 代码,构建 Docker 镜像并启动容器运行测试用例,最后生成 Allure 报告。 以上就是使用 Docker + Jenkins + Git + Pytest + Allure 搭建项目自动化框架的步骤,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值