首页 > 其他分享 >Jenkins+Pytest+Allure

Jenkins+Pytest+Allure

时间:2022-12-06 21:15:37浏览次数:66  
标签:allure Allure -- results Pytest alluredir Jenkins

环境准备

Pytest 负责 Python 代码测试
Allure 负责测试报告 HTML 界面展示
Jenkins 负责自动化

测试

安装完后,可以先来使用一下
找一个使用 Pytest 的项目,直接去 github 拉取 requests 库,它的 tests 目录写满了通过 pytest 构建的测试用例。

通过 pytest 运行 requests/tests 中的代码并通过 --alluredir 指定生成数据的文件夹,这些数据就是 allure 可读取的数据,通常为一堆 JSON 文件。
获得 JSON 文件数据后,可以通过 allure generate 命令来生成 HTML 测试报告界面。

pytest requests/tests --alluredir=./allure-results
allure generate allure-results -o allure-report --clean

接着来安装 Allure 在 Jenkins 中的插件。
还需要进行配置,进入「系统设置」->「Global Tool Configuration」。

Jenkins 插件安装完后,在 Jenkins 中创建 Freestyle project,Description 描述可以随便填写,在 Build 构建处,选择 Execute Shell

#!/bin/bash
cd /Users/ayuliao/Desktop/workspace/CICD
source venv/bin/activate
pytest requests/tests --alluredir "${WORKSPACE}/target/allure-results"
exit 0

简单而言, --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,这是固定的,不要看其注释说你可以随意配置。

上述配置之所以是固定的,需要看 Jenkins Job 中的 console output,jenkins 调用 allure generate 命令是固定的。
如果将 Results 与 Report Path 配置成其他值,会出现各种问题

标签:allure,Allure,--,results,Pytest,alluredir,Jenkins
From: https://www.cnblogs.com/wl30564/p/16960528.html

相关文章

  • 【Linux】Jenkins之Pipeline的使用(五)
    概念是一套运行在Jenkins上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。优势代码:Pipeline......
  • Jenkins
    jenkins安装包下载Jenkins自动触发配置BuildTriggers-->PollSCM-->Schedule:H/2****每2分支检查一次代码是否有变化H8,13***每天8点13点build一次源......
  • Kubernetes集群的Jenkins CI/CD版本上线流程部署
       最近在实习中接触了jenkins这个东西,所以花点时间了解了下。它可以在代码上传仓库(如github,gitee,gitlab)后,在jenkins(一个网站界面)中通过获取代码仓库中最新代码,进......
  • pytest + yaml 框架 -5.调用内置方法和自定义函数
    前言在yaml用例文件中,有些数据不是固定的,比如注册账号,我需要每次生成不一样的,那么我们可以调用自己定义的函数pip安装插件pipinstallpytest-yaml-yoyoyaml中调用内置方......
  • jenkins 发送testng测试结果
    jenkins 发送testng测试结果:1、构建后操作添加publishtestngresults,没有的可以先去安装插件  2、邮箱内容配置如下<!DOCTYPEhtml><html><head>......
  • pytest + yaml 框架 -7.用例分层机制
    前言当我们测试流程类的接口,需反复去调用同一个接口,就会想到复用API,在代码里面可以写成函数去调用。那么在yaml文件中,我们可以把单个API写到一个yaml文件,测试用例去调......
  • Jenkins实践指南-01-pipeline概述
    1.pipeline概述1.1什么是pipeline从某种抽象层次上讲,部署流水线(Deploymentpipeline)是指从软件版本控制库到用户手中这一过程的自动化表现形式。——《持续交付-发布可......
  • 基于jenkins+kubernetes的cicd流程实践三:清除镜像定时任务
    6.定时清除历史镜像:万里长征的最后一步收尾工作,换一种更“原生”的玩法,找一找新感觉,手搓走起.....参考:https://github.com/kubernetes-sigs/cri-tools/blob/master/docs/......
  • 基于jenkins+kubernetes的cicd流程实践一:环境搭建及方案原理
    1.基础环境:Centos7.9,kubernetes:v1.21.5node-1@112(master):docker,containerd,harbornginx(80),git,etcdnode-2@109(master/worker):docker,containerd,ingress_nginx(80),etcd,glusterfs......
  • 基于jenkins+kubernetes的cicd流程实践二:微服务迁移脚本
    5.web层服务迁移:​ (1)项目启动脚本:start.sh#!/bin/bashsrv_name="goods_web_main"chmod+x./${srv_name}ifpgrep-x${srv_name};thenecho"${srv_name}isr......