从0开始python学习-34.pytest常用插件

目录

1. pytest-html:生成HTML测试报告

2.pytest-xdist:并发执行用例

3. pytest-order:自定义用例的执行顺序

4. pytest-rerunfailures:用例失败时自动重试

5. pytest-result-log:用例执行结果记录到日志文件


1. pytest-html:生成HTML测试报告

文档:Installation — pytest-html documentation

安装:pip install pytest-html -U

运行:

ini中配置: addopts = --html ./report/report.html

main方法:pytest.main(['-vs','--html=./report/report.html'])

直接运行:pytest --html=./report/report.html --self-contained-html

2. pytest-xdist:并发执行用例

文档:https://pytest-xdist.readthedocs.io/en/stable/

安装:pip install pytest-xdist -U

运行:pytest -n {0,1,2,3,4,5.....n, auto},示例:pytest -n auto(auto可以自动检测到系统的CPU数量,使用auto等于就是使用所有的CPU来进行执行用例,此时CPU占有率很高)

注意:

1. 进程数量不要超过文件的数量,同一个文件中的用例,会在同一个进程中执行

2. 进程数量不要超过CPU的数量

pytest-xdist默认是无序执行的,可以通过 --dist 参数来控制顺序

--dist=loadscope:将按照同一个模块 module 下的函数和同一个测试类 class 下的方法来分组,然后将每个测试组发给可以执行的 worker,确保同一个组的测试用例在同一个进程中执行。目前无法自定义分组,按类 class 分组优先于按模块 module 分组

--dist=loadfile:按照同一个文件名来分组,然后将每个测试组发给可以执行的 worker,确保同一个组的测试用例在同一个进程中执行

3. pytest-order:自定义用例的执行顺序

文档:https://pytest-order.readthedocs.io/en/latest/

安装:pip install pytest-order -U

order后面的参数为大于等于0的正整数,可以不是顺序排的,只要排序数值之间有顺序就行

@pytest.mark.order(0)
def test_a():
    print('a')
@pytest.mark.order(7)
def test_b():
    print('b')
@pytest.mark.order(1)
def test_c():
    print('c')

4. pytest-rerunfailures:用例失败时自动重试

文档:https://github.com/pytest-dev/pytest-rerunfailures

安装: pip install pytest-rerunfailures -U

运行:--reruns n --reruns-delay m

--reruns n(重新运行次数),--reruns-delay m(下次测试重新开始之前等待的秒数)

5. pytest-result-log:用例执行结果记录到日志文件

文档:https://mp.weixin.qq.com/s/cp3rdKJb0Eglz0jIhZ6ZHw

安装:pip install pytest-result-log -U

注意:-k未选中、skip跳过、fixture错误等原因,有没有执行的用例,无法在日志记录结果的

运行:ini中进行配置

; 日志保存目录
log_file = ./pytest.log
; 记录日志等级:1. CRITICAL:严重错误,表示系统无法继续运行。
;2. ERROR:错误,但不影响系统运行。
;3. WARNING:警告,表示存在可能会导致错误的情况。
;4. INFO:信息,用于记录系统运行过程中的重要信息。
;5. DEBUG:调试信息,用于记录详细的系统执行过程。
;6. NOTSET:没有设置日志等级,表示输出所有日志信息。
log_file_level = info
# 记录日志时间
log_file_format = %(levelname)-8s %(asctime)s [%(name)s:%(lineno)s] : %(message)s
log_file_date_format = %Y-%m-%d %H:%M:%S
 # 控制是否记录结果,1记录,0不记录
result_log = 1
# 控制是否记录分割线,1记录,0不记录
result_log_separator = 1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/136632.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C进阶-编译环境与预处理

本章重点: 程序的翻译环境 程序的执行环境 详解:C语言程序的编译链接 预定义符号介绍 预处理指令#define 宏和函数的对比 预处理操作符#和##的介绍 命令定义 预处理指令#include 预处理指令#undef 条件编译 1. 程序的翻译环境和执行环境 在ANSI C的任何一…

江西开放大学引领学习新时代:电大搜题助力学子迈向成功

江西开放大学(简称江西电大)一直以来致力于为学子提供灵活便捷的学习服务。近年来,携手电大搜题微信公众号,江西开放大学以其卓越的教学质量和创新的教学手段,为广大学子开启了一扇通向成功的大门。 作为一家知名的远…

2.如何实现API统一响应-web组件篇

文章目录 1. 统一响应1.1 CommonResult 1. 统一响应 前端调用api接口获得统一的响应: 成功,返回成功的状态码和数据;失败,返回失败的状态码和错误提示。 在标准的 RESTful API 的定义,是推荐使用 HTTP 响应状态码 (…

物联网AI MicroPython学习之语法 network网络配置模块

学物联网,来万物简单IoT物联网!! network介绍 模块功能: 用于管理Wi-Fi和以太网的网络模块参考用法: import network import time nic network.WLAN(network.STA_IF) nic.active(True) if not nic.isconnected():…

栈和队列:栈

栈的概念: 栈: 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。 栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。…

如何爬取 python 进行多线程跑数据的内容

下是一个使用 Rust 编写的爬虫程序,用于爬取 python 进行多线程跑数据的内容。这个爬虫使用代理信息进行网络请求,并使用了 Rust 的 async-std 库进行异步编程。 use async_std::net::{TcpStream, TcpListener}; use async_std::io::{BufReader, BufWri…

grpc使用教程

准备 1,安装grpc go get -u google.golang.org/grpc2, 安装go语言protobuf生成器protoc-gen-go go get -u google.golang.org/protobuf/cmd/protoc-gen-go3, 通过下面连接,找到合适版本并安装protoc工具,如windows选择 protoc-3.19.5-win64.…

指标体系:洞察变化的原因

一、指标概述 指标体系是指根据运营目标,整理出可以正确和准确反映业务运营特点的多个指标,并根据指标间的联系形成有机组合。 指标体系业务意义极强,所有指标体系都是为特定的业务经营目的而设计的。指标体系的设计应服从于这种目的&#x…

从0开始python学习-33.夹具@pytest.fixture(scope=““,params=““,autouse=““,ids=““,name=““)

目录 1. 创建夹具 1.1 pytest方式 1.2 unittest方式 2. 使用夹具 2.1 通过参数引用 2.2 通过函数引用 3. 参数详解 3.1 scope:作用域 3.2 params-参数化 3.3 autouseTrue表示自动使用,默认为False 3.4 ids:设置变量名 3.5 name&am…

电脑版微信收到的图片怎么样自动保存到指定文件夹中?

8-5 在平时的工作中,如果你每天都需要接收并保存很多同事发来的图片,如何实现自动保存在微信上接收到的图片呢?本文的方法也许适合你,它可以自动把微信上收到的图片、视频、文件帮你保存到指定地方,可以大大地提高工作…

算法之双指针

双指针算法的作用 双指针算法是一种使用2个变量对线性结构(逻辑线性/物理线性),进行操作的算法,双指针可以对线性结构进行时间复杂度优化,可以对空间进行记忆。 双指针算法的分类 1.快慢指针 2.滑动窗口 3.左右指针 4.前后指针 双指针OJ题目…

优秀智慧园区案例 - 中建科技产业园(中建·光谷之星),万字长文解析先进智慧园区建设方案经验

一、项目背景 中建科技产业园(中建光谷之星),位于武汉光谷中心城、中国(湖北)自贸试验区武汉片区双核心区,光谷发展主轴高新大道北侧,建筑面积108万平米,是中建三局“中建之星”和“…

基于飞蛾扑火算法优化概率神经网络PNN的分类预测 - 附代码

基于飞蛾扑火算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于飞蛾扑火算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于飞蛾扑火优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

深度解剖Linux权限的概念

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:牢记Linux权限的概念。 > 毒鸡汤:你…

ftp服务器(filezilla服务端软件)下载、安装、使用

下载 通过360软件管家下载 输入filezilla,点击搜索,点击安装 修改安装路径 等待安装完成 配置服务端 启动配置 双击打开,点击软件中间按钮 不用输入密码,因为安装的时候没有设置密码 如果在安装的时候设置了密码,…

Java中的7大设计原则

在面向对象的设计过程中,首先需要考虑的是如何同时提高一个软件系统的可维护性和可复用性。这时,遵从面向对象的设计原则,可以在进行设计方案时减少错误设计的产生,从不同的角度提升一个软件结构的设计水平。 1、单一职责 一个类…

由浅入深学习统计学 - 常用统计图形学习

学习笔记 第一章- 信息图形化 图形化(可视化) 在一堆数据中,自己发现了这些数据的规律,但是无法表述给其他人知道,图形化就是便于他人理解数据的规律的展示的手段。 或者说我们也可以从统计的数据图形中发现某些没有…

数据结构之带头双向循环链表

前言: 前面我们已经学习了顺序表和单链表,那么我们今天来学习数据结构中的另外一个线性表——带头双向循环链表。 带头双向循环链表: 头结点:带头也就是我们常说的“哨兵位”,头结点其中不存放任何的数据。哨兵位的存在…

【23种设计模式】依赖倒置原则

个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…

Linux之gdb

gdb就是一个Linux的调试工具,类似与vs里面的调试 可执行程序也有格式,不是简单的二进制堆砌