概述
报告主要包含总览、类别、测试套件、图表、时间刻度、功能、包等7大部分,支持自定义诸多信息,包括附件添加、缺陷链接、案例链接、测试步骤、Epic、Feature、Story、Title、案例级别等,相当强大。
allure与pytest的结合使用可以呈现完美的测试报告
总览

Allure常用装饰器
| 装饰器 | 名称 | 功能描述 | 
|---|---|---|
| @allure.epic(“测试模块_demo1”) | “史诗” | 功能块,往下再分feature、story | 
| @allure.feature(“测试模块_demo2”) | “功能” | 标注功能模块,往下分story | 
| @allure.story(“测试模块_demo3”) | “故事” | 标注features下的分支功能模块,具有相同feature或story的用例将规整到相同模块下,执行时可用于筛选 | 
| @allure.issue(“BUG号:123”) | “问题” | 问题标识,关联标识已有的问题,可为一个url链接地址 | 
| @allure.testcase(“用例名:测试字符串相等”) | “用例” | 用例标识,关联标识用例,可为一个url链接地址 | 
| @allure.severity(“critical”) | “严重级别” | 优先级,包含blocker, critical, normal, minor, trivial 几个不同的等级 | 
| @allure.step(“测试步骤”) | “测试步骤” | 测试步骤 | 
Epic、Feature、Story、Tag定制详解
四个修饰符:epic、feature、story、tag,包含关系是 从左到右,越来越小。
 1、相同的epic、feature、story汇聚在一起
 2、tag:标签
 1)可继承,方法继承类
 2)可重写,方法自身标签优先,没有再用类标签
 3)标签可以同时打多个,逗号分割
 3、只执行部分 feature/stories 的话,用下面命令
 py.test --alluredir report --allure-features=feature1,feature2 --allure-stories=story1,story2
添加Epic、Feature、Story、Tag,Report展示如下图:

 代码块
#! /usr/bin/env python
# -*-coding:utf-8-*-
 
import allure
import pytest
 
@allure.epic('allure.X--@allure.epic')
@allure.feature("Func01测试用例集合--@allure.feature")
@allure.tag('核心关注')
class TestFunc01Case(object):
    @allure.story('case01--@allure.story')
    @allure.severity('blocker')
    @allure.tag('重要的', 'bug回归')
    def test_func01_case_01(self):
        # 以下内容为测试用例描述
        u"""
        @allure.severity():包含blocker, critical, normal, minor, trivial 几个不同的等级
        Allure中对严重级别的定义:
        1、 Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
        2、 Critical级别:临界缺陷( 功能点缺失)
        3、 Normal级别:普通缺陷(数值计算错误)
        4、 Minor级别:次要缺陷(界面错误与UI需求不符)
        5、 Trivial级别:轻微缺陷(必输项无提示,或者提示不规范)
 
        """
        assert 1 == 1
Severity定制详解
@allure.severity():包含blocker, critical, normal, minor, trivial 几个不同的等级
 1、Allure中对严重级别的定义:
 1) Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
 2) Critical级别:临界缺陷( 功能点缺失)
 3) Normal级别:普通缺陷(数值计算错误)
 4) Minor级别:次要缺陷(界面错误与UI需求不符)
 5) Trivial级别:轻微缺陷(必输项无提示,或者提示不规范)
2、如果希望只跑critical和blocker这两个等级的case
 在原先命令上加上–allure-severities=critical,blocker参数
 py.test --alluredir report --allure-severities=critical,blocker -s –q
添加Severity,Report展示如下图:

 代码实现
#! /usr/bin/env python
# -*-coding:utf-8-*-
 
import allure
import pytest
 
@allure.epic('allure.X--@allure.epic')
@allure.feature("Func01测试用例集合--@allure.feature")
@allure.tag('核心关注')
class TestFunc01Case(object):
    @allure.story('case01--@allure.story')
    @allure.severity('blocker')
    @allure.tag('重要的', 'bug回归')
    def test_func01_case_01(self):
        assert 1 == 1
 
    @allure.story('case02--step、attach用法--@allure.story')
    @allure.severity('critical')
    def test_func01_case_02(self):
       pass
 
    @allure.story('case03--@allure.story')
    @allure.severity('normal')
    def test_func01_case_03(self):
        pass
 
    @allure.story('case04--issue、testcase@allure.story')
    @allure.severity('minor')
    def test_func01_case_04(self):
        pass
 
    @allure.story('case05--@allure.story')
    @allure.severity('trivial')
    def test_func01_case_05(self):
        pass
Attach、Step定制详解
1、attach:附加
 @allure.attach在报告中增加额外的信息:allure.attach(’arg1’,’arg2’,’arg3’):
 arg1:是在报告中显示的名称
 arg2:表示添加的内容
 arg3:表示添加的类型(支持类型:HTML,JPG,PNG,JSON,OTHER,TEXTXML)
 往报告中添加额外的信息
 allure.attach(‘this is an attach’,’aaaaa’)
2、step:步骤
 @allure.step在报告中增加步骤显示
有两种使用方法:
 1、@allure.step() 只能以装饰器的形式放在类或者方法上面
 2、with allure.step():可以放在测试用例方法里面,但测试步骤的代码需要被该语句包含,用于格式化输出
添加Attach、Step,Report展示如下图:

 代码实现
#! /usr/bin/env python
# -*-coding:utf-8-*-
 
import allure
import pytest
 
@allure.epic('allure.X--@allure.epic')
@allure.feature("Func01测试用例集合--@allure.feature")
@allure.tag('核心关注')
class TestFunc01Case(object):
    @allure.story('case01--@allure.story')
    @allure.severity('blocker')
    @allure.tag('重要的', 'bug回归')
    def test_func01_case_01(self):
       pass
 
    @allure.story('case02--step、attach用法--@allure.story')
    @allure.severity('critical')
    def test_func01_case_02(self):
        assert 2 == 2
        allure.attach('this is attach', 'attach用法')
        # 在报告中添加图片
        with allure.step('预期结果'):
            allure.attach.file('test.png', 'test11111', allure.attachment_type.PNG)
        with allure.step('实际结果'):
            print ('匹配')
Issue和TestCase定制详解
issue和testCase用法一样,但展示结果issue前面会有一个图标
添加Issue、TestCase,Report展示如下图:

 代码实现
#! /usr/bin/env python
# -*-coding:utf-8-*-
 
import allure
import pytest
 
@allure.epic('allure.X--@allure.epic')
@allure.feature("Func01测试用例集合--@allure.feature")
@allure.tag('核心关注')
class TestFunc01Case(object):
    @allure.story('case01--@allure.story')
    @allure.severity('blocker')
    @allure.tag('重要的', 'bug回归')
    def test_func01_case_01(self):
        pass
 
    @allure.story('case04--issue、testcase@allure.story')
    @allure.severity('minor')
    @allure.issue("https://jira.ahi-fintech.com/browse/QA-1", 'Bug链接')
    @allure.testcase("http://www.testlink.com", 'testcase链接')
    def test_func01_case_04(self):
        u"""
        issue(url, name=None)
        testcase(url, name=None)
        return link(url, link_type=LinkType.ISSUE, name=name)
        return link(url, link_type=LinkType.TEST_CASE, name=name)
        """
        pass



















