Allure05-用例描述详解

Allure05-用例描述详解

高清视频B站链接


作用:提高测试报告的可读性,减少团队沟通成本,提升工作效率

1.Allure添加用例步骤描述详解
例子:
用例步骤:
1.登陆 2.浏览商品 3.添加购物车 4.生成订单 5 完成支付

1)将用例步骤做关键字封装
2)开始用例设计,登陆单独拿出来,当成前置操作,后面的步骤合起来成为一个用例

测试步骤也可以在封装的函数上加上装饰器实现:@allure.step()

两种方式对比:
使用 with allure.step(“step:步骤”) 这种方式代码可读性更好一点,
但不会带上函数里面的传参和对应的值。
使用 @allure.step(“step:步骤”) 这种方式会带上函数的传参和对应的值。
这两种方式结合起来使用,才能更好的展示测试报告!

测试技术交流请联系我
在这里插入图片描述
备注优快云扶摇

【学习软件测试/Python自动化测试技术/领取Python自动化测试学习路线图/简历优化】
视频链接:
课程服务介绍

自动化全栈学习路线图讲解

软件测试面试合集

Python编程刷题合集

Pytest入门到实战

Python接口自动化合集

PythonWeb自动化合集

性能测试合集

Jmeter接口自动化测试实战全集

2023GPT探索发现合集

2024Pytest合集

加微信(备注优快云扶摇)即可免费领取下面的自动化测试资料和一份软件测试面试宝典
在这里插入图片描述
在这里插入图片描述

<think>我们已知用户想要了解如何使用pytest.main启动测试框架并自动生成Allure数据,以及如何使用os.system调用allure generate生成报告。同时,用户提到了可能遇到的问题,如allure指令调用失败。 根据引用[1]、[2]、[3]: - 引用[1]指出,需要在测试执行后使用os.system调用allure指令来生成报告,但可能失败。 - 引用[2]提供了基本的命令:使用pytest运行测试并指定alluredir存放结果,然后使用allure generate生成报告。 - 引用[3]给出了一个具体的pytest命令示。 因此,我们可以构建一个完整的流程: 1. 使用pytest.main运行测试,并指定--alluredir参数来生成Allure的原始数据(json/txt文件)。 2. 使用os.system调用allure generate命令将原始数据转换为HTML报告。 步骤详解: ### 步骤1:运行测试并生成Allure原始数据 在测试脚本中,我们可以使用`pytest.main()`来运行测试,并传递参数。如: ```python import pytest if __name__ == '__main__': # 指定测试用目录或文件,以及生成allure报告的原始数据目录 pytest.main(['TestCase/test_search.py', '--alluredir', './allure-results']) ``` ### 步骤2:使用allure generate生成HTML报告 在测试运行完成后,调用allure命令行工具生成报告: ```python import os # 生成报告到指定目录(如:./report) os.system('allure generate ./allure-results -o ./report --clean') ``` ### 完整示代码 ```python import pytest import os if __name__ == '__main__': # 1. 运行测试并生成Allure原始数据 pytest.main(['-v', '--alluredir', './allure-results']) # 2. 生成Allure报告 os.system('allure generate ./allure-results -o ./report --clean') ``` ### 常见问题及解决方案 1. **allure命令不存在**: - 确保已安装Allure命令行工具。安装方法参考[官方文档](https://docs.qameta.io/allure/#_installing_a_commandline)。 - 在命令行中执行`allure --version`检查是否安装成功。 - 如果安装成功但os.system调用失败,可能是因为环境变量未配置。可以尝试使用绝对路径调用allure命令(如:在Windows上可能是`C:\Users\username\allure\bin\allure.bat`,在Linux/macOS上可能是`/usr/local/bin/allure`)。 2. **报告生成失败**: - 检查`./allure-results`目录是否存在且包含数据(json文件)。如果没有,说明测试运行未生成数据,需要检查pytest运行是否成功。 - 使用`--clean`参数可以清除之前的报告,避免旧数据干扰。 3. **报告无法打开**: - 生成的报告是静态HTML文件,可以使用allure open命令在本地服务器打开: ```python os.system('allure open ./report') ``` - 或者直接在文件系统中打开`./report/index.html`(注意:部分浏览器可能因安全限制无法直接打开,建议使用HTTP服务器)。 4. **测试执行与报告生成分离**: - 可以在不同机器上执行测试和生成报告,只需将`allure-results`目录复制到有allure命令行工具的机器上。 ### 使用配置文件(可选) 为了提高可维护性,可以将配置放在`pytest.ini`文件中,如: ```ini [pytest] addopts = -v --alluredir=./allure-results ``` 然后在主脚本中简化调用: ```python pytest.main() # 会自动读取pytest.ini中的配置 ``` ### 流程总结 $$ \begin{array}{c} \text{运行测试} \\ \downarrow \\ \text{生成Allure原始数据(--alluredir)} \\ \downarrow \\ \text{调用allure generate生成HTML报告} \end{array} $$ ### 相关问题 1. 如何将Allure报告集成到持续集成(CI)系统中? 2. 如何在测试失败时自动附加截图或日志到Allure报告? 3. 如何自定义Allure报告的样式和内容? 4. 如何解决Allure命令在系统路径中不可用的问题? 5. 如何定时清理历史生成的Allure报告数据? [^1]: 因为pytest下的allure测试报告生成,需要调用allure指令,这个指令和pytest没有关系,所以想要一步实现数据的记录以及报告的生成,记得添加os.system()方法来调用allure指令。但是,可能allure指令调用会失败。 [^2]: allure文档 :Allure Framework 安装 allure-pytest插件 pip install allure-pytest 生成Allure报告 运行 pytest [测试文件] -s -q --alluredir=./result #--alluredir用于指定存储测试结果的路径。 [^3]: Pytest使用allure测试报告。生成allure原始报告到report/allure目录下,生成的全部为json或txt文件。 pytest TestCase/test_search.py --alluredir ./allure。 </think>### 使用 Pytest 生成 Allure 报告完整指南 #### 核心流程(三步法) $$ \begin{array}{c} \text{安装依赖} \\ \downarrow \\ \text{测试执行 + 数据生成} \\ \downarrow \\ \text{报告生成与服务启动} \end{array} $$ --- #### 1. 环境准备 ```bash # 安装必备组件 pip install pytest allure-pytest ``` #### 2. 测试执行与数据生成(Python 脚本) ```python import pytest import os if __name__ == "__main__": # 步骤1: 执行测试并生成Allure原始数据 pytest.main([ 'test_cases/', # 测试用目录 '-v', # 详细输出 '--alluredir=./results' # 指定原始数据目录[^2] ]) # 步骤2: 生成HTML报告 os.system('allure generate ./results -o ./report --clean') # 步骤3: 自动打开报告(可选) os.system('allure open ./report') ``` #### 3. 命令行直接执行 ```bash # 生成测试数据 pytest test_cases/ --alluredir=./results # 生成HTML报告 allure generate ./results -o ./report --clean # 启动本地报告服务 allure open ./report ``` --- ### 关键参数说明 | 参数 | 作用 | 示 | |------|------|------| | `--alluredir` | 指定原始数据目录 | `--alluredir=./logs` | | `-o` | 指定报告输出目录 | `-o ./html_report` | | `--clean` | 清理历史报告 | 确保最新数据 | | `allure open` | 启动Web服务 | 默认端口8080 | --- ### 常见问题解决方案 #### 1. Allure 命令调用失败 **现象**:`'allure' 不是内部或外部命令` **解决方案**: ```bash # Windows系统需配置环境变量 set PATH=%PATH%;C:\path\to\allure\bin # 或使用绝对路径(Python) os.system('C:/allure/bin/allure generate ...') ``` #### 2. 报告数据为空 **排查步骤**: 1. 检查`./results`目录是否生成文件 2. 确认测试用包含`@allure`装饰器: ```python import allure @allure.title("登录功能测试") def test_login(): allure.attach("测试数据", "username=test") assert login() == True ``` #### 3. 跨平台路径问题 **解决方案**:使用`pathlib`模块 ```python from pathlib import Path results_dir = Path('./results').resolve() report_dir = Path('./report').resolve() os.system(f'allure generate {results_dir} -o {report_dir}') ``` #### 4. 历史报告残留 **解决方案**:添加清理参数 ```python os.system('allure generate ./results -o ./report --clean') ``` --- ### 最佳实践建议 1. **目录结构示**: ``` project/ ├── test_cases/ ├── results/ # 原始数据 └── report/ # HTML报告 ``` 2. **CI/CD 集成**: ```yaml # GitHub Actions 示 - name: Generate Report run: | allure generate ${{ github.workspace }}/results -o ${{ github.workspace }}/report if: ${{ always() }} # 测试失败时仍生成报告 ``` 3. **动态文件名**(带时间戳): ```python import datetime timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M") os.system(f'allure generate ./results -o ./report_{timestamp}') ``` --- ### 技术原理 $$ \begin{array}{c} \text{Pytest执行} \\ \downarrow \\ \text{Allure监听器捕获数据} \\ \downarrow \\ \text{生成JSON/TXT原始文件} \\ \downarrow \\ \text{allure generate编译为HTML} \end{array} $$ [^1]: pytest通过allure-pytest插件在测试执行时收集数据[^2] --- ### 相关问题 1. 如何在 Allure 报告中添加自定义环境信息? 2. 测试失败时如何自动附加截图到 Allure 报告? 3. 如何在 Jenkins 中集成 Allure 报告可视化? 4. 如何解决 Allure 报告中的历史趋势数据丢失问题? 5. 如何定制 Allure 报告的主题和样式? [^1]: 因为pytest下的allure测试报告生成,需要调用allure指令,这个指令和pytest没有关系,所以想要一步实现数据的记录以及报告的生成,记得添加os.system()方法来调用allure指令。但是,可能allure指令调用会失败。 [^2]: allure文档 :Allure Framework 安装 allure-pytest插件 pip install allure-pytest 生成Allure报告 运行 pytest [测试文件] -s -q --alluredir=./result [^3]: Pytest使用allure测试报告。生成allure原始报告到report/allure目录下,生成的全部为json或txt文件。 pytest TestCase/test_search.py --alluredir ./allure
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试老宅男扶摇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值