![1c19223a0bd18f2137c435149b5e1d57.png](https://img-blog.csdnimg.cn/img_convert/1c19223a0bd18f2137c435149b5e1d57.png)
文 | Crisimple 出处 | 掘金
严格意义上讲 Allure 不算是测试框架,但是它是生成漂亮测试报告的开源工具,搭配 Pytest 测试框架食用更搭。
也就是说 Allure 是在 Pytest 执行完生成的测试数据的基础上,对测试数据进行处理统计,生成格式统一、美观的测试报告。
一、Allure初识
1. 什么是 Allure
Allure 是由Qameta Software团队开源的一款旨在于解决让每个人能更容易生成并更简洁阅读的测试报告框架。它支持大多数的测试框架,如:Pytest、TestNG等,简单易用便于集成。
2. Allure环境搭建
工欲善其事必先利其器,Allure 框架基于其他的测试框架使用,例如:Pytest。
# windows env
source env/Scripts/activate
# 安装 pytest 和 pytest-allure-adaptor
pip3 install pytest
# Allure Pytest Adaptor是Pytest的一个插件(比较旧的一个插件)
# allure-pytest 比较新一点,建议使用
pip3 install pytest-allure-adaptor
pip3 instal allure-pytest
# 安装Allure工具,主要是讲pytest的测试数据转换成HTML数据
# linux环境安装
# 现将allure源添加到linux的源里
sudo apt-add-repository ppa:qameta/allure
# 更新本地源
sudo apt-getupdate
# 安装allure,[allure无法使用的解决方案](https://askubuntu.com/questions/1168821/allure-report-installed-but-not-findable)
sudo apt-getinstall allure
# 上面的方法不行的话,用下面的方法
curl -o allure-2.6.0.tgz-Lshttps://dl.bintray.com/qameta/generic/io/qameta/allure/allure/2.6.0/allure-2.6.0.tgz
sudo tar -zxvf allure-2.6.0.tgz-C /opt/
sudo ln -s /opt/allure-2.6.0/bin/allure /usr/bin/allure
allure --version
# Windows 下安装就麻烦点,可以使用 Scoop 工具(Chocolatey工具不知道为什么安装不了),不管了官方推荐使用 Scoop 安装就使用 Scoop 安装得了
# 先安装[Scoop](https://juejin.im/entry/5def7a2ff265da33f2164048/detail)
# 检查sccop是否安装成功
scoop --version
# 安装 allure
scoop install allure
# 查看allure是否安装成功
allure --version
二、Pytest集成Allure
Allure要生效需要在测试文件和测试通配文件(conftest.py)中配置 allure。
1. allure的特性
Aullre的几个特性:
@allure.feature # 用于定义被测试的功能,被测产品的需求点
@allure.story # 用于定义被测功能的用户场景,即子功能点
withallure.step # 用于将一个测试用例,分成几个步骤在报告中输出
allure.attach # 用于向测试报告中输入一些附加的信息,通常是一些测试数据信息
@pytest.allure.step # 用于将一些通用的函数作为测试步骤输出到报告,调用此函数的地方会向报告中输出步骤
2. pytest集成allure
测试文件示例,生成测试数据,进一步生成 allure 测试报告
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@File : test_allure_shopping.py
@Time : 2019/12/1017:34
@Author : Crisimple
@Github : https://crisimple.github.io/
@Contact : Crisimple@foxmail.com
@License : (C)Copyright 2017-2019, Micro-Circle
@Desc : None
"""
importpytest
importallure
# allure.feature 定义功能
@allure.feature("报告购物车")
classTestAllure(object):
# 定义用户场景
@allure.story("加入购物车")
deftest_add_goods_cart(self):
# 调用步骤函数
login("crisimple