自动化测试框架Pytest介绍(8)——利用allure生成测试报告

本文介绍了如何使用allure框架与pytest结合生成测试报告,包括allure的安装、测试报告的生成步骤及优化,如设置中文显示和调整报告内容。文章还提供了相关代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

1、安装allure

1.1安装allure

 1.2安装allure-pytest

2、allure测试报告生成

2.1步骤说明

2.2代码示意

3、测试报告优化

3.1allure报告中文显示

3.2 对 几个常用优化方法的代码示例


       上一篇我们介绍了利用pytest-html生成测试报告,本篇我们介绍用allure生成测试报告,allure跟pytest-html相比,无论美观性、可用性都更强一些。

1、安装allure

1.1安装allure

1、在github上搜索allure,进入  allure-framework/allure2, 拉倒下面的Download,点击releases

2、进入后选择下载包,我们是Windows系统,下载zip包

3、将下载的zip包解压到自己想存放allure的目录,并将解压后的 bin目录加入环境变量

4、打开命令行,运行 allure --version,可以看到版本号,证明安装成功

 1.2安装allure-pytest

pytest要生成allure报告,还需要安装allure-pytest,直接用pip安装即可,没办法联网的则到pypi下载allure-pytest包,然后离线安装。

安装命令

pip install allure-pytest

2、allure测试报告生成

2.1步骤说明

我们还是用pytest结合allure来生成测试报告,pytest执行完后生成allure测试报告分3个步骤

1、执行用例时用--alluredir 参数,生成原始json文件

2、用allure generate ,将生成的json文件生成html文件

3、用allure open 打开报告(特别是这条容易遗忘,如果直接打开生成的index.html文件,会发现显示Loading,并且没有任何跟测试内容相关的东西)

2.2代码示意


from BaseLog import logger
import pytest
import datetime
import time
import os

def test_case1():
    """
    测试用例1
    """
    Expected = 2
    Actual = 2
    time.sleep(1)
    print("我是test_case1:")
    assert Expected == Actual,"Expected == Actual"


def test_case2():
    """
    测试用例2
    """
    Expected = 1
    Actual = 2
    print("我是test_case2")
    assert Expected != Actual,"Expected == Actual"

def test_case3():
    """
    测试用例3
    """
    Expected = 1
    Actual = 2
    print("我是test_case3")
    assert Expected == Actual,"Expected == Actual"

if __name__ =="__main__":
    # -s:显示用例中的输出
    # -v:输出更详细的用例执行信息
    # __file__:本文件
    # 生成YYYY-mm-dd-HHMMSS的时间戳
    now = datetime.datetime.now()
    time_str = now.strftime("%Y-%m-%d-%H%M%S")    
    #此处命令 --alluredir 生成了报告的原始文
### Pytest 自动化测试框架使用指南 #### 安装与配置 为了开始使用 `pytest` 进行自动化测试,首先需要确保环境中已经安装了该工具。可以通过命令行输入如下指令来完成安装: ```bash pip install pytest ``` 对于特定项目的需求,比如集成 Allure 报告生成功能,则还需要额外安装相应的插件[^5]。 #### 测试用例结构 编写测试脚本时遵循一定的命名约定有助于更好地管理和执行测试案例。通常情况下,文件名应以 `test_` 或者 `check_` 开头;而类名则建议采用 `Test` 或 `Check` 前缀的形式[^4]。 #### 跳过测试用例 当某些条件下不希望执行某个具体的测试函数或是整个模块内的全部测试项时,可以利用内置的装饰器实现条件性的跳过操作。例如,在全局范围内应用此逻辑可通过设置 `pytestmark` 变量达成目的[^1]。 #### 配置环境准备 良好的测试实践往往离不开完善的前置准备工作以及后续清理工作。为此,`pytest` 提供了一套灵活多样的 fixture 机制支持开发者定义这些辅助方法。除了常见的 setup 和 teardown 外,还可以借助于更高级别的 hook 函数如 `pytest_configure()` 来扩展框架的功能特性[^3]。 #### 执行策略调整 默认行为下,`pytest` 将会查找并运行当前目录及其子目录下的所有符合条件的 Python 文件中的测试单元。然而有时候可能想要改变这种模式,这时就可以编辑项目的根路径处存在的配置文件(如 `.ini`, `tox.ini` 或 `setup.cfg`),指定新的匹配规则以便只针对特定类型的源码进行处理。 ```python # .ini, tox.ini or setup.cfg file content example: [pytest] addopts = --maxfail=2 -v python_files=test_*.py check_*.py python_classes=TestClass CheckClass python_functions=test_* check_* ``` #### 结合 Selenium 实现 Web 应用程序测试 在实际开发过程中,经常需要用到浏览器模拟技术来进行前端界面级别的验证。此时可以选择搭配 WebDriver 接口库之一——Selenium 来增强 `pytest` 的能力范围[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

六天测试工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值