linux+jenkins+pytest+allure集成搭建

一、安装JDK1.8(此步可以参考度娘,比较容易)

一、安装python(此步可以参考度娘,比较容易)

  坑1:安装过程中由于服务器存在多个版本python,pip安装的包没有安装到对应版本的python目录,导致python脚本无法执行

  解决方案:方法1、卸载其他python版本,再重装,不过卸载不干净也有可能有问题

       方法 2、修改pip安装目录

        

 

        编辑 /usr/python/lib/python3.8/site.py文件(user_site就是对应的/usr/python/lib/python3.8/site-packages,user_base我还不太懂,我是设置成/usr/python/lib/python3.8)

        

       方法3、命令中指定安装目标:pip install numpy --target=/usr/local/lib/python2.7/site-packages

    坑2、linux多用户,明明已经把python环境变量配在了/etc/profile,但是echo $PATH时就是没有python的环境变量,导致无法执行Python命令

    解决方案:1.1、修改用户名下的.bashrc(vim /home/用户名/.bashrc),把变量直接导入,如下:

            export PATH=$PATH:/usr/python/bin
            export PATH=$PATH:/data/software/allure-2.17.2/bin

         1.2、修改完,使用source /home/wos/.bashrc使用修改生效

 

二、安装jenkins(此步可以参考度娘,比较容易)

三、安装allure

  3.1、下载allure:https://github.com/allure-framework/allure2/releases

  3.2、解压

  3.3、配置环境变量    

    将解压后allure下bin目录的路径/XXX/bin配置进环境变量

    vi /etc/profile

    # 在PATH后追加以下内容,保存

    :$PATH:/XXX/bin 

    # 使环境变量生效

    source /etc/profile

  3.4、验证

    在命令行输入allure --version,能出现版本说明allure命令行已经安装成功了


四、Jenkins插件Allure

  4.1、安装Allure Jenkins Plugin

  4.2、配置Allure Jenkins Plugin

    4.2.1、进入「系统设置」->「Global Tool Configuration」

    4.2.2、配置

    

    

 

  4.3、安装HTML Publisher Plugin

  4.4、重启jenkins

五、安装pytest的allure插件

  5.1、pip install allure-pytest -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

  5.2、代码需要的插件 pip install -r /XXX/requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

  注:-i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com为中国镜像,如果公司网络无法下载,可以加上,或者加其他镜像。

六、jenkins建job

  6.1、建一个自由风格的job

    

   6.2、配置代码地址,摘取代码

    

  6.3、配置执行代码

   

    shell代码如下:      

export PATH=$PATH:/usr/python/bin
export PATH=$PATH:/data/software/allure-2.17.2/bin

folder_test=$1
file_test=$2
class_test=$3
case_test=$4
thread_test=$5

cd /data/jiangyf/pytest_allure
python3 main.py $folder_test $file_test $class_test  $case_test $thread_test

    注:我是把执行命令放到一个shell中,然后再执行这个shell,也可以把命令放在上图的的框内。     

      这里有个问题,在终端执行python3 main.py没有问题的,但是在jenkins执行会报python3: command not found,由于没有找到解决方法,所以直接变量写到脚本中。

    main.py代码如下:    

import os
import pytest
import sys

if __name__ == '__main__':
    folder_test = sys.argv[1]
    file_test = sys.argv[2]
    class_test = sys.argv[3]
    case_test = sys.argv[4]
    thread_test = sys.argv[5]
    if case_test == 'None':
        pytest.main(['--clean-alluredir', '-s', '-q', '--alluredir', './temp',
                     folder_test+'/'+file_test, '-n=' + thread_test])
        os.system('allure generate ./temp -o ./report --clean')
    else:
        pytest.main(['--clean-alluredir', '-s', '-q', '--alluredir', './temp',
                     folder_test + '/' + file_test + '::' + class_test + '::' + case_test, '-n=' + thread_test])
        os.system('allure generate ./temp -o ./report --clean')

  

  6.4、配置allure

     

    

     注:jenkins上配置的目录,默认是要工作目标下(即代码所有目录)

    

    

原文地址:https://www.cnblogs.com/ai594ai/p/15716540.html