Allure

注意事项:
1. allure需要jdk和环境变量配置后重新打开PyCharm(环境变量Path中配置allure命令行工具的安装目录到bin目录下)
2. 如果重新打开还会报错allure: 不是可运行程序或者命令..., 就用管理员身份打开PyCharm

 常用装饰器:

1. 显示测试步骤:
        @allure.step("")   在报告上显示测试用例步骤说明的内容
        举例说明:                              
import allure


@allure.step("第二步,运算")
def calc(num1,num2):
    return num1 + num2


@allure.step("第一步,传参")
def get_calc():
    return calc(1,2)


@allure.step("第三步,打印")
def test_print():
    a = get_calc()
    print(a)
        
        上面这样按代码顺序写步骤, 在报告上看还是比较乱的, 

        下面这样直接写步骤, 在报告上看是按照顺序的,但不会显示参数...(自己选择吧
         
                                        代码: 
import allure


def calc(num1,num2):

    return num1 + num2


def get_calc():
    return calc(1,2)


@allure.step("第一步,传参")
@allure.step("第二步,运算")
@allure.step("第三步,打印")
def test_print():
    a = get_calc()
    print(a)

"""
step() 只有一个参数,就是title,输入什么,在allure上就显示什么
"""

2. 按层级显示项目名、模块名、用例名等, 总之就是四个层级, 写了就会显示, 不写就不显示
        @allure.epic("") 敏捷里面的概念,定义史诗,往下是 feature
        @allure.feature("") 功能点的描述,理解成模块往下是 story
        @allure.story("") 故事,往下是 title
        @allure.title("") 修改在报告上显示测试用例标题的内容
        举例说明:                               
         
import allure


@allure.epic("项目名称: xxx项目")
@allure.story("第三个层级1")
@allure.story("第三个层级2")
@allure.feature("模块名: xx模块")
@allure.feature("模块名: xxx模块")
@allure.title("测试用例名称")
def test_epic012(self):
    print("层级测试.")
        一条用例可以同时用多个, 不过一般应该也用不上多个...
        还可以使用@pytest.mark.parametrize实现动态名称, 举例如下:                         
import alllure
import pytest

datas = ["1","2",3]

@allure.title("动态名称标题{test_datas}")
@pytest.mark.parametrize("test_datas",datas)
def test_dynamic001(self,test_datas):
    print(test_datas)
                                        效果:



3. 上传一个实时编写的文件
        allure.attach(body, name, allure.attachment_type, extension) 
        不是装饰器,在函数内部使用, 作用: 上传当前直接编写的附件
           参数说明:
                body: "直接写文件内容"
                name: "文件内容的名称"
                allure.attachment_type: 设置文件的格式
                extension: 忘记了,没用过,不写就行了
3.1 上传一个已经编写好的文件
        allure.attach.file(source, name, allure.attachment_type, extension)
            参数说明:           
                 source: "写需要上传的附件的文件路径, 最好写绝对路径"
                 其他参数和上面一样
                
4. 给用例添加详细描述
        @allure.description() 可以添加足够详细的测试用例描述,以便于管理层查看
        三种语法格式:
            ① @allure.description(str)
            ② 在测试用例函数声明下方添加 """ """
            ③ @allure.description_html(str):相当于传一个HTML代码组成的字符串
        上面3和4的举例说明:
import allure


@allure.description("""
这里有一个乖巧的记事本噢,是实时编写的!
""")
@allure.link("www.baidu.com",name="百度")
def test_txt():
    allure.attach("我是一个乖巧的记事本", "附件-记事本", allure.attachment_type.TEXT)
    print("测试上传附件: 是实时编写的txt")


@allure.description_html("""
<h1 style="color:skyblue;">这里是有一个已经编写好的文件附件</h1>
<p>点击下面的测试步骤就能看到拉...</p>
""")


@allure.link("https://www.sohu.com","搜狐")
def test_txt_file():
    # 当前文件的同级目录下必须已有 demo.txt 文件
    allure.attach.file("demo.txt", "附件-记事本-文件",
                       allure.attachment_type.TEXT)
    print("测试上传附件: 是已经编写好的文件")


@allure.title("三引号函数")
@allure.issue("https://www.baidu.com","Bug链接")
def test_description():
    """
    这里是用三引号写的测试描述
    """
    print("三引号")
5. 添加链接
           @allure.link(url, name)        访问链接
           @allure.issue(url, name)       BUG链接(页面多个虫子标识)
           @allure.testcase(url, name)    测试用例链接
               参数说明:
                   url是链接
                   name是显示在allure报告的名字,如果不传就是显示完整的链接

6. 标记用例等级
        @allure.severity("")
        有以下5个等级参数:
               blocker        阻塞缺陷(功能未实现,无法下一步)
               critical       严重缺陷(功能点缺失)
               normal         一般缺陷(边界情况,格式错误)
               minor          次要缺陷(界面错误与ui需求不符)
               trivial        轻微缺陷(必须项无提示,或者提示不规范)
        可以根据测试用例的重要性划分测试用例等级,如果没指定等级,默认为normal级别
        举例说明:
        
import allure

@allure.severity("blocker")
def test_login():
    print("登录")
"""
如果有很多测试用例,现在只想做个快速的回归测试,
只测试用例级别为 blocker 和 critical 级别的测试用例,
cmd命令:
"""
pytest --alluredir=./report/allure --allure-severities=blocker,critical

""" 如果只执行blocker级别的用例 """
pytest --alluredir=./report/allure --allure-severities=blocker
7. 有的装饰器也可以在测试用例内部使用, 
        allure.dynamic.feature("动态层级模块")
        举例说明:
        
import allure


def test_dynamic001(self,test_datas):
    print(test_datas)
    allure.dynamic.feature("动态层级模块")
    allure.dynamic.epic("动态层级史诗")
    allure.dynamic.story("动态层级故事")
    allure.dynamic.link("https://www.baidu.com",name="百度网址")

其他

1. 安装配置allure

        ① 首先使用命令安装: pip install allure-pytest
        ② 然后下载Allure工具: Allure命令行工具下载
                配置allure命令行工具的环境变量到bin目录下
                配置完成后验证命令:  allure --version

2. 设置allure报告的运行环境:

        ① environment.properties
        ② environment.xml (个人觉得这个有点麻烦, 用上面的就行了...)
        该文件存放目录: 和要生成json文件的目录放一块
        

目前就这些, 后面有时间会补充些常遇到的问题, 要怎么解决

待补充:

1. 生成报告后打开网页显示loading...

  • 26
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值