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目的是先清空测试报告目录,再生成新的测试报告。