九天猎人 发表于 2024-10-12 08:39:17

pytest测试陈诉Allure - 动态生成标题生成功能、添加用例失败截图

一、动态生成标题

默认 allure 陈诉上的测试用例标题不设置就是用例名称,其可读性不高;当联合 @pytest.mark.parametrize 参数化完成数据驱动时,如标题写死,其可读性也不高。
那假如盼望标题可以动态的生成,接纳的方案是:
参数化 @pytest.mark.parametrize + @allure.title()
1.1、示例一:参数化无标题
1、创建
test_allure_title_parametrize.py文件
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
"""

import pytest
import allure

@pytest.fixture()
def login(request):
    """登录"""
    param = request.param
    print(f"用户名:{param['username']},密码:{param['password']}")
    # 返回
    return {"code": 0, "msg": "登陆成功"}

datas = [
    {"username": "name1", "password": "pwd1"},
    {"username": "name2", "password": "pwd2"},
    {"username": "name3", "password": "pwd3"}
]

@allure.story('登录功能')
@pytest.mark.parametrize('login', datas, indirect=True)
def test_login(login):
    """
    登录测试用例
    """
    assert login['code'] == 0 2、输入下令运行:
pytest test_allure_title_parametrize.py --alluredir=./allure
allure serve allure 如图所示:用例标题就是函数名+参数化的数据
https://i-blog.csdnimg.cn/blog_migrate/30f9b2149e968c87fb2881cc5480d0ab.png
1.2、示例二:参数化有标题
1、创建
test_allure_title_parametrize2.py文件
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
"""

import pytest
import allure

@pytest.fixture()
def login(request):
    """登录"""
    param = request.param
    print(f"用户名:{param['username']},密码:{param['password']}")
    # 返回
    return {"code": 0, "msg": "登陆成功"}

datas = [
    {"username": "name1", "password": "pwd1"},
    {"username": "name2", "password": "pwd2"},
    {"username": "name3", "password": "pwd3"}
]

@allure.story('登录功能')
@allure.title('登录测试用例')
@pytest.mark.parametrize('login', datas, indirect=True)
def test_login(login):
    """
    登录测试用例
    """
    assert login['code'] == 02、输入下令运行:
pytest test_allure_title_parametrize2.py --alluredir=./allure
allure serve allure

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: pytest测试陈诉Allure - 动态生成标题生成功能、添加用例失败截图