接口自动化CI持续集成之jenkins(docker安装jenkins+python+pytest+allure)
Posted 七月的小尾巴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口自动化CI持续集成之jenkins(docker安装jenkins+python+pytest+allure)相关的知识,希望对你有一定的参考价值。
概述
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。
每次集成都通过自动化构建(包括编译、发布、自动化测试)来验证,从而尽快的发现集成错误。许多团队发现这个过程可以大大减少集成问题,让团队能够更快的开发内聚的软件。
优点
- 维护一个统一的代码库
- 每天都必须要向主干提交代码
- 每次提交都应立刻在集成环境进行构建
- 自动化构建;自动化测试;自动化部署
- 快速、持续构建
- 构建环境务必与生产环境保持一致
- 访问权限对团队成员保持公开透明
持续集成技术CI
CI(Continuous intergration),中文意思就是持续集成,是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确的集成在一起。
CD
CD(Contunuous Delivery,中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生成环境)中。
比如,我们完成单元测试后,可以把代码部署到连接数据的 Staging 环境中更多的测试。
如果代码没有问题,可以继续手动部署到生成环境。下图反应的是CI、CD的大概功能模式。
jenkins简介
jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源与Hudson,主要用于持续、自动的构建/测试软件项目。
jenkins 用于 java语言编写,可在Tomcat等流行的servlet容易中运行,也可以独立运行。通常与版本管理工具(SCM)、构建工具结合使用。
常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
jenkins 安装
官网地址:
https://jenkins.io/
jenkins下载:
http://updates.jenkins-ci.org/
jenkins的全部镜像:
http://mirrors.jenkins-ci.org/status.html
使用docker搭建jenkins
下载jenkins镜像
docker pull jenkins/jenkins:2.289.3-centos
在宿主机的目录下创建一个目录,用于挂载目录
mkdir -p /var/jenkins_node
给一个权限,可读可写可执行 wrx
chmod 777 /var/jenkins_node
创建与启动守护式容器 — 注意容器中的端口使用8080,后面的9999端口是我allure报告对应的端口,可以自己修改对应的端口号
docker run -d -uroot -p 8989:8080 -p 9999:9999 --name jenkins1 -v /usr/jenkins_node:/var/jenkins_home jenkins/jenkins:2.289.3-centos
注意如果端口号被占用的情况下,我们可以修改容器的端口号
#容器的配置文件修改对应的端口号---修改完请重启容器
/var/lib/docker/containers/容器的id/hostconfig.json
进入这个路径中的文件,然后手动修改端口号,重新容器即可
查看容器是否启动成功
docker ps
进入容器
docker exec -it -uroot jenkins1 bash
前置准备
# 1.获取最新的软件包
yum update
# 2.提前安装,以便接下来的配置操作
yum -y install gcc automake autoconf libtool make
yum -y install make*
yum -y install zlib*
yum -y install sudo
jenkins容器内操作
#1.进入jenkins_home目录
cd /var/jenkins_home/
#2.创建python存放路径
mkdir python3
cd python3/
#3.下载python3 使用wget时发现没有该命令
wget http://npm.taobao.org/mirrors/python/3.7.9/Python-3.7.9.tgz
#4.解压文件目录
tar -zxvf Python-3.7.9.tgz
#5.查看解压后的文件
ls
6.更改解压后文件包名
mv Python-3.7.9 py3.7
解决没有wget命令,使用 yum -y install wget,下载wget命令依赖
我的linux环境是CentOS8的,python环境搭建成功之后,安装jsonpath依赖库的时候,会抛异常,最终安装了3.7版本一下的才解决的。如果没有涉及到这个jsonpath库的没关系,用到了建议安装3.7.0版本一下的哦~
在py3.7目录下
1.第一步
./configure --prefix=/var/jenkins_home/python3 --with-ssl
2.第二步
make install
添加,软连接
添加python3软链接
ln -s /var/jenkins_home/python3/bin/python3.7 /usr/bin/python3
添加pip3软链接
ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3
这个时候使用python3命令已经可以进入python编辑栏啦!
下载代码依赖的第三方库
我在宿主机上面 /home 文件下,创建一个data目录,这个可以根据个人习惯
cd /home
mkdir data
创建成功之后,首先:生成 requirement 文件,在项目工程下执行
pip3 freeze > requirements.txt
将requirement.txt 文件上传至服务器,如何上传,可以看我的这篇博客
https://blog.csdn.net/weixin_43865008/article/details/118616683
将上传的文件复制到容器的/home/data下方,我们进入容器的这个文件下就能看到
docker cp requirements.txt jenkins1:/home/data
安装依赖
pip3 install -r requirements.txt
pip3时提示:pip is configured with locations that require TLS/SSL
解决方法: https://www.cnblogs.com/xianyudoufu/p/15111495.html.
前置依赖包下载成功, 应该不会踩坑(每个人存放文件的习惯不同,自己如果更改了文件路径,一定要注意,否则到时候会出现一堆问题)
安装allure
下载地址: https://github.com/allure-framework/allure2/releases.
选个最新版本的去下就行,或者自己挑一个版本
先将下载好的allure上传到宿主机,然后在复制到容器中
docker cp allure-2.13.8.zip jenkins1:/home/data
解压allure报告
unzip allure-2.13.8.zip
赋予文件夹所有内容最高权限
mv allure-2.13.8 allure
chmod -R 777 allure
配置 allure 和 py 环境变量
cat >> /root/.bashrc << "EOF"
export PATH=/home/data/allure/bin:$PATH
export PATH=/var/jenkins_home/python3/bin:$PATH
EOF
更新环境变量配置文件
source /root/.bashrc
验证python环境
allure --version
python3 --version
配置JDK
查看当前的系统已配置的环境变量
export
配置 JDK 环境变量
cat >> /root/.bashrc<< "EOF"
export PATH=$JAVA_HOME/bin:$PATH
EOF
到这里我们所有环境就都安装完成啦~
启动容器之后,我们通过 http://宿主机ip:8989
访问jenkins,可以看到如下页面。注意阿里云安全组中,需要配置8989端口。
我们输入 vi /var/jenkins_home/secrets/initialAdminPassword
命令jenkins管理员复制密码。
选中推荐安装,然后等待安装即可。
安装成功之后,我们进入到插件配置页面,安装allure插件
搜索allure插件,直接安装,安装之后重启jenkins
我们可以直接通过宿主机的IP+9999端口访问allure报告啦~
以上是关于接口自动化CI持续集成之jenkins(docker安装jenkins+python+pytest+allure)的主要内容,如果未能解决你的问题,请参考以下文章
接口测试实战接口自动化之持续集成(postman+newman+jenkins)