Jenkins 集成 allure 遇到的问题及解决办法

本贴最后更新于 1299 天前,其中的信息可能已经时移世异

安装和配置 allure 插件

  1. 安装 allure 的插件

    • 操作路径:

      1. 登录 Jenkins
      2. 点击系统管理
      3. 点击插件管理
      4. 点击「Available」
      5. 搜索“Allure Jenkins Plugin”
      6. 点击安装就好
  2. 安装 allure

    • 路径:系统配置 -》 全局工具配置 -》 allure commandline
    • 方式一:下载解压 allure,添加路径到安装目录,如图
      下载地址:https://github.com/allure-framework/allure2/releases
      image.png
    • 方式二:勾选自动安装,选择 from maven central,版本选择最新版本
      image.png
  3. 安装 JDK

    • 路径:系统配置 -》 全局工具配置 -》 JDK
    • 如果已安装就不需要安装了,尽量选择“JDK 1.8.0”
      image.png
  4. 在 build 中传入 allure 的路径,或者写死在代码也行

    1. 如果是传入的话,可以这样写:${WORKSPACE}/target/allure_results
    2. 或者在 build 中先测试获得项目的工作目录,然后写死在代码中

    image.png

  5. 配置 allure report
    注意:allure 插件有问题,路径只能在项目工作目录下,一切都是基于工作目录为 “根目录” 的!

    image.png

  6. 点击保存就可以构建了

遇到的问题和解决方法

  1. Python 版本没有找到
    Linux 只有低版本的 2.7,我按照网上教程安装了高版本 3.9.5,但是没有把 3.9.5 的版本加入到系统路径。
    在 Jenkins 构建时提示 python3.9.5 命令找不到。

    解决方式:

    1. 首先找到 3.9.5 版本的安装路径,例如:/opt/python3.9.5/bin/python3.9,注意要进到 bin 下面的目录创建软连接,添加到系统路径中,命令:ln -s /opt/python3.9.5/bin/python3.9 /usr/bin/python3.9
    2. 因为 Jenkins 并不是使用 root 账户启动的,所以最好把/opt/python3.9.5/bin/python3.9 /usr/bin/python3.9 这两个文件的权限也改成所有都可以用,命令:chmod 777 /opt/python3.9.5/bin/python3.9
  2. 使用 pipenv run 命令,提示虚拟环境目录权限不足或者不存在, “/root/.local/share/virtualenvs/xxx”

    1. 首先解决不存在问题,执行命令:mkdir -p /root/.local/share/virtualenvs
    2. 再解决权限不足问题,一样给所有权限,命令:chmod 777 /root/.local/share/virtualenvs
  3. 执行“pipenv run python3.9.5 main.py”,提示 import xx 没导入成功
    pipenv run 进入虚拟环境失败了,这是因为我之前已经创建过虚拟环境了,但是权限不足,后面使用 chmod 777 还是不行

    解决办法:直接把虚拟环境删掉,pipenv run 检测到没有虚拟环境就会自动创建的,命令:rm -rf /root/.local/share/virtualenvs/xxx

  4. allure-results does not exists
    不知道是 bug 还是 feature,allure 插件只能识别工作空间下的文件夹,所以不能自由指定存放的文件夹。Jenkins 的配置就参考提示的就好了
    image.png
    启动 pytest 时,传入工作空间下的“target/allure-results/”就好了!

    注意:

    1. 如果是传入了工作空间的路径 ${WORKSPACE},在使用 os.path.join 拼接路径时,切记“target/allure-results/”的“target”前面不需要加上“/”,否则会提示找不到文件夹的
    2. allure 是不会帮你自动清空 target/allure-results/,会导致数据混乱,最好清一下,在 build 加上 “rm -rf ${WORKSPACE}/target/allure-results/*”即可
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    548 引用 • 674 回帖
  • 接口测试
    3 引用
  • allure
    1 引用
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    54 引用 • 37 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 680 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    169 引用 • 1525 回帖
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 161 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 166 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用 • 1 关注
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 165 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    210 引用 • 2036 回帖 • 1 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 6 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    943 引用 • 1460 回帖 • 2 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 633 关注
  • OneNote
    1 引用 • 3 回帖
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 26 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 732 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 25 关注
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    223 引用 • 474 回帖
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖
  • 自由行
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 716 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    92 引用 • 752 回帖 • 1 关注
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖 • 1 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 153 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    6 引用 • 14 回帖
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖