Pytest系列(18)- 超美测试报告插件之allure-pytest的基础使用
如果你还想从头学起Pytest,可以看看这个系列的文章哦!
https://www.cnblogs.com/poloyy/category/1690628.html
官方介绍
- Allure Framework是一种灵活的轻量级多语言测试报告工具,不仅可以以简洁的Web报告形式非常简洁地显示已测试的内容,也允许参与开发过程的每个人从日常测试中提取最大程度的有用信息
- 从开发/质量保证的角度来看,Allure报告可以缩短常见缺陷的生命周期:可以将测试失败划分为bug和损坏的测试,还可以配置log,step,fixture,attachments,timings,历史记录以及与TMS的集成以及Bug跟踪系统,因此负责任的开发人员和测试人员将掌握所有信息
- 从管理人员的角度来看,Allure提供了一个清晰的“全局”,涵盖了已涵盖的功能,缺陷聚集的位置,执行时间表的外观以及许多其他方便的事情
- Allure的模块化和可扩展性确保您始终能够微调某些东西,以使Allure更适合您
个人介绍
- 对于管理层来说,测试报告当然是越直观、简洁、数据清晰越好,而Allure就满足以上这么多点,而且很好的和pytest集成了
- 相比于pytest-html来说,Allure的报告真的是十全十美鸭!!
- 唯一不足的就是,拓展功能需要在测试用例集上加装饰器
安装插件
pip3 install allure-pytest -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
快速入门
这是运行代码的包结构
# 是项目文件夹名称
15allure
│ conftest.py
│ test_1.py
│ __init__.py
│
├─test_51job
│ │ conftest.py
│ │ test_case1.py
│ │ __init__.py
│
├─test_toutiao
│ │ test_case2.py
│
├─test_weibo
│ │ conftest.py
│ │ test_case3.py
│ │ __init__.py
│
最外层的conftest.py
# 外层conftest.py @pytest.fixture(scope="session")
def login():
print("====登录功能,返回账号,token===")
name = "testyy"
token = "npoi213bn4"
yield name, token
print("====退出登录!!!====")
最外层的test_1.py
import pytest @pytest.mark.parametrize("n", list(range(5)))
def test_get_info(login, n):
sleep(1)
name, token = login
print("***基础用例:获取用户个人信息***", n)
print(f"用户名:{name}, token:{token}")
test_51job包下的conftest.py
import pytest @pytest.fixture(scope="module")
def open_51(login):
name, token = login
print(f"###用户 {name} 打开51job网站###")
test_51job包下的test_case1.py
from time import sleep import pytest @pytest.mark.parametrize("n", list(range(5)))
def test_case2_01(open_51, n):
sleep(1)
print("51job,列出所有职位用例", n) @pytest.mark.parametrize("n", list(range(5)))
def test_case2_02(open_51, n):
sleep(1)
print("51job,找出所有python岗位", n)
test_toutiao包下的test_case2.py
from time import sleep import pytest @pytest.mark.parametrize("n", list(range(5)))
def test_no_fixture(login, n):
sleep(1)
print("==没有__init__测试用例,我进入头条了==", login)
test_weibo包下的conftest.py
import pytest @pytest.fixture(scope="function")
def open_weibo(login):
name, token = login
print(f"&&& 用户 {name} 返回微博首页 &&&")
test_weibo包下的test_case3.py
from time import sleep import pytest @pytest.mark.parametrize("n", list(range(5)))
class TestWeibo:
def test_case1_01(self, open_weibo, n):
sleep(1)
print("查看微博热搜", n) def test_case1_02(self, open_weibo, n):
sleep(1)
print("查看微博范冰冰", n)
执行命令
要使Allure能够在测试执行期间收集测试结果,只需添加 --alluredir 选项,并提供指向应存储结果的文件夹的路径
pytest -n auto --alluredir=allure
生成出来的结果
可以看到,这不是我们想要的结果,一堆json、txt文件....
要在测试完成后查看实际报告,需要使用Allure命令行来让测试结果生成报告
allure serve allure
然后就会自动在默认浏览器中显示生成的报告
查看suites(函数级别的测试用例)
从包名-模块名-测试用例
查看suites(类级别的测试用例)
从包名-模块名-类名-测试用例
查看测试用例详情
- parameters:如果用了 @pytest.mark.parametrize ,在右侧的parameters是可以看到传了什么参数和对应的值
- set up:调用fixture的前置操作
- tear down:调用fixture的后置操作
Allure报告结构
- Overview:总览
- Categories:类别,默认是分了failed和error,凡是执行结果是其中一个的都会被归到类里面,可以通过这里快捷查看哪些用例是failed和error的
- Suites:测试套件,就是所有用例的层级关系,可以根据package、module、类、方法来查找用例
- Graphs:测试结果图形化,包括用例执行结果的分布图,优先级,耗时等
- Timeline:可以看到测试用例精确的测试时序(执行顺序),包括执行时间
- Behaviors:行为驱动,根据epic、feature、story来分组测试用例(后面会讲到)
- Packages:这就是按照package、module来分组测试用例了
Pytest系列(18)- 超美测试报告插件之allure-pytest的基础使用的更多相关文章
- Pytest系列(13)- 重复执行用例插件之pytest-repeat的详细使用
如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 前言 平常在做功能测试的时候,经常 ...
- Pytest系列(30)- 使用 pytest-xdist 分布式插件,如何保证 scope=session 的 fixture 在多进程运行情况下仍然能只运行一次
如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 背景 使用 pytest-xdis ...
- 4.pytest结合allure-pytest插件生成allure测试报告
之前我们使用的测试报告插件是pytest-html 这次使用的插件是allure-pytest,更加美观强大 安装插件 pip3 install allure-pytest 安装allure(Mac) ...
- pytest系列(四)- pytest+allure+jenkins - 持续集成平台生成allure报告
pytest是什么 pytest是python的一款测试框架,拥有unittest的功能并比它更丰富. allure是什么 有非常多的优秀的测试框架,但却是有非常少优秀的报告工具可以展示非常清楚的用例 ...
- Allure+pytest 生成测试报告
简介: python 主流自动化测试报告插件有三个:HTMLTestRunner.BeautifulReport 和 Allure.HTMLTestRunner是一个比较古老的报告模板,界面也不是很好 ...
- Pytest系列(1) - 快速入门和基础讲解
如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 前言 目前有两种纯测试的测试框架, ...
- Pytest系列(一)初次了解
在之前,我分享过unittest系列,后来有很多人问我,能不能出pytest的教程,正好最近在整理pytest相关的资料,那么,就趁着这个机会,去和大家分享一下pytest系列. pytest是一个非 ...
- Aoite 系列(02) - 超动感的 Ioc 容器
Aoite 系列(02) - 超动感的 Ioc 容器 Aoite 是一个适于任何 .Net Framework 4.0+ 项目的快速开发整体解决方案.Aoite.Ioc 是一套解决依赖的最佳实践. 说 ...
- Java 集合系列18之 Iterator和Enumeration比较
概要 这一章,我们对Iterator和Enumeration进行比较学习.内容包括:第1部分 Iterator和Enumeration区别第2部分 Iterator和Enumeration实例 转载请 ...
随机推荐
- kerberos系列之zookeeper的认证配置
本篇博客介绍配置zookeeper的kerberos配置 一.zookeeper安装 1.解压安装包和重命名和创建数据目录 tar -zxvf /data/apache-zookeeper-3.5.5 ...
- 微信小程序开发(四)学习基本组件
现在我们已经学会使用工具了,再来了解,测试一下微信小程序的常用组件,所谓组件,就是微信团队已经开发好的一些常用标签,我们只需要掌握用法就可以了,当然,以后学得深入了,也可以开发自己的组件,让其他人使用 ...
- XML的概述,.Dom4解析和SAX解析
1.什么是XML XML 指可扩展标记语言(EXtensible Markup Language) html(hyper text markup langauge) XML 是一种标记语言,很类似 H ...
- python中使用openpyxl模块时报错: File is not a zip file
python中使用openpyxl模块时报错: File is not a zip file. 最大的原因就是不是真正的 xlsx文件, 如果是通过 库xlwt 新建的文件,或者是通过自己修改后缀名 ...
- mybatis高级应用(四)_逆向工程
1 逆向工程 源码请参考:云盘下工程 generatorSqlmapCustom 1.1 什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单 ...
- django中间件 csrf auth认证
django中间件 能做全局访问频率限制,身份校验,黑名单,白名单 用法: 新建一个文件夹,文件夹新建一个py文件,文件中写如下代码 注意点:你写的类必须继续MiddlewareMixin from ...
- leetcode 签到 面试题40. 最小的k个数
题目 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 1: 输入:arr = [3,2,1], k = ...
- 一个完整的机器学习项目在Python中演练(四)
大家往往会选择一本数据科学相关书籍或者完成一门在线课程来学习和掌握机器学习.但是,实际情况往往d是,学完之后反而并不清楚这些技术怎样才能被用在实际的项目流程中.就像你的脑海中已经有了一块块" ...
- 编译原理:DFA最小化,语法分析初步
1.将DFA最小化:教材P65 第9题 解析: 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 解析: S→ 0A|1B →S → 0(1S|1)|1(0S|0 ...
- 初学jQuery使用方法
jQuery引用 <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></scri ...