Allure+pytest生成测试报告

简介:

python 主流自动化测试报告插件有三个:HTMLTestRunner、BeautifulReport 和 Allure。HTMLTestRunner是一个比较古老的报告模板,界面也不是很好看。BeautifulReport  界面很简洁,看起来也很直观,是一款比较不错的报告插件。如果你想提升一下你的level,让你的自动化测试报告变得高大上,那么请选择 Allure 。

Allure测试报告介绍

Allure是一款非常轻量级并且非常灵活的开源测试报告生成框架。 它支持绝大多数测试框架, 例如TestNG、Pytest、JUint等。它简单易用,易于集成。

Pytest框架集成Allure

Pytest是Python的单元测试框架,非常方便和易用。强烈推荐对于用Python进行测试工作的小伙伴使用这个测试框架,相比与Python自带的UnitTest好用太多太多。后面我将用一整篇文章介绍Pytest测试框架。今天我们主要是介绍如何将测试报告生成工具Allure集成到Pytest中。


1.Allure 下载安装

Allure 下载最新版本:https://github.com/allure-framework/allure2/releases

下载完成之后,解压到 pytest 目录中。然后设置环境变量,简单一点就是进入 \allure-2.13.0\bin 目录执行 allure.bat 。cmd 输入 allure 查看环境变量是否设置成功。

2. allure-pytest

下载 allure-pytest 插件,用来生成 Allure 测试报告所需要的数据。

pip3 install allure-pytest

 案例

复制代码
#!/usr/bin/env python
# coding=utf-8
import pytest
import allure
import os

@pytest.fixture(scope='function')
def login():
    print("登录")
    yield
    print("登录完成")

@allure.feature('加入购物车')
def test_1(login):
    '''将苹果加入购物车'''
    print("测试用例1")

@allure.feature('加入购物车')
def test_2():
    '''将橘子加入购物车'''
    print("测试用例2")

if __name__ =="__main__":
    # 执行pytest单元测试,生成 Allure 报告需要的数据存在 /temp 目录
    pytest.main(['--alluredir', './temp'])
    # 执行命令 allure generate ./temp -o ./report --clean ,生成测试报告
    os.system('allure generate ./temp -o ./report --clean') 
复制代码

@allure 装饰器中的一些功能点:

@allure.feature :用于定义被测试的功能,被测产品的需求点
@allure.story : 用于定义被测功能的用户场景,即子功能点
@allure.step :用于将一个测试用例,分成几个步骤在报告中输出
allure.attach : 用于向测试报告中输入一些附加的信息,通常是一些测试数据信息

3、生成Allure测试报告

3.1 执行测试脚本

测试脚本中添加了Allure特性之后,在执行测试的时候需要先生成Allure报告所需要的测试结果数据。在py.test执行测试的时候,指定–alluredir选项及测试数据保存的目录即可:

  $ py.test test/ --alluredir ./result/

./result/中保存了本次测试的结果数据。另外,还可以执行指定features或者stories执行一部分测试用例,比如执行‘购物车功能’下的‘加入购物车’子功能的测试用例:

$ py.test test/ --allure_features='购物车功能' --allure_stories='加入购物车'

  运行完成后会在指定目录下生产xml报告

3.2 生成测试报告

安装完成后,通过下面的命令将./result/目录下的测试数据生成测试报告:

 $ allure generate ./result/ -o ./report/ --clean

这样在./report/目录下就生成了Allure的测试报告了。–clean目的是先清空测试报告目录,再生成新的测试报告。

3.3 打开测试报告

猜你喜欢

转载自www.cnblogs.com/kuaileya/p/12035007.html