Centos7 搭建Python+Allure+Jenkins

一、环境准备     

1、Pytest      

1.1 安装python环境  

  首先确保centos7服务器已安装python3+环境,本机为python3.6

  python环境确认

  为了区分系统自带的python2.7环境,可python官网下载压缩包,解压到服务器指定目录,配置环境变量

  如解压到/usr/local/目录,配置环境变量,编辑/etc/profile,追加如下内容
 

export PATH=$PATH:/usr/local/python3/bin/

实时生效

source /etc/profile 

1.1.2 安装pytest、 allure-python

 pip3 install pytest
pip3 install allure-pytest

2 Allure基础环境安装

下载allure压缩包点我选择指定版本,上传至服务器目录,如/usr/local/,并进行解压
在此地址可以查看所有版本

https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/

tar -xvf allure-commandline-2.13.5.tgz   

也可以将allure加入环境变量/etc/profile,vi命令编辑或者echo “” >>进行追加到末尾

export ALLURE=/usr/local/allure-2.13.5/bin
export PATH=$PATH:$ALLURE

 实时生效

source /etc/profile 

这样就可以全局使用allure

3 jenkins 的安装

jenkins 的安装可以参照 https://www.cnblogs.com/ningy1009/p/12652353.html

4 jenkins 创建项目并执行输出测试报告

allure插件安装,系统管理-插件管理,点击可选插件,输入allure搜索然后安装。慢慢等等安装完毕
系统管理-全局工具配置,多了一个Allure Commandline。配置如下:

1、allure 插件安装

2、工具配置

下面解释一下pytest 运行项目以及allure 的基本原理

通过 pytest 运行 requests/tests 中的代码并通过 --alluredir 指定生成数据的文件夹,这些数据就是 allure 可读取的数据,通常为一堆 JSON 文件。


pytest requests/tests --alluredir=./allure-results
 

获得 JSON 文件数据后,可以通过 allure generate 命令来生成 HTML 测试报告界面。

allure generate allure-results -o allure-report --clean

通过上述命令,allure 会将测试报告生成到 allure-report 目录中,至此整个流程走通了一半。

这里才是重点

5 jenkins 项目设置

Jenkins 插件安装完后,在 Jenkins 中创建 Freestyle project,Description 描述可以随便填写,在 Build 构建处,选择 Execute Shell,如果你是 windows,则选择 Execute Windows batch command。

因为我在 Linux下执行,所以选择 Execute Shell,输入如下 Shell 代码

cd 进入相应的目录,然后通过 source 激活相应的 Python 虚拟环境,我只在该虚拟环境中安装了 pytest 库,随后正常使用 pytest 则可,此时依旧使用 pytest 来跑 requests/tests 中的测试代码,但 --alluredir 设置的路径非常有讲究

简单而言, --alluredir 必须为 "${WORKSPACE}/target/allure-results",因为 Jenkins 通过插件调用 allure genera 命令时,传入的路径固定为 ${WORKSPACE}/target/allure-results

${WORKSPACE} 是 Jenkins 内置的变量,表示「分配给构建作为工作空间的目录的绝对路径。」。

如果 --alluredir 为其他值,通过 Jenkins 构建项目时,会抛出 allure-results does not exists,你可以在「https://github.com/jenkinsci/allure-plugin/issues/201」看见问题的具体细节。

此外,还需要配置 Post-build Actions 构建后的动作,这里也非常关键。

选择「Allure Report」,将 Results 与 Report Path 分别配置成 target/allure-results 与 target/allure-report,这是固定的,不要看其注释说你可以随意配置。

ps : 标红的是重点中的重点,不要随便配置路径,这里我是吃过大亏, 入了很多大坑的,引以为戒

上述配置之所以是固定的,需要看 Jenkins Job 中的 console output,jenkins 调用 allure generate 命令是固定的。

至此大功告成。


发现运行的结果中总是有 Build step 'Execute shell' marked build as failure   这个错误

 解决办法: 在shell 的第一行加上 #!/bin/bash

最后加上 exit 0

再次构建便正常了

原文地址:https://www.cnblogs.com/ningy1009/p/12751716.html