zoukankan      html  css  js  c++  java
  • 接口自动化CIJenkins

    在公司做自动化项目,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  指定虚拟环境运行文件,这里有一点不好,因为需要虚拟环境的名字,还好针对同一个项目生成的虚拟环境名是一样的




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

  • 相关阅读:
    [转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
    [转]ASP.NET Core配置环境变量和启动设置
    [转]ASP.NET Core 指定环境发布(hosting environment)
    [转]COPY OR MOVE FILES AND FOLDERS USING OLE AUTOMATION
    [转]How to Use xp_dirtree to List All Files in a Folder
    [转]How to nest transactions nicely
    [转]Using TRY...CATCH in Transact-SQL
    [转][C#] 对List<T>取交集、连集及差集
    [转]Pass a ViewBag instance to a HiddenFor field in Razor
    Apache Ignite简介以及Ignite和Coherence、Gemfire、Redis等的比较
  • 原文地址:https://www.cnblogs.com/Pycainiao/p/14982855.html
Copyright © 2011-2022 走看看