Allure-python集成指南:与CI/CD工具(Jenkins、GitLab CI)的完美结合
Allure-python集成指南:与CI/CD工具(Jenkins、GitLab CI)的完美结合
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插件
- 打开Jenkins,进入系统管理 -> 插件管理。
- 在可选插件中搜索Allure,找到Allure Jenkins Plugin并安装。
- 安装完成后,重启Jenkins。
3.2 配置Allure命令行工具
- 进入系统管理 -> 全局工具配置。
- 找到Allure Commandline,点击新增Allure Commandline。
- 输入名称(如
Allure),选择从Maven中央仓库安装,并选择合适的版本。 - 点击保存。
3.3 创建Jenkins任务
- 新建一个自由风格的软件项目。
- 在源码管理中,选择Git,并输入仓库地址:
https://gitcode.com/gh_mirrors/al/allure-python。 - 在构建触发器中,根据需要设置触发条件(如定时触发、代码提交触发等)。
- 在构建步骤中,添加执行shell(Linux/MacOS)或执行Windows批处理命令(Windows),输入以下命令:
# 安装依赖
pip install -r requirements/all.txt
# 运行pytest测试,并生成Allure结果
pytest --alluredir=allure-results tests/allure_pytest/
- 在构建后操作中,添加Allure Report。
- 在Allure Report配置中,设置Path to Allure results为
allure-results,并选择之前配置的Allure命令行工具。 - 点击保存。
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 查看测试报告
- 提交
.gitlab-ci.yml文件到GitLab仓库。 - GitLab CI会自动触发流水线,执行测试并生成Allure报告。
- 流水线完成后,在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工具的集成方法,如有任何问题或建议,欢迎在项目仓库中提出。
更多推荐



所有评论(0)