IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Pytest学习笔记(21)-使用allure.dynamic动态生成标题、描述 -> 正文阅读

[开发测试]Pytest学习笔记(21)-使用allure.dynamic动态生成标题、描述

前言

  • 前面提到,可以使用@allure.title 和 @allure.description 给测试用例添加标题和描述
  • 在用例里面也可以动态更新标题和详情
  • 使用allure.dynamic.description 和 allure.dynamic.title 实现

源码

class Dynamic(object):

    @staticmethod
    def title(test_title):
        plugin_manager.hook.add_title(test_title=test_title)

    @staticmethod
    def description(test_description):
        plugin_manager.hook.add_description(test_description=test_description)

    @staticmethod
    def description_html(test_description_html):
        plugin_manager.hook.add_description_html(test_description_html=test_description_html)

    @staticmethod
    def label(label_type, *labels):
        plugin_manager.hook.add_label(label_type=label_type, labels=labels)

    @staticmethod
    def severity(severity_level):
        Dynamic.label(LabelType.SEVERITY, severity_level)

    @staticmethod
    def feature(*features):
        Dynamic.label(LabelType.FEATURE, *features)

    @staticmethod
    def story(*stories):
        Dynamic.label(LabelType.STORY, *stories)

    @staticmethod
    def tag(*tags):
        Dynamic.label(LabelType.TAG, *tags)

    @staticmethod
    def link(url, link_type=LinkType.LINK, name=None):
        plugin_manager.hook.add_link(url=url, link_type=link_type, name=name)

    @staticmethod
    def issue(url, name=None):
        Dynamic.link(url, link_type=LinkType.ISSUE, name=name)

    @staticmethod
    def testcase(url, name=None):
        Dynamic.link(url, link_type=LinkType.TEST_CASE, name=name)

知识点

查看源码可以看出,allure很多特性都支持dynamic用法:

allure.dynamic.title
allure.dynamic.description
allure.dynamic.description_html
allure.dynamic.severity
allure.dynamic.feature
allure.dynamic.story
allure.dynamic.link
allure.dynamic.issue
allure.dynamic.testcase

举个🌰(title)

代码
#!/usr/bin/env python3
# -*- coding:utf-8 -*-

"""
    __File__   = test_dynamic2.py.py
    __Project__= _JAuto-Interface
    __Time__   = 2022-02-26 18:24:36
    __Author__ = 黎晟
"""
import allure


@allure.title("标题:用例执行成功后会被替换")
def test_with_dynamic_title_success():
    assert 2 + 2 == 4
    allure.dynamic.title('用例执行成功后,更新后的title')


@allure.title("标题:用例执行失败后不会被替换")
def test_with_dynamic_title_failed():
    assert 2 + 2 == 3
    # Python执行机制影响,下面的代码并不会执行
    allure.dynamic.title('用例执行失败后,无效的的title')
测试报告

在这里插入图片描述

执行成功的用例,标题被更新为用例内的标题

举个🌰(description)

代码
#!/usr/bin/env python3
# -*- coding:utf-8 -*-

"""
    __File__   = test_dynamic2.py.py
    __Project__= _JAuto-Interface
    __Time__   = 2022-02-26 18:24:36
    __Author__ = 黎晟
"""
import allure


def test_with_dynamic_description_success():
    """
     描述:用例执行成功后会被替换
    """
    assert 2 + 2 == 4
    allure.dynamic.description('用例执行成功后,更新后的描述')


def test_with_dynamic_description_failed():
    """
     描述:用例执行失败后不会被替换
    """
    assert 2 + 2 == 3
    allure.dynamic.description('用例执行失败后,无效的的描述')
测试报告

用例执行失败,未被替换的描述在这里插入图片描述

用例执行成功,被替换了的描述在这里插入图片描述

结合参数化parametrize

代码
#!/usr/bin/env python3
# -*- coding:utf-8 -*-

"""
    __File__   = test_dynamic2.py.py
    __Project__= _JAuto-Interface
    __Time__   = 2022-02-26 18:24:36
    __Author__ = 黎晟
"""
import allure
import pytest

data_dynamic = [
    ("name1", "password1", "登录成功用例"),
    ("name2", "password2", "登录失败用例"),
    ("name3", "password3", "账号不存在用例")
]


@pytest.mark.parametrize("name,pwd,title", data_dynamic)
def test_with_dynamic(name, pwd, title):
    """
     登录用例
    """
    allure.dynamic.title(title)
    allure.dynamic.description(f'nam为{name},pwd为{pwd}')
测试报告在这里插入图片描述

结合其他特性

代码
#!/usr/bin/env python3
# -*- coding:utf-8 -*-

"""
    __File__   = test_dynamic2.py.py
    __Project__= _JAuto-Interface
    __Time__   = 2022-02-26 18:24:36
    __Author__ = 黎晟
"""
import allure


def test_other_with_dynamic():
    assert 1 == 1
    allure.dynamic.feature('动态feature')
    allure.dynamic.story('动态story')
    allure.dynamic.severity(allure.severity_level.BLOCKER)
    allure.dynamic.link("dynamic动态生成的Link:https://blog.csdn.net/qq_42841075?type=blog")
    allure.dynamic.issue("dynamic动态生成的Issue:https://blog.csdn.net/qq_42841075?type=blog")
    allure.dynamic.testcase("dynamic动态生成的testcase:https://blog.csdn.net/qq_42841075?type=blog")
测试报告在这里插入图片描述

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:56:11  更:2022-02-28 15:56:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:41:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码