目录

  1. Allure生成测试报告
    1. 1 什么是Allure?
    2. 2 Allure的安装
    3. 3 Allure的几个特性
    4. 4 基本使用方法
      1. 1、pytest生成测试报告相关数据:
      2. 2、allure通过数据生成测试报告
    5. 5 成功生成报告
    6. 6 其他用法
      1. 6.1 Allure和Pytest的联合使用
  2. 遇到的坑
    1. 1、无法找到模块
    2. 2、Allure迷惑(待解决)

Allure生成测试报告

必看(本文参考文档,不再一一标注):

官方文档:Allure Framework (qameta.io)

学习文档:

Python测试框架–Allure - 掘金 (juejin.cn)

1 什么是Allure?

2 Allure的安装

方法一:

1
pip install allure-pytest

方法二:

在setting中安装到当前项目allure.png

方法三:

Releases · allure-framework/allure2 (github.com)

先下载安装包,解压后,将bin目录放进系统环境变量path中
cmd中输入allure --help查看是否安装成功

3 Allure的几个特性

1
2
3
4
5
@allure.feature # 用于定义被测试的功能,被测产品的需求点
@allure.story # 用于定义被测功能的用户场景,即子功能点
with allure.step # 用于将一个测试用例,分成几个步骤在报告中输出
allure.attach # 用于向测试报告中输入一些附加的信息,通常是一些测试数据信息
@pytest.allure.step # 用于将一些通用的函数作为测试步骤输出到报告,调用此函数的地方会向报告中输出步骤

@allure.feature用在class前面,一个class包含了是功能点

4 基本使用方法

pytest+allure的使用有两个步骤:

1、pytest生成测试报告相关数据:

aaa4-50.png

--alluredir参数:执行全部的测试用例,收集测试执行期间的结果,指定收集到的位置(相对/绝对)

执行部分测试用例,可以指定参数--allure_features="报告购物车"

例子:

(来源:Python测试框架–Allure),这里就直接拿来用了,建议看全文,写得特别好)

1
2
3
4
5
# 执行全部的测试用例
pytest ./Allure/test_allure_shoping.py --alluredir ./Allure/result/

# 执行指定features或者stories执行一部分测试用例,比如执行‘报告购物车’下的‘加入购物车’子功能的测试用例
pytest ./Allure/test_allure_shopping.py --allure_features="报告购物车" --allure_stories="加入购物车" ../Allure/part_result/

翻译一下:

1
pytest test文件路径 --aluredir 生成测试报告的数据的路径

2、allure通过数据生成测试报告

方法一

allure serve /tmp/my_allure_results:从指定位置生成测试报告,会直接弹出网页打开测试报告

方法二

1
2
3
4
5
# 生成测试报告
allure generate ./Alluer/result/ -o ./Allure/report/ --clean

# 打开测试报告
allure open -h 127.0.0.1 -p 8083 ./Allure/report/

生成测试报告的翻译:

1
allure generate 刚刚用pytest生成的测试数据的位置 -o 生成的测试报告的位置并清空该文件夹(清除原有数据)

5 成功生成报告

allure0.png

未命名图片.png

6 其他用法

参考来源:Allure Framework (qameta.io)

6.1 Allure和Pytest的联合使用

1、xfail

1
2
3
4
@pytest.mark.xfail(condition=lambda: True, reason='this test is expecting failure')
def test_xfail_expected_failure():
"""this test is an xfail that will be marked as expected failure"""
assert False

2、笔记待补充

遇到的坑

1、无法找到模块

错误信息:

1
E   ModuleNotFoundError: No module named 'requests_project'

ModuleNotFoundError: No module named ‘xxx’可能的解决方案大全

我的requests_project 没有 __init__.py

2、Allure迷惑(待解决)

在安装Allure使用方法一、方法二时,会出现

1
2
3
4
5
6
allure : 无法将“allure”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,   
然后再试一次。
所在位置 行:1 字符: 1
+ ~~~~~~
+ CategoryInfo : ObjectNotFound: (allure:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

暂时没找到原因,及解决办法。

直接下载安装包(安装方法三)可以生成测试报告