Allure定制报告

种地  论坛元老 | 2022-9-16 17:26:15 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1084|帖子 1084|积分 3252

目录

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()附件示例图

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

在对测试方法进行参数化的时候,使用@allure.title装饰器只能对所有测试用例定制一样的标题,想要动态定制用例标题可以在测试方法中使用allure.dynamic.title()来进行定制。
定制代码示例
  1. login_data = [
  2.    ("登录成功用例", "zhangsan", "password", "success"),
  3.    ("密码错误用例", "zhangsan", "passwd", "failed_password"),
  4.    ("用户不存在", "lisi", "password", "user_not_exists")
  5.              ]
  6. @pytest.mark.parametrize("case_title,username,password,expect_result", login_data)
  7. def test_login(case_title, username, password, expect_result):
  8.    print("登录测试")
  9.    allure.dynamic.title(case_title)
  10.    allure.dynamic.description(f"测试用例描述:此条用例期待结果:{expect_result}")
复制代码
定制效果

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

3、用例等级的定制


  • blocker:阻塞缺陷,致命bug
  • critical:严重缺陷,功能未实现或错误
  • normal:一般缺陷(80%都是此类缺陷),默认等级
  • minor:次要缺陷,界面显示问题
  • trivial:轻微缺陷,提示问题
使用方法:@allure.severity(allure.severity_level.BLOCKER)
注意:
该装饰器既可以修饰方法也可以修饰类
不修饰的情况下,默认等级为normal
4、用例描述的定制


  • 使用装饰器
    @allure.description()
  • 动态定制
    allure.dynamic.description()
  1. @allure.title("注销用例标题1")
  2. @allure.description("测试注销1")
  3. def test_logout(self):
  4.     print("注销")
  5.     allure.dynamic.title("注销用例标题2")
  6.     allure.dynamic.description("测试注销2")
复制代码
注意:
使用动态定制会覆盖使用装饰器定制
5、链接的定制


  • 测试用例链接:@allure.testcase(url=链接地址,name=名称)
  • bug链接:@allure.issue(url=链接地址,name=名称)
  • 自定义链接:@allure.link(url=链接地址,name=名称)
  1. @allure.link(url="https://passport.jd.com/new/login.aspx", name="登录地址")
  2. @allure.issue(url="https://www.google.com", name="bug列表地址1")
  3. @allure.testcase(url="https://testlink.org/", name="测试用例地址1")
  4. @pytest.mark.parametrize("case_title,username,password,expect_result", login_data)
  5. def test_login(self, case_title, username, password, expect_result):
  6.     print("登录测试")
  7.     allure.dynamic.link(url="https://www.baidu.com",name="登录链接")
  8.     allure.dynamic.issue(url="https://www.baidu.com", name="bug列表地址2")
  9.     allure.dynamic.testcase(url="https://www.baidu.com", name="测试用例地址2")
复制代码
注意:
链接同样支持动态定制
动态定制不会覆盖装饰器定制,会把所有链接都显示出来
6、步骤的定制


  • 使用装饰器
    @allure.step()
  • 在测试方法内使用
    with allure.step():
示例:
  1. @allure.epic("电商项目")
  2. @allure.feature("购物车模块")
  3. class TestCart:
  4.     @allure.step("第一步,测试加入购物车")
  5.     @allure.story("测试添加购物车方法")
  6.     @allure.title("加入购物车测试用例")
  7.     def test_add_cart(self):
  8.         # 第一步,登录
  9.         with allure.step("第一步,登录"):
  10.             print("登录成功")
  11.         # 第二步,搜索商品
  12.         with allure.step("第二步,搜索商品"):
  13.             print("搜索成功")
  14.         # 第三步,将商品加入购物车
  15.         with allure.step("第三步,加入购物车"):
  16.             print("加入购物车成功")
  17.         # 第四步,打开购物车
  18.         with allure.step("第四步,打开购物车"):
  19.             print("打开购物车成功")
  20.         # 第五步,断言验证是否添加成功
  21.         with allure.step("第五步,断言验证是否加入成功"):
  22.             print("验证加入购物车通过")
复制代码

7、附件的定制

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

  • body:附件内容
  • name:附件名称
  • attachment_type:附件类型,支持的类型如下




  • UI自动化项目
    1. def test_register(self):
    2.     print("注册测试")
    3.     with open("./allure_demo/screen_shot/fail_snap.jpg","rb") as f:
    4.         allure.attach(body=f.read(), name="注册测试失败截图", attachment_type=allure.attachment_type.JPG)
    复制代码

  • 接口自动化项目
    1. def test_search_api():
    2.     allure.attach(body=url, name="请求地址", attachment_type=allure.attachment_type.TEXT)
    3.     allure.attach(body=json.dumps(params), name="请求参数", attachment_type=allure.attachment_type.TEXT)
    4.     resp = requests.get(url, params=params)
    5.     allure.attach(body=resp.text,  name="响应数据", attachment_type=allure.attachment_type.TEXT)
    复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

种地

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表