这一节主要是记录allure的内容以及用法,怎么让他生成一个完整的想要的报告。
allure生成的报告和其他五花八门的报告对比了一下,它的可读性是最好、最直观的。这不仅仅是我想要的效果,也是很多小伙伴想要的结果,毕竟这是给领导看,而且也算是自己老大成果的汇总。
一、Allure相关的内容:
| Allure用例描述 | ||
| 使用方法 | 参数值 | 参数说明 |
| @allure.epic() | epic描述 | 定义项目、当有多个项目是使用。往下是feature |
| @allure.feature() | 模块名称 | 用例按照模块区分,有多个模块时给每个起名字 |
| @allure.story() | 用例名称 | 一个用例的描述 |
| @allure.title(用例的标题) | 用例标题 | 一个用例标题 |
| @allure.testcase() | 测试用例的连接地址 | 自动化用例对应的功能用例存放系统的地址 |
| @allure.issue() | 缺陷地址 | 对应缺陷管理系统里边的缺陷地址 |
| @allure.description() | 用例描述 | 对测试用例的详细描述 |
| @allure.step() | 操作步骤 | 测试用例的操作步骤 |
| @allure.severity() | 用例等级 | blocker 、critical 、normal 、minor 、trivial |
| @allure.link() | 定义连接 | 用于定义一个需要在测试报告中展示的连接 |
| @allure.attachment() | 附件 | 添加测试报告附件 |
总共主要的就以上这些,常用的大概有一半吧 。
二、对于这其中常用的做一些使用实例:
代码结构:

登录是一个前置操作 ,拿出来后单独存放,loging.py文件内容:
-
# __*__coding:utf-8 __*__ -
import allure -
@allure.step("操作步骤: 登录") -
def longin(): -
'''登录操作''' -
print("这个是登录的接口")
conftest.py这个文件主要放一些公共的内容
-
# __*__coding:utf-8 __*__ -
import pytest -
from common_contion.loging import longin -
@pytest.fixture(scope="session") -
def login_fixture(): -
longin() -
print("这个是前置操作:登录")
case----test_case.py文件主要存放一些测试用例,内容如下:
-
# __*__coding:utf-8 __*__ -
import pytest -
import allure -
from common_contion.dome_Interface import * -
@allure.severity("blocker") -
@allure.epic("项目名称: 会所资源管理系统") -
@allure.issue("http://149.335.82.12:8080/zentao/bug-view-1.html") # 禅道bug地址 -
@allure.testcase("http://149.335.82.12:8080/zentao/testcase-view-5-1.html") # 禅道用例连接地址 -
@allure.feature("房间管理模块") -
class Testdome1(object): -
def test_dome_1(self,login_fixture): -
'''用例一的用例描述: 我是第一个用例,我只有一个步骤''' -
print("第一个测试用例") -
jieko_dome_1() -
def test_dome_2(self,login_fixture): -
'''用例二的用例描述: 我是第二个用例,我只有一个步骤''' -
print("第二个测试用例") -
jieko_dome_2() -
@allure.severity("critical") -
@allure.epic("项目名称: 会所资源管理系统") -
@allure.feature("资源管理模块") -
@allure.story("用例的标题: 对会所资源进行增、删、改、查") -
@allure.issue("http://149.335.82.12:8080/zentao/bug-view-1.html") # 禅道bug地址 -
@allure.testcase("http://149.335.82.12:8080/zentao/testcase-view-5-1.html") # 禅道用例连接地址 -
class Testdome3(object): -
def test_dome_3(self,login_fixture): -
'''用例三的用例描述: 我是第三个用例,我是有多个步骤;''' -
print("第三个测试用例") -
f = jieko_dome_3() -
f.jieko_dome_3_1() -
f.jieko_dome_3_2() -
f.jieko_dome_3_3() -
f.jieko_dome_3_4()
common_contion----dome_Interface.py文件主要存放用例相关的接口内容:
-
# __*__coding:utf-8 __*__ -
import allure -
def jieko_dome_1(): -
'''用例描述: 用例一的接口''' -
print("这个是第一个用例对应的接口") -
def jieko_dome_2(): -
'''用例描述: 用例二的接口''' -
print("这个是第二个用例对应的接口") -
@allure.feature("资源管理模块") -
class jieko_dome_3(object): -
'''这个是一个模块的测试''' -
@allure.step("操作步骤: 新增资源个人信息") -
def jieko_dome_3_1(self): -
'''用例描述: 用例三的新增内容接口''' -
print("这个是第三个用例对应的接口一") -
@allure.step("操作步骤: 查询资源在线信息") -
def jieko_dome_3_2(self): -
'''用例描述: 用例三的查询内容接口''' -
print("这个是第三个用例对应的接口二") -
@allure.step("操作步骤: 修改资源身份信息") -
def jieko_dome_3_3(self): -
'''用例描述: 用例三的编辑内容接口''' -
print("这个是第三个用例对应的接口三") -
@allure.step("操作步骤: 删除资源全部信息") -
def jieko_dome_3_4(self): -
'''用例描述: 用例三的删除内容接口''' -
print("这个是第三个用例对应的接口四")
三、执行测试用例:
命令行模式执行用例
1、pytest --alluredir ./reopore/allure_row_1
执行结果:

会在工程中生成一个 /reopore/allure_row_1的文件,如图:

2、dome>allure serve reopore/allure_row_1
执行命令后将收集的数据加载到allure报告中,执行结果:

会自动使用默认浏览器打开报告
报告样式展示如下:



以上就是allure的各种装饰器加载后展示的报告的样式了。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。










