Allure-python集成指南:与CI/CD工具(Jenkins、GitLab CI)的完美结合

【免费下载链接】allure-python Allure integrations for Python test frameworks 【免费下载链接】allure-python 项目地址: https://gitcode.com/gh_mirrors/al/allure-python

Allure-python是一款强大的测试报告框架,能够与Python主流测试框架(如pytest、behave、robotframework)无缝集成,为测试结果提供清晰直观的可视化展示。本文将详细介绍如何将Allure-python与Jenkins、GitLab CI等CI/CD工具完美结合,实现自动化测试报告的生成与管理,助力团队提升测试效率和质量。

一、Allure-python简介

Allure-python是Allure报告框架在Python生态中的实现,它提供了丰富的API和插件,支持多种Python测试框架。通过Allure-python,测试工程师可以轻松地为测试用例添加标签、链接、描述、附件等信息,生成的测试报告不仅美观易懂,还包含详细的测试步骤、环境信息、错误堆栈等,便于问题定位和分析。

1.1 支持的测试框架

Allure-python支持以下主流Python测试框架:

  • pytest:通过allure-pytest插件实现集成,支持pytest的各种特性,如 fixtures、参数化、标记等。
  • behave:通过allure-behave插件实现集成,适用于行为驱动开发(BDD)的测试场景。
  • robotframework:通过allure-robotframework插件实现集成,支持Robot Framework的测试用例和关键字。

1.2 核心功能

  • 丰富的测试报告:生成包含测试用例详情、步骤、截图、日志等信息的交互式HTML报告。
  • 灵活的标签系统:支持为测试用例添加 severity、epic、feature、story 等标签,便于测试用例的分类和筛选。
  • 强大的集成能力:可与CI/CD工具(Jenkins、GitLab CI)、测试管理工具等无缝集成,实现测试报告的自动化生成和展示。

二、环境准备

在将Allure-python与CI/CD工具集成之前,需要先准备好相关环境。

2.1 安装Allure-python

Allure-python的安装非常简单,可以通过pip命令安装各个测试框架对应的插件。例如,安装pytest集成插件:

pip install allure-pytest

如需安装其他框架的插件,可参考以下命令:

  • behave:pip install allure-behave
  • robotframework:pip install allure-robotframework

2.2 安装Allure命令行工具

Allure报告的生成需要依赖Allure命令行工具,可通过以下方式安装:

Linux系统
sudo apt-add-repository ppa:qameta/allure
sudo apt-get update
sudo apt-get install allure
MacOS系统
brew install allure
Windows系统

Allure官方网站下载最新版本的Allure命令行工具,解压后将其bin目录添加到系统环境变量中。

三、与Jenkins集成

Jenkins是一款流行的CI/CD工具,通过Allure Jenkins插件,可以在Jenkins中直接生成和展示Allure测试报告。

3.1 安装Allure Jenkins插件

  1. 打开Jenkins,进入系统管理 -> 插件管理
  2. 可选插件中搜索Allure,找到Allure Jenkins Plugin并安装。
  3. 安装完成后,重启Jenkins。

3.2 配置Allure命令行工具

  1. 进入系统管理 -> 全局工具配置
  2. 找到Allure Commandline,点击新增Allure Commandline
  3. 输入名称(如Allure),选择从Maven中央仓库安装,并选择合适的版本。
  4. 点击保存

3.3 创建Jenkins任务

  1. 新建一个自由风格的软件项目
  2. 源码管理中,选择Git,并输入仓库地址:https://gitcode.com/gh_mirrors/al/allure-python
  3. 构建触发器中,根据需要设置触发条件(如定时触发、代码提交触发等)。
  4. 构建步骤中,添加执行shell(Linux/MacOS)或执行Windows批处理命令(Windows),输入以下命令:
# 安装依赖
pip install -r requirements/all.txt

# 运行pytest测试,并生成Allure结果
pytest --alluredir=allure-results tests/allure_pytest/
  1. 构建后操作中,添加Allure Report
  2. Allure Report配置中,设置Path to Allure resultsallure-results,并选择之前配置的Allure命令行工具。
  3. 点击保存

3.4 查看测试报告

构建完成后,在Jenkins任务页面中点击Allure Report,即可查看生成的Allure测试报告。报告包含测试用例的执行情况、通过率、失败原因等详细信息,支持按标签、 severity 等维度进行筛选和分析。

四、与GitLab CI集成

GitLab CI是GitLab内置的CI/CD工具,通过配置.gitlab-ci.yml文件,可以实现Allure测试报告的自动化生成和展示。

4.1 配置.gitlab-ci.yml文件

在项目根目录下创建或编辑.gitlab-ci.yml文件,添加以下内容:

stages:
  - test
  - report

test:
  stage: test
  image: python:3.9
  before_script:
    - pip install --upgrade pip
    - pip install -r requirements/all.txt
    - apt-get update && apt-get install -y openjdk-11-jre
    - wget https://github.com/allure-framework/allure2/releases/download/2.24.0/allure-2.24.0.tgz
    - tar -zxvf allure-2.24.0.tgz
    - export PATH=$PATH:$PWD/allure-2.24.0/bin
  script:
    - pytest --alluredir=allure-results tests/allure_pytest/
  artifacts:
    paths:
      - allure-results/
    expire_in: 1 week

report:
  stage: report
  image: python:3.9
  before_script:
    - apt-get update && apt-get install -y openjdk-11-jre
    - wget https://github.com/allure-framework/allure2/releases/download/2.24.0/allure-2.24.0.tgz
    - tar -zxvf allure-2.24.0.tgz
    - export PATH=$PATH:$PWD/allure-2.24.0/bin
  script:
    - allure generate allure-results -o allure-report --clean
  artifacts:
    paths:
      - allure-report/
    expire_in: 1 week

4.2 查看测试报告

  1. 提交.gitlab-ci.yml文件到GitLab仓库。
  2. GitLab CI会自动触发流水线,执行测试并生成Allure报告。
  3. 流水线完成后,在GitLab项目页面的CI/CD -> 流水线中,找到对应的流水线,点击artifacts,即可下载或查看allure-report目录下的测试报告。

五、高级配置

5.1 自定义测试报告

Allure-python支持通过多种方式自定义测试报告,例如:

  • 添加标签:使用@allure.label装饰器为测试用例添加标签,如@allure.label("severity", "critical")
  • 添加描述:使用@allure.description装饰器为测试用例添加详细描述。
  • 添加附件:使用allure.attach方法在测试报告中添加截图、日志等附件。

5.2 集成测试管理工具

Allure-python可以与JIRA、TestRail等测试管理工具集成,通过添加链接的方式,将测试用例与测试管理工具中的需求、缺陷等关联起来。例如:

import allure

@allure.link("https://example.com/issue/123", name="JIRA Issue")
def test_example():
    assert True

六、总结

通过本文的介绍,我们了解了如何将Allure-python与Jenkins、GitLab CI等CI/CD工具集成,实现了自动化测试报告的生成与展示。Allure-python凭借其丰富的功能和灵活的集成能力,为测试团队提供了强大的测试报告解决方案,有助于提高测试效率、降低问题定位成本,是持续集成和持续测试过程中不可或缺的工具。

希望本文能够帮助你快速掌握Allure-python与CI/CD工具的集成方法,如有任何问题或建议,欢迎在项目仓库中提出。

【免费下载链接】allure-python Allure integrations for Python test frameworks 【免费下载链接】allure-python 项目地址: https://gitcode.com/gh_mirrors/al/allure-python

更多推荐