jenkins+allure+pytest的使用方法及指南

jenkins使用指南

重新安装jenkins的步骤:

  1. 暂停Jenkins服务

  2. 删掉.jenkins文件

  3. 下载jenkins2.4.0.1版本:msi文件 [阿里云下载地址](jenkins安装包下载_开源镜像站-阿里云 (aliyun.com))

  4. 点击msi文件,然后依次点击就行,没有什么坑,唯一可能得坑是,如果之前安装过jenkins,可能默认安装文件夹就是那个以前安装Jenkins的文件夹,更改路径还会报错,但是我后面将旧的文件夹删除后就可以换位置了。

  5. 账号密码为:xianzhe xianzhe

  6. 为了构建一个Jenkins的job项目需要的插件: python allure git

  7. 配置环境变量:如果已经存在一个版本相对新的Jenkins,能够正常使用则无需关心上面的内容

manage jenkins->System->全局属性->勾选Environment variables->键填:key,值为:这里去到你本地电脑里的环境变量去找:首先要找到python的路径:有两个一个是/python,一个是/python/script   还有如果在构造计划里的pytest a.py命令执行报错:说找不到pytest命令,则有两个处理方法:其一找到本地电脑的pytest.exe文件,将这个文件的路径加入到jenkins的path里,其二将这个exe文件复制一份放到python\script\下面。然后再将allure的路径也加进去,这里放两个吧一个是allure\ 一个是allure\bin.
  1. 然后是继续往下拉,看到Allure report:

    key值随便填,value填allure\bin的路径
    
  2. 然后到另一个地方配置

    manage jenkins ->Tools->Allure Commandline->别名随便填,安装目录:填写\allure的路径,不要勾选install automatically。
    
    然后上面一点:maven:别名随便填,路径填写 \maven或者直接填你环境里的maven_home的路径,mavenhome怎么填这个就怎么填。这个是方便下载的
    

配置完成,创建job:构建计划

dashboard(首页)->新建item-->freestyle project->点击bulid steps->选择Execute Windows batch command

编写 Execute Windows batch command代码-运行本地Python项目

pip install allure-pytest
cd \Users\ASUS\PycharmProjects\testPlatform/jenkins_demo_lianxi 
pytest Test_jenkins_demo_lianxi.py  --alluredir=C:\ProgramData\Jenkins\.jenkins\workspace\Jenkins_demo\allure-results --clean-alluredir

命令解析:首先pip install allure-pytest   然后cd跳转到Python项目路径:因为Jenkins的本地工作空间是C盘,我的Python项目也是C盘,所以直接CD 就好,但是如果在不同盘符,则需要 先  F:           更换盘符,再 cd:/xxx/xx

然后到达项目地址后,执行pytest xxx.py --alluredir= 存储地址(这里无需使用双引号包裹)
一般而言,运行到这一步,如果不出错,基本上环境是没有问题的。
如果出错:
1. Python命令或pytest命令找不到 :解决-》Jenkins 环境变量path里没有添加这两个的路径
2. 报错:pytest的命令格式报错:ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
解决-》实际上上面的pip install allure-pytest就是解决这个报错而产生的,所以如果加了还是报错,则检测一下单独使用pytest xx.py时,运行信息里关于Python的版本,这个版本信息首先和jenkins的环境变量里的Python路径所指的Python有没有出入,如果有,更换路径;     其次前往本地cmd :Python -version查看Python版本和运行信息版本有没有出入。

生成allure报告文件,查看allure报告-问题:allure报告为空

在build Steps下面有个构建后操作->选择allure report->然后先是引入眼帘的path:这里的路径有两个要点:
1. 这个路径的用途是获取前面生成的执行数据
2. 这个路径是个相对路径,其起点是当前job的工作空间路径:这个在哪看呢,执行项目,执行信息的开头就有这个执行空间的路径信息:Building in workspace C:\ProgramData\Jenkins\.jenkins\workspace\Jenkins_demo
所以当path:allure-results时,实际获取执行数据的路径是:C:\ProgramData\Jenkins\.jenkins\workspace\Jenkins_demo\allure-results

3.填写完这个path后,点击下面的高级:在Report path:里填写allure-results/html(这里前面都要和上面第一个path保持一致,然后在末尾加上/html)

填写完毕后,运行程序,程序运行成功,但是有一行:allure-results does not exist

而且此时点击Jenkins插件生成的allure报告也都是空的。

原因

这是因为数据生成了,没问题,Jenkins的allure插件,配置啥的也没问题。但是问题在于,jenkins的allure插件去A地址找数据,但是A地址没有数据,或者A地址根本就不存在。

那么这个A地址指的是什么呢,从上面的path填写来说:A地址为:C:\ProgramData\Jenkins\.jenkins\workspace\Jenkins_demo\allure-results

那么我们只需要将数据存放的地址设为这个东西就行:即
pytest xxx.py --alluredir=C:\ProgramData\Jenkins\.jenkins\workspace\Jenkins_demo\allure-results
这样就行了,起码我的问题是如此解决的。

杂谈

allure+pytest命令:pytest .\Test_jenkins_demo_lianxi.py --alluredir=./allure-report

生成报告的同时清除上一次的报告记录:–clean-alluredir

生成allure报告文件。

读取报告文件:allure serve ./allure-report