Allure定制报告

1、定制报告常用的装饰器

结合表和示例图查看

使用方法 参数值 参数说明
@allure.epic() 项目名称 项目名称,树结构第一层
@allure.feature() 模块名称 模块名称,树结构第二层
@allure.story() 用户故事 测试用例分组名,树结构第三层
@allure.title() 用例标题 测试用例标题,树结构第四层
@allure.severity() 用例等级/优先级 blocker,critical,normal,minor,trival
@allure.description() 用例描述 用例描述
@allure.link() 自定义链接
@allure.issure() bug链接地址
@allure.testcase() 测试用例地址
@allure.step() 测试步骤
@allure.attachment() 附件

示例图
image

2、allure.dynamic在测试方法中动态添加定制

在对测试方法进行参数化的时候,使用@allure.title装饰器只能对所有测试用例定制一样的标题,想要动态定制用例标题可以在测试方法中使用allure.dynamic.title()来进行定制。
定制代码示例

login_data = [
   ("登录成功用例", "zhangsan", "password", "success"),
   ("密码错误用例", "zhangsan", "passwd", "failed_password"),
   ("用户不存在", "lisi", "password", "user_not_exists")
             ]
@pytest.mark.parametrize("case_title,username,password,expect_result", login_data)
def test_login(case_title, username, password, expect_result):
   print("登录测试")
   allure.dynamic.title(case_title)
   allure.dynamic.description(f"测试用例描述:此条用例期待结果:{expect_result}")

定制效果
image

实际上表中除了epic所有定制都可以在测试方法中动态定制,具体如下图
image

3、用例等级的定制

  • blocker:阻塞缺陷,致命bug
  • critical:严重缺陷,功能未实现或错误
  • normal:一般缺陷(80%都是此类缺陷),默认等级
  • minor:次要缺陷,界面显示问题
  • trivial:轻微缺陷,提示问题

使用方法:@allure.severity(allure.severity_level.BLOCKER)

注意:
该装饰器既可以修饰方法也可以修饰类
不修饰的情况下,默认等级为normal

4、用例描述的定制

  1. 使用装饰器
    @allure.description()
  2. 动态定制
    allure.dynamic.description()
@allure.title("注销用例标题1")
@allure.description("测试注销1")
def test_logout(self):
    print("注销")
    allure.dynamic.title("注销用例标题2")
    allure.dynamic.description("测试注销2")

注意:
使用动态定制会覆盖使用装饰器定制

5、链接的定制

  • 测试用例链接:@allure.testcase(url=链接地址,name=名称)
  • bug链接:@allure.issue(url=链接地址,name=名称)
  • 自定义链接:@allure.link(url=链接地址,name=名称)
@allure.link(url="https://passport.jd.com/new/login.aspx", name="登录地址")
@allure.issue(url="https://www.google.com", name="bug列表地址1")
@allure.testcase(url="https://testlink.org/", name="测试用例地址1")
@pytest.mark.parametrize("case_title,username,password,expect_result", login_data)
def test_login(self, case_title, username, password, expect_result):
    print("登录测试")
    allure.dynamic.link(url="https://www.baidu.com",name="登录链接")
    allure.dynamic.issue(url="https://www.baidu.com", name="bug列表地址2")
    allure.dynamic.testcase(url="https://www.baidu.com", name="测试用例地址2")

注意:
链接同样支持动态定制
动态定制不会覆盖装饰器定制,会把所有链接都显示出来

6、步骤的定制

  1. 使用装饰器
    @allure.step()
  2. 在测试方法内使用
    with allure.step():

示例:

@allure.epic("电商项目")
@allure.feature("购物车模块")
class TestCart:
    @allure.step("第一步,测试加入购物车")
    @allure.story("测试添加购物车方法")
    @allure.title("加入购物车测试用例")
    def test_add_cart(self):
        # 第一步,登录
        with allure.step("第一步,登录"):
            print("登录成功")
        # 第二步,搜索商品
        with allure.step("第二步,搜索商品"):
            print("搜索成功")
        # 第三步,将商品加入购物车
        with allure.step("第三步,加入购物车"):
            print("加入购物车成功")
        # 第四步,打开购物车
        with allure.step("第四步,打开购物车"):
            print("打开购物车成功")
        # 第五步,断言验证是否添加成功
        with allure.step("第五步,断言验证是否加入成功"):
            print("验证加入购物车通过")

image

7、附件的定制

使用allure.attachment对附件进行定制
参数:

  • body:附件内容
  • name:附件名称
  • attachment_type:附件类型,支持的类型如下
    • image
  1. UI自动化项目

    def test_register(self):
        print("注册测试")
        with open("./allure_demo/screen_shot/fail_snap.jpg","rb") as f:
            allure.attach(body=f.read(), name="注册测试失败截图", attachment_type=allure.attachment_type.JPG)
    

    image

  2. 接口自动化项目

    def test_search_api():
        allure.attach(body=url, name="请求地址", attachment_type=allure.attachment_type.TEXT)
        allure.attach(body=json.dumps(params), name="请求参数", attachment_type=allure.attachment_type.TEXT)
        resp = requests.get(url, params=params)
        allure.attach(body=resp.text,  name="响应数据", attachment_type=allure.attachment_type.TEXT)
    

    image

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Allure定制报告 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • Pytest框架 — 07、Pytest的Fixture(部分前后置)(二)

    目录 4、Fixture的相互调用 5、Fixture复用 6、Fixture缓存返回结果 7、Fixture的后置处理 (一)使用yield关键字实现后置 (二)使用addfinalizer关键字实现后置 (三)yield和addfinalizer的区别 4、Fixture的相互调用 示例: import pytest # 第一层fixture @pyte…

    Python开发 2023年4月2日
    00
  • Pytest框架 — 05、setup和teardown(全部前后置)

    目录 1、前言 2、各级别详解 3、总结 1、前言 在自动化测试过程中经常需要进行初始化和后期处理等工作,如电商加购物车测试需要先登录,测试完毕需要关闭浏览器等。Pytest提供了5种类型的setup和teardown的方法,具体如下: 模块级别:setup_module,teardown_module 函数级别:setup_function,teardow…

    Python开发 2023年4月2日
    00
  • Pytest框架 — 10、Pytest的标记(一)(跳过和预期失败)

    目录 1、前言 2、标记跳过 (一)无条件跳过skip (二)有条件跳过skipif (三)使用pytest.skip(reason)函数标记跳过 (四)跳过整个模块 3、标记预期失败 (一)参数详解 (二)使用pytest.xfail(reason)函数标记预期失败 (三)示例 (四)忽略xfail标识 (五)xfail总结 1、前言 引用自官方文档您可以…

    Python开发 2023年4月2日
    00
  • Pytest框架 — 06、Pytest的Fixture(部分前后置)(一)

    目录 1、前言 2、Fixture的优势 3、Fixture的定义与调用 (1)定义方法 (2)参数简要说明 (3)调用方法 1、前言 fixture中文名翻译为夹具,作用与上一篇中setup和teardown一致,都是用来做前后置处理的,但fixture更灵活更强大。它支持部分前后置,比如有时候我们不需要为每一条测试用例都添加前后置,使用setup和tea…

    Python开发 2023年4月2日
    00
  • Pytest框架 — 12、Pytest的标记(三)(重复执行)

    目录 1、前言 2、–count参数使用 (一)在命令行或者main函数使用 (二)在全局配置文件中使用 3、–repeat-scope参数使用 4、@pytest.mark.repeat(count)装饰器使用 5、结合参数x使重复执行在失败时停止 1、前言 在自动化测试的时候我们可能会遇到某些原因,如模块不稳定等,出现一些测试失败,此时我们想要针对单…

    Python开发 2023年4月2日
    00
  • Pytest框架 — 03、Pytest全局配置文件

    目录 1、Pytest的全局配置文件 (1)说明 (2)示例 (3)常用配置项 (4)执行 1、Pytest的全局配置文件 (1)说明 我们之前用命令行或主函数启动测试的时候会增加一些参数来实现所需功能,很多测试用例执行都需要这些参数,所以在企业中我们会通过全局配置文件的方式来管理这些参数。注意: 全局配置文件的名称是固定的,可以为pytest.ini,to…

    Python开发 2023年4月2日
    00
  • Pytest框架 — 14、Pytest的标记(五)(控制测试用例执行顺序)

    目录 1、前言 2、使用 3、标记最先执行和最后执行 1、前言 在执行自动化测试时,我们通常都希望能够控制执行测试用例的顺序。 在unittest框架中默认按照ACSII码的顺序加载测试用例并执行,顺序为:0~9、A~Z、a~z,测试目录、测试模块、测试类、测试方法/测试函数都按照这个规则来加载测试用例。 在pytest测试框架中,默认从上至下执行,也可以通…

    Python开发 2023年4月2日
    00
  • Pytest框架 — 16、Pytest的测试报告(pytest-html插件和Allure框架)

    目录 1、前言 2、pytest-html生成测试报告 (1)pytest-html插件安装 (2)pytest-html的使用 (3)报告独立显示 3、Allure框架生成测试报告 (1)说明 (2)环境准备 (3)执行测试并生成测试报告 1、前言 在pytest中常用的测试报告生成方法有两种,一种是通过pytest-html插件来完成,另一种通过Allu…

    2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部