Allure+Pytest测试报告美化与定制

Allure是一个轻量级、灵活、支持多语言平台的report框架,不仅能生成好看易读的测试报告,还能针对的特别需求生成high level的测试统计报告,本文主要介绍Python语言和Allure结合Pytest测试框架生成测试报告的一些基本语法和用法。
Allure官方文档请参考:https://docs.qameta.io/allure/

本文以Windows环境作示例。

安装

  1. 首先,电脑里当然要已经配置好了Python,IDE(比如我的是Pycharm),pytest插件,环境变量等满足自动化测试的一些工具。
  2. 然后,去到GitHub下载zip文件到本地:Allure-release
    注意一定要在这个页面上滑动到简介的底部选择适合自己电脑环境的包来下载哦~
    在这里插入图片描述
  3. 接下来把该文件解压缩,并把解压缩后的文件夹放到一个你绝对不会删掉的位置,同时去到该文件夹中的bin目录下,把bin目录的路径放到系统环境变量PATH中,然后运行bin目录下的allure.bat文件。
  4. 最后,Win+R打开命令行,执行以下命令安装allure-pytest插件。
    或者,直接在pycharm中安装allure-pytest也可。
pip install allure-pytest

如此,allure的环境就准备好了。

基本使用语法

  1. 在执行测试用例的时候监听并收集测试结果,直接在执行命令后加一个“–alluredir=存放测试结果的路径”的参数即可:
pytest --alluredir = /tmp/my_allure_results
#/tmp/my_allure_results即你要存放测试结果的路径
  1. 当测试用例执行完毕,测试结果已经收集完毕,这时就可以启动服务来生存你的测试报告了,命令执行成功后会在你的默认浏览器中打开测试报告
allure serve /tmp/my_allure_results
#/tmp/my_allure_results即上一步存放的测试结果的路径

初步尝试

OK,环境和语法都掌握了,现在来做个简单的尝试,代码就参考allure官方文档里给的示例。

初体验

import pytest

def test_success():
    """this test succeeds"""
    assert True


def test_failure():
    """this test fails"""
    assert False


def test_skip():
    """this test is skipped"""
    pytest.skip('for a reason!')


def test_broken():
    raise Exception('oops')

新建一个python文件,然后在命令行中到该文件所在的路径下,执行测试文件,比如我的python文件命名为Test_BlogAllure.py

pytest Test_BlogAllure
<think>好的,我现在需要帮助用户了解如何结合使用Python、requests、pytestallure、YAML和Jenkins来完成接口测试及自动化构建。首先,我得理清用户的需求,他们可能是在搭建一个接口自动化测试框架,并希望集成到Jenkins实现持续集成。用户提到的技术栈包括Python作为编程语言,requests处理HTTP请求,pytest作为测试框架,allure生成报告,YAML管理测试数据,Jenkins做自动化构建。 接下来,我应该分步骤解释每个组件的作用和如何整合。首先需要确认用户是否熟悉这些工具的基础使用,但根据问题描述,用户可能已经有一定的了解,但需要具体的整合方法。可能需要从项目结构开始,说明各个文件的作用,比如用YAML来管理测试用例,pytest来执行测试allure生成报告,然后Jenkins配置定时任务或触发构建。 然后,要确保每个步骤之间的衔接,比如如何用pytest读取YAML文件中的测试数据,如何将测试结果通过allure生成报告,最后Jenkins如何调用这些脚本并展示报告。可能需要给出代码示例,比如YAML的测试用例结构,pytest测试函数,以及Jenkinsfile的配置。 同时,要注意引用用户提供的资料,比如引用中的requirements.txt内容,pytest的配置参数,以及Jenkins的插件安装。需要检查用户提供的引用,确保推荐的步骤和配置引用中的信息一致,比如引用[2]提到了使用requirements.txt安装依赖,引用[5]提到了pytest.ini的配置,这些都需要整合到回答中。 另外,用户可能关心实际操作的细节,比如如何编写测试用例,如何处理依赖,如何调试测试脚本,以及Jenkins中如何设置构建步骤和查看报告。需要提供具体的命令行指令,例如安装依赖、运行测试、生成报告的命令,以及Jenkins中的配置步骤。 还需要考虑潜在的问题,比如环境变量配置,路径问题,依赖版本冲突等,可能需要给出建议或注意事项,比如使用虚拟环境,确保各库的版本兼容性,以及Jenkins节点的环境配置。 最后,生成相关问题,引导用户进一步学习,比如如何扩展框架支持数据库操作,如何优化测试用例管理,如何处理认证等。这些问题应基于用户当前的问题和技术栈进行设计,帮助用户深入理解相关主题。</think>### 分步解决方案:Python+Requests+Pytest+Allure+YAML+Jenkins接口自动化测试流程 #### 一、环境准备依赖安装 1. **Python环境**:安装Python3.7+并配置PATH环境变量 2. **依赖管理**:创建`requirements.txt`文件,内容参考引用[2][^2][^5]: ```text pytest requests pyyaml allure-pytest pytest-html pytest-xdist ``` 执行安装命令: ```bash pip install -r requirements.txt ``` 3. **Allure环境**:下载Allure CLI并配置环境变量[^4] #### 二、项目结构设计 ``` project/ ├── testcases/ # 测试用例目录 │ └── test_api.py # pytest测试脚本 ├── data/ # 测试数据管理 │ └── test_data.yaml # YAML格式测试数据 ├── config/ │ └── env_config.yaml # 环境配置 ├── conftest.py # 全局fixture ├── pytest.ini # pytest配置文件[^5] └── Jenkinsfile # Jenkins流水线脚本 ``` #### 三、关键组件实现 1. **YAML管理测试数据** ```yaml # data/test_data.yaml login: url: "/api/login" method: "POST" params: username: "admin" password: "123456" ``` 2. **Requests封装用例编写** ```python # testcases/test_api.py import requests import pytest import yaml def load_test_data(file_path): with open(file_path) as f: return yaml.safe_load(f) @pytest.mark.parametrize("case", load_test_data("data/test_data.yaml")) def test_login(case): url = case["login"]["url"] resp = requests.post(url, data=case["login"]["params"]) assert resp.status_code == 200 assert "token" in resp.json() ``` 3. **Pytest配置优化** ```ini # pytest.ini [^5] [pytest] addopts = -vs --alluredir=reports/allure-results --clean-alluredir testpaths = testcases/ python_files = test_*.py ``` 4. **Allure报告生成** 执行测试后生成报告: ```bash pytest # 执行测试 allure serve reports/allure-results # 本地查看报告 allure generate reports/allure-results -o reports/allure-report --clean # 生成静态报告 ``` #### 四、Jenkins集成 1. **安装插件**:Allure Jenkins Plugin、Git Plugin、Pipeline 2. **流水线配置**(Jenkinsfile示例): ```groovy pipeline { agent any stages { stage('Checkout') { steps { git url: 'https://your-git-repo.git' } } stage('Install Dependencies') { steps { sh 'pip install -r requirements.txt' } } stage('Run Tests') { steps { sh 'pytest' } } stage('Generate Report') { steps { allure includeProperties: false, jdk: '', results: [[path: 'reports/allure-results']] } } } } ``` 3. **定时执行**:在Jenkins任务中配置触发策略(如每天凌晨执行) #### 五、高级扩展建议 1. **动态环境切换**:通过`conftest.py`读取`env_config.yaml`实现多环境配置 2. **异常重试机制**:使用`pytest-rerunfailures`插件[^2] 3. **数据库校验**:集成pymysql进行数据验证[^3][^4] 4. **性能监控**:在测试用例中添加响应时间断言
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值