Python+pytest生成完美Allure报告入门
Posted 软件测试自动化测试
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python+pytest生成完美Allure报告入门相关的知识,希望对你有一定的参考价值。
目录
一、Allure的安装及快速入门
1、Allure介绍
Allure是一款非常轻量级并且非常灵活的开源测试报告生成框架。 Allure 是一个独立的报告插件,生成美观易读的报 告,它支持绝大多数测试框架, 例如TestNG、Pytest、JUint等。它简单易用,易于集成。
官网:http://allure.qatools.ru
帮助文档:https://docs.qameta.io/allure/
2、Allure安装
(1)安装python插件
- 使用命令安装
- $ pip3 install allure-pytest
- 下载源码安装
- https://pypi.org/project/allure-pytest
(2)安装allure
- 下载: https://bintray.com/qameta/generic/allure2
- 前置条件:已部署java环境
- 解压缩到一个目录(不经常动的目录)
- 将压缩包内的 bin 目录配置到 path 系统环境变量
- 在命令行中敲 allure 命令,如果提示有这个命令,即为成功
3、allure使用
(1)示例代码
pytest.ini
[pytest]
# 添加行参数
addopts = -s --alluredir ./report/result
# 文件搜索路径
testpaths = ./scripts
# 文件名称 python_files = test_*.py
# 类名称
python_classes = Test*
# 方法名称 python_functions = test_*
allure_test1.py
import pytest
@pytest.fixture()
def sample():
print('打印输出sample')
def test_01(sample):
print('test1')
def test_02():
print('test2----')
def test_03(sample):
print('test3----')
if __name__ == '__main__':
pytest.main(['allure_test1.py'])
运行结果,查看report/result目录
生成html,运行命令: $ allure generate report/result -o report/html --clean
使用火狐浏览器访问index.html,不要使用谷歌(谷歌是loading)
生成在线 allure serve report/result
二、Allure 详解
1、title 标题
可以自定义用例标题,标题默认为函数名。@allure.title
(1)示例
import allure
import pytest
@allure.title("用例标题0")
def test_0():
pass
@allure.title("用例标题1")
def test_1():
pass
2、description 描述
可以添加测试的详细说明
(1)示例
@allure.title("用例标题0")
@allure.description("这里是对test_0用例的一些详细说明")
def test_0():
pass
@allure.title("用例标题1")
def test_1():
"""
test_1的描述
"""
pass
@allure.title("用例标题2")
def test_2():
pass
3、标签 @allure.feature
(1)示例
@allure.feature('这里是一级标签:test')
class TestAllure:
@allure.title("用例标题0")
@allure.description("这里是对test_0用例的一些详细说明")
def test_0(self):
pass
@allure.title("用例标题1")
def test_1(self):
pass
@allure.title("用例标题2")
def test_2(self):
pass
4、标签@allure.story
(1)示例
@allure.feature('这里是一级标签:test')
class TestAllure:
@allure.title("用例标题0")
@allure.description("这里是对test_0用例的一些详细说明")
@allure.story("这里是二级标签:test_0")
def test_0(self):
pass
@allure.story("这里是二级标签:test_1")
@allure.title("用例标题1")
def test_1(self):
pass
@allure.story("这里是二级标签:test_2")
@allure.title("用例标题2")
def test_2(self):
pass
5、 标签 @allure.severity
定义用例的级别,Graphs主要有BLOCKER,CRITICAL,MINOR,NORMAL,TRIVIAL等几种类型,默认是NORMAL。
(1)示例
@allure.feature('这里是一级标签:test')
class TestAllure:
@allure.severity(allure.severity_level.BLOCKER)
@allure.title("用例标题0")
@allure.description("这里是对test_0用例的一些详细说明")
@allure.story("这里是二级标签:test_0")
def test_0(self):
pass
@allure.severity(allure.severity_level.CRITICAL)
@allure.story("这里是二级标签:test_1")
@allure.title("用例标题1")
def test_1(self):
pass
@allure.severity(allure.severity_level.NORMAL)
@allure.story("这里是二级标签:test_2")
@allure.title("用例标题2")
def test_2(self):
pass
只运行指定级别的用例 --allure_severities=critical,blocker
6、 动态生成allure.dynamic
可以使用函数体内的数据动态生成
(1)示例
params_1="name":"动态获取test1","method":"post","url":"http://www.baidu.com"
params_2="name":"动态获取test2","method":"get","url":"http://www.baidu.com"
@allure.title("用例标题0")
@allure.severity(severity_level=allure.severity_level.CRITICAL)
def test_0():
pass
@allure.title("用例标题1")
def test_1():
pass
@pytest.mark.parametrize("params",[params_1,params_2])
def test_2(params):
allure.dynamic.title(params["name"])
三、Allure应用接口
#allure
#sheet名称 feature 一级标签
allure.dynamic.feature(sheet_name)
#模块 story 二级标签
allure.dynamic.story(case_model)
#用例ID+接口名称 title
allure.dynamic.title(case_id+case_name)
#请求URL 请求类型 期望结果 实际结果描述
四、Allure报告自动生成
(1)配置文件pytest.ini
增加生成allure属性 addopts = -s --alluredir ./report/result
(2)生成html格式报告
代码实现自动生成html报告
import os import subprocess def init_report(): cmd = "allure generate report/result -o report/html --clean" subprocess.call(cmd, shell=True) res_path= os.path.abspath(os.path.dirname(__file__)) report_path = res_path + "/report/" + "index.html"
(3)设置程序主运行函数
run.py
if __name__ == '__main__': report_path = Conf.get_report_path()+os.sep+"result" report_html_path = Conf.get_report_path()+os.sep+"html" pytest.main(["-s","--alluredir",report_path])
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接免费拿走:
① 2000多本软件测试电子书(主流和经典的书籍应该都有了)
② 软件测试/自动化测试标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python编程语言、API接口自动化测试、web自动化测试、App自动化测试(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
上图的资料 在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)
可以自助拿走,群号953306497(备注“csdn111”)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。
以上是关于Python+pytest生成完美Allure报告入门的主要内容,如果未能解决你的问题,请参考以下文章
python学习-pytest-Pytest集成Allure生成测试报告
pytest+allure(allure-pytest基于这个插件)生成漂亮的报告+显示