接口自动化CI-Jenkins

在公司做自动化项目,CI都是用的现成的,还是想自己搞一个流程出来试试

CI需要的环境:Linux、Jenkins、maven、jdk、python3、allure

其实之前已经总结过一些文章,比如:

Linux中安装jdk:https://www.cnblogs.com/Pycainiao/p/13170053.html

Linux中安装maven:https://www.cnblogs.com/Pycainiao/p/13170101.html

Linux中安装Jenkins:https://www.cnblogs.com/Pycainiao/p/13170233.html

Jenkins中集成allure报告:https://www.cnblogs.com/Pycainiao/p/13173820.html

Jenkins中配置邮件发送allure报告:https://www.cnblogs.com/Pycainiao/p/13246162.html

上面的都已经经过验证了,所以是可以直接用的

下面思考下:

python项目我们用什么管理?我这里选用码云平台管理

python项目中我们使用什么工具管理依赖包?这里我选用的是pipenv

python项目我们需要运行在哪里?因为我的Jenkins是搭建在Linux中的,所以我的项目也是需要在Linux中跑起来

综合以上问题,我们需要解决的是

1、码云平台管理这个应该很简单,去码云上注册个账号,直接将代码放在码云上即可,和github一致的

2、既然项目在Linux中运行的话,那么我们就要在Linux中安装下python3了

  • Linux中自带的python2 不要去动,也不要去卸载,之前试过,卸载会发生不可控的问题
  • 在下面三个文件中,将顶部的! /usr/bin/python改成! /usr/bin/python2.7
    /usr/libexec/urlgrabber-ext-down  
    /usr/bin/yum-config-manager
    /usr/bin/yum
  • 官网下载python3 的版本,这里注意下,看你的项目中使用的python版本,对应下载那个版本,因为在pipenv生成的依赖文件会记录你的python版本
  • 下载完成之后直接上传到Linux中,然后再下载对应python版本的依赖包,比如,python3.8,就需要执行
    yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
  • 在Linux中解压python的压缩包,并进入到解压后的目录中,执行
    make clean
    ./configure prefix=usr/local/python3
    make -j4 && make install
    sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
    rm /usr/bin/python
    sudo ln -s /usr/local/python3 /usr/bin/python

     

3、我们使用的是pipenv,那么我们就还需要在Linux中下载pipenv这个模块

  

pip3 install pipenv

 

上面是基本配置,已经完成

下面就是我们到了配置Jenkins中的地步了

这里其实就是我在文章最开始的那几个文章中总结的,可以直接照着搞,下面总结下遇到的坑

1、在配置源码管理的时候填写码云地址报错:

 

 

 解决方案:

  • 下载Gitee Plugin 插件并重启Jenkins
  • 进入Jenkins中的系统设置中配置下方图片参数

 

 

 

其中:链接名可以随便填写,Gitee 域名则需要填写https://gitee.com,证书令牌添加选择点击Jenkins,然后按照下图配置

 

 

 

  • 然后回到配置源码管理页面中进行配置即可,然后添加自己的码云账号

 

 

2、在shell脚本编写的时候最初是这样编写的:

pwd
chmod 777 Pipfile
chmod 777 Pipfile.lock
chmod 777 run.py
pipenv install   # 安装对应的依赖包
python3 run.py # 运行项目启动文件

这里就会报错:

 

 

 

经过排查发现是没有进入到虚拟环境中,因为所有的依赖包都是安装在虚拟环境中,所以,我更改了下shell脚本

chmod 777 Pipfile
chmod 777 Pipfile.lock
chmod 777 run.py
pipenv run --three COMMAND
pipenv install --dev
pipenv shell
python3 run.py

然后构建后发现出现了新的错误:termios.error: (25, 'Inappropriate ioctl for device')

排查发现在Jenkins中并不能直接使用pipenv install命令

最后的解决方案:

pwd
chmod 777 Pipfile
chmod 777 Pipfile.lock
chmod 777 run.py
cd ./log
chmod -R 777 ../log/  # 对整个log文件进行授权,因为要对日志进行写操作
cd ..
pipenv --rm  # 删除当前的虚拟环境
pipenv shell --fancy  # 为现在的这个项目创建一个虚拟环境
pipenv install --dev  # 
pipenv run python run.py request_project-FBmapVn8  指定虚拟环境运行文件,这里有一点不好,因为需要虚拟环境的名字,还好针对同一个项目生成的虚拟环境名是一样的




最后:只有自己真正的去做一件事,才会发现有多少坑在等着你,希望看见这篇文章的你好运~

posted @ 2021-07-07 18:06  大渝  阅读(280)  评论(0编辑  收藏  举报