pytest allure测试报告_高大上的测试报告框架 Allure(实战篇)

介绍如何把Allure集成到Python的Pytest单元测试框架中

       Allure 分三篇文章讲解,从安装、实战、持续集成三个方面,上一篇文件已经讲了 Allure 的安装,详见《高大上的测试报告框架 - Allure(安装篇)》,本篇文章将讲解把 Allure 集成到 Pytest 单元测试框架实战,Let's go!

Allure 其实就是一个定义好的装饰器,只要了解一下语法和使用规则即可

1.Allure装饰器功能说明

@allure.feature("一级模块") # 主要功能模块,具有相同feature名的用例将合并到一组
@allure.story("二级模块")# 子功能模块,具有相同story名的用例将合并到一组,同时存在feature和story时,feature为父节层级
@allure.titile("测试用例标题")# 测试用例标题,这样在测试报告中就不会显示测试方法名称了
@allure.issue(URL, name='点击我跳转禅道')# 问题标识,说白了就是BUG,可为一个BUG的url链接地址
@allure.testcase(URL, name='点击我跳转禅道')# 用例标识,关联用例,可为一个用例的url链接地址
@allure.severity("critical")# 用例优先级,包含blocker, critical, normal, minor, trivial 5个不同等级,默认是normal
@allure.step("字符串相加:{0},{1}")# 测试步骤,通过{0},{1}可以取到函数传参
@allure.description()#  测试用例描述
@allure.attach.file(r'E:\test.png',"父亲节",allure.attachment_type.PNG)# 用于向测试报告中输入一些附加的信息,如:图片、日志等

2.feature、story、titile的使用

@allure.feature("一级模块") # 一般放在测试类上,同一个功能放在一个类下 @allure.story("二级模块") # 一般放在测试用例上,用来给用例分组 @allure.titile("测试用例标题") # 一般放在测试用例上,用来给用例起名字 例子:
#!/usr/bin/env python# -*- coding: utf-8 -*-# @TIME    : 2020/6/21 16:03# @Author  : hubiao  公众号:彪哥的测试之路# @File    : test_demo.pyimport pytestimport allurefrom Common.Assert import Assertionsfrom Swagger.RoleRest import RoleRest@allure.feature("角色")class Test_RoleRest:    '''    角色    '''    @allure.story("角色列表")    @allure.title("获取角色类型信息")    def test_find_RoleType(self, CenterBuilder):        '''        关注公众号:彪哥的测试之路        '''        response = RoleRest().find_RoleType(CenterBuilder)        try:            Assertions().assert_equal_value(response["success"][0], True)            Assertions().assert_equal_value(len(response["result_roleTypeId"]), 4)        except KeyError:            assert False, 'Key不存在'        finally:            # 清理数据            passif __name__ == "__main__":    pytest.main(["-s"])

0bf3c5c315001018badf6b63e619d267.png

3.step、attach的使用

@ allure.step("字符串相加: {0},{1}") # 当要把一个方法定义为步骤时使用 with allure.step("步骤1") # 当在一个测试方法内需要有多个步骤时使用 allure.attach('彪哥的测试之路','公众号',allure.attachment_type.TEXT) # 添加文本附件时使用 allure.attach.file(r'E:\test.png',"父亲节",allure.attachment_type.PNG) # 添加文件时使用,allure.attach 也可添加附件,但使用会稍微麻烦一点,建议使用 allure.attach.file 例子:
#!/usr/bin/env python# -*- coding: utf-8 -*-# @TIME    : 2020/6/21 16:03# @Author  : hubiao  公众号:彪哥的测试之路# @File    : test_demo.pyimport pytestimport allurefrom Common.Assert import Assertionsfrom Swagger.RoleRest import RoleRest@allure.feature("角色")class Test_RoleRest:    '''    角色    '''    @allure.story("角色列表")    @allure.title("获取角色类型信息")    def test_find_RoleType(self, CenterBuilder):        '''        关注公众号:彪哥的测试之路        '''        with allure.step("步骤1"):            response = RoleRest().find_RoleType(CenterBuilder)        with allure.step("步骤2"):            allure.attach('彪哥的测试之路','公众号',allure.attachment_type.TEXT)        with allure.step("步骤3"):            allure.attach.file(r'E:\test.png',"父亲节",allure.attachment_type.PNG)        try:            Assertions().assert_equal_value(response["success"][0], True)            Assertions().assert_equal_value(len(response["result_roleTypeId"]), 4)        except KeyError:            assert False, 'Key不存在'        finally:            # 清理数据            passif __name__ == "__main__":    pytest.main(["-s"])

b6a25c344ca5b4f47edf047bd1a1af3d.png

其它的就不演示了,大家可以自行添加一下,都比较简单。

3.把测试环境信息显示在 Allure 中

网上很多都是介绍用 allure.environment(host=‘127.0.0.1’)  这种方法设置的,这是 allure1 的设置方法,现在这种方法在 allure2 中不支持了,allure2 设置方法为:创建 environment.properties 或者 environment.xml 文件,并把对应的文件放到 allure-results 目录即可。如:

environment.properties

Browser=ChromeBrowser.Version=63.0Stand=Production

environment.xml

<environment>    <parameter>        <key>Browserkey>        <value>Chromevalue>    parameter>    <parameter>        <key>Browser.Versionkey>        <value>63.0value>    parameter>    <parameter>        <key>Standkey>        <value>Productionvalue>    parameter>environment>

8e88790d2f79e9a2006a0a1c47e8cd4f.png

实战篇就算是讲完了,下一篇完结篇讲如何把 Allure 接入 Jenkins,不懂的小伙伴可以留言或私信。

如果你认同这篇文章,请点击 在看 76bbee2d36d33fe97904fb285892496d.png
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值