世界级别allure

本文介绍了如何将pytest与allure框架整合,用于生成详细的测试报告。内容涵盖安装配置allure、使用各种静态和动态属性进行测试用例描述,以及如何生成和定制allure测试报告。通过示例展示了如何动态设置用例标题,并提供了yaml格式的数据示例。

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

目录

1、前言

2、安装及配置

2.1、安装jdk

2.2、下载allure

2.3、配置环境

3、使用介绍

3.1、静态属性

3.2、动态属性

4、生成报告


1、前言

 pytest+allure是最完美的结合了,关于allure的使用,本篇做一个总结。
allure报告可以很多详细的信息描述测试用例,包括epic、feature、story、title、issue、testcase、severity等
环境准备

2、安装及配置

2.1、安装jdk

安装allure之前安装配置好jdk,不然安装allure会出错

2.2、下载allure

下载地址:Releases · allure-framework/allure2 · GitHub

2.3、配置环境

将allure目录下的bin路径记录环境变量中

cmd中输入allure验证配置是否成功

安装allure对应库

pip install allure-pytest

3、使用介绍

3.1、静态属性

allure用例描述

使用方法参数值参数说明
@allure.epic()epic描述敏捷里面的概念,定义史诗,往下是feature
@allure.feature()模块名称功能点的描述,往下是story
@allure.story()用户故事用户故事,往下是title
@allure.title(用例的标题)用例的标题重命名html报告名称
@allure.testcase()测试用例的链接地址对应功能测试用例系统里面的case
@allure.issue()缺陷对应缺陷管理系统里面的链接
@allure.description()用例描述测试用例的描述
@allure.step()操作步骤测试用例的步骤
@allure.severity()用例等级blocker,critical,normal,minor,trivial
@allure.link()链接定义一个链接,在测试报告展现
@allure.attachment()附件报告添加附件
  • @allure.epic  第一级目录
  • @allure.feature  第二级目录
  • @allure.story  第三级目录
  • @allure.title  更换def方法名称

  • @allure.testcase  用例链接
  • @allure.issue  bug链接

  • @allure.description  用例描述
  • @allure.step  用例步骤

  • @allure.serverity()  设置用例优先级
  • @allure.link()  写在class时,报告的每个用例的链接都会显示,写在用例前,只在当前用例显示

3.2、动态属性

关键字:dynamic,例子静态写法@allure.title(),动态写法allure.dynamic.title()

def datas():
    with open("./data/login.yaml", encoding="utf8") as f:
        datas = yaml.safe_load(f)
        return datas

@allure.feature("login")
class Test_run:
    @classmethod
    def setup_class(cls):
        cls.wb = Action()
        for i in os.dirlist("./temp"):  # 每次运行时清除之前temp的数据
            os.remove("./temp"+i)

    @allure.story("登录用例")
    @pytest.mark.parametrize("listcase", datas()['loginPage'])
    def test_1login(self, listcase):
        allure.dynamic.title(listcase["title"])  # 动态设置用例标题
        testcases = listcase['cases']
       for p in testcases:
            arr = list(p.values())
            with allure.step(arr[0]):
                func = getattr(self.wb, arr[1])  # 映射,第一个参数为对象(class名称),第二个参数为方法名
                func(*arr[2:])  # 传递参数
# yaml格式数据
loginPage :
    -
      title : 登录失败
      cases :
        -
          name : 打开登录页面
          method : openWeb
          url : https://www.baidu.com
        -
          name : 输入用户名
          method : sendkeys
          type : id
          locator : account
          value : 123456
        -
          name : 输入密码
          method : sendkeys
          type : id
          locator : password
          value : lm123456
        -
          name : 点击登录
          method : click
          type : xpath
          locator : /html/body/main/div/form/a

4、生成报告

选择运行你要执行的用例

pytest -s test_abc.py --alluredir ./temp 

选择运行你要执行epic的用例

pytest --alluredir ./temp --allure-epics=epic对大Story的一个描述性标签

选择运行你要执行features的用例

pytest --alluredir ./temp --allure-features=模块2

先执行用例的文件存在/temp中,然后在runner.py文件添加os.system("allure generate ./temp -o ./report --clean"),或者执行命令

allure generate ./temp -o ./report

5、定制logo

1、在config目录下找到allure.yml,打开文件,在最后添加- custom-logo-plugin

 

2、找到allure目录下的plugins > custom-logo-plugin > static,将logo文件放入该目录下,编辑styles.css,替换.jpg文件,最后调整height和width,直到合适的位置

.side-nav__brand {
  background: url('login_icon.jpg') no-repeat left center !important;
  margin-left: 40px;
  height: 150px;
  background-size: contain !important;
}

.side-nav__brand-text {
	display: none;
}

03-08
<think>好的,用户想了解如何使用Allure测试报告工具。我需要先回忆Allure的基本概念和流程,确保信息准确。首先,用户可能已经知道一些测试框架,比如Pytest或JUnit,所以需要从安装开始,然后是如何集成到测试框架中,生成报告的具体步骤,最后是查看和分享报告的方法。 用户提供的示例中提到了命令行生成报告,引用部分是关于使用allure-commandline生成报告的命令,这需要详细说明。可能用户还关心如何安装Allure,不同系统的安装步骤可能有差异,需要分点说明。比如在macOS用Homebrew,Windows用Scoop,Linux用apt或手动下载。 然后,集成测试框架部分,应该分别介绍Pytest和JUnit的例子,因为这两个是比较常用的。需要给出具体的代码示例,比如在测试用例中添加装饰器,或者生成必要的XML结果文件。此外,生成报告的命令行步骤需要详细,包括如何指定结果目录和生成报告的路径。 最后,高级用法部分可以包括环境变量的配置、添加用例描述和分类缺陷,这样用户能更深入地定制报告。还要注意提醒用户安装对应的依赖库,比如pytest-allureallure-junit插件,避免遗漏导致的问题。 可能用户在使用过程中会遇到无法生成报告的情况,需要检查测试结果是否生成正确,或者路径是否正确。此外,报告生成后的serve命令会自动打开浏览器,如果用户想分享静态报告,可能需要打包整个目录。 需要确保所有步骤清晰,代码示例正确,特别是命令行部分,避免用户复制时出错。引用部分要正确对应到参考资料中的内容,比如生成报告的命令行部分。最后的相关问题要覆盖安装、集成、报告内容、与其他工具对比以及常见问题,帮助用户进一步探索。</think>### Allure 测试报告工具使用指南 #### 一、安装与配置 1. **Java环境要求**:Allure 基于 Java 开发,需先安装 JDK 1.8+[^1] 2. **安装 Allure**: - **macOS**:`brew install allure` - **Windows**:通过 Scoop 安装 `scoop install allure` - **Linux**:`sudo apt-get install allure` 或手动下载二进制包 #### 二、集成测试框架 1. **Pytest 集成**: ```python # 安装插件 pip install pytest-allure # 执行测试并生成结果 pytest --alluredir=./allure-results test_suite.py ``` 2. **JUnit 集成**: 在 Maven 项目中添加依赖: ```xml <dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-junit5</artifactId> <version>2.13.0</version> </dependency> ``` #### 三、生成可视化报告 执行测试后生成 HTML 报告: ```bash # 生成报告 allure generate allure-results -o allure-report --clean # 本地查看(自动打开浏览器) allure serve allure-results ``` : 此命令会启动本地 Web 服务展示报告 #### 四、报告解读 1. **仪表盘**:展示测试通过率、执行时长统计 2. **用例详情**: - 参数化测试数据展示 - 附件支持(截图、日志等) 3. **趋势图**:历史执行结果对比 #### 五、高级用法 1. **添加用例描述**: ```python @allure.title("用户登录测试") @allure.description("验证标准用户登录流程") def test_login(): with allure.step("输入用户名"): # 操作步骤 with allure.step("验证登录结果"): assert is_logged_in() ``` 2. **分类缺陷**: 在报告中标记缺陷级别: ```python @allure.severity(allure.severity_level.CRITICAL) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值