当前位置: 首页 > news >正文

pytest运行用例的常见方式及参数

标题pytest运行用例方式及参数

用例结构目录

在这里插入图片描述

“”"
在最外层目录下执行所有的用例
参数说明:
-s:显示用例的打印信息
-v:显示用例执行的详细信息
–alluredir:指定allure报告的路径
–clean-alluredir:清除allure报告的路径
-n:指定并发的进程数
-x:出现一条用例失败就停止执行
–maxfail:指定最大失败用例数
–reruns:指定用例失败重跑次数
–reruns-delay:指定用例失败重跑的间隔时间
–m:指定用例的标记表达式
-k:(keywords)指定用例的关键字表达式,可以使用and、or、not进行组合.例如用例包含了success,但是不包含failed的用例 ‘-k’,‘success’
“”"
import pytest

# 运行所有用例

pytest.main([‘-s’, ‘-v’])

# 运行指定用例:运行登录用例

pytest.main([‘-s’, ‘-v’, ‘./test_login.py’])

print(“运行指定模块用例完成***”)

# 运行制定的用例模块下的某个用例,使用两个冒号作为分隔符

pytest.main([‘-s’, ‘-v’, ‘./test_login.py::TestLogin::test_login_01’])

print(“运行指定某个用例完成***”)

# 分布式运行 依赖pytest-xdist插件

time_start = time.time()

pytest.main([‘-s’, ‘-v’, ‘./test_login.py’])

time_end = time.time()

print(“分布式运行总耗时:”, time_end - time_start)

print(“运行分布式用例前完成***”)

# 分布式运行[‘-n’,‘2’] -n 表示使用分布式,后面的数字表示并发的进程数;注意多线程的时候,是按顺序分配。两个线程则是,1.3.5 :2.4.6

time_start = time.time()

pytest.main([‘-s’, ‘-v’, ‘-n’, ‘2’, ‘./test_login.py’])

time_end = time.time()

print(“分布式运行总耗时:”, time_end - time_start)

print(“运行分布式用例完成***”)

# 失败用例重跑, -reruns 2 表示失败重跑2次 依赖pytest-rerunfailures插件

pytest.main([‘-s’, ‘-v’, ‘–reruns’, ‘2’, ‘./test_login.py’])

print(“运行失败重跑用例完成***”)

# -x 表示出现一条用例失败就停止执行,执行失败了就停止运行

pytest.main([‘-s’, ‘-v’, ‘-x’, ‘./test_login.py’])

print(“运行用例失败就停止执行完成***”)

**************************************************************************************************************

上面是all run 文件运行的命令。也可以在终端里面输入对应的命令执行测试

第三种执行方式:pytest.ini 文件,将需要执行的用例信息配置到pytest.ini文件中,main()中存在其他参数时,还是会先读取配置,这种优先级最高!!!

注意:文件的编码方式需要使用ANSI编码格式

“”"
pytest.ini 文件内容如下:
[pytest]

参数,多个参数使用空格分开

addopts = -v -s --html ./report/report.html

用例路径

testpaths = testcase

用例文件

python_files = test*.py

用例类

python_classes = Test*

用例方法

python_functions = test*

分组执行方式:pytest.ini 文件

markers =
smoke:冒烟测试
login:登录测试
register:注册测试

执行方式:pytest.main([‘-v’,‘-m’,‘smoke’])

执行方式:pytest.main([‘-v’,‘-m’,‘login’])

这里可以修改默认的方式,例如文件是AAA*.py

“”"

# 分组执行用例:冒烟,标记smoke ,要配合用例文件中的pytest.mark.smoke使用

pytest.main([‘-v’, ‘-m’, ‘smoke’])

# 分组执行用例:登录,标记login.smoke,多个分组执行用or 链接

pytest.main([‘-v’, ‘-m’, ‘smoke or login’])

# 无条件跳过测试用例:pytest.mark.skip(reason=“跳过原因”) --这种跳过方式,跳过后,用例不执行,但是会显示跳过的结果

pytest.main([‘-m’, ‘smoke or login’])

有条件跳过测试用例:pytest.mark.skipif(condition=True, reason=“跳过原因”) --这种跳过方式,跳过后,用例不执行

pytest.main([‘-v’, ‘-m’, ‘smoke or login’])

相关文章:

pytest运行用例的常见方式及参数

标题pytest运行用例方式及参数 用例结构目录 “”" 在最外层目录下执行所有的用例 参数说明: -s:显示用例的打印信息 -v:显示用例执行的详细信息 –alluredir:指定allure报告的路径 –clean-alluredir:清除allure报告的路径 -n:指定并发的进程数 -x:出现一条用…...

XML Schema 元素替换

XML Schema 元素替换 引言 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。XML Schema 是一种用于定义 XML 文档结构的语言,它描述了 XML 文档的结构、数据类型和约束。在处理 XML 文档时,有时需要对特定的元素进行替换,以满足特定的需求。本文将介绍 XML Sch…...

OpenBMC:BmcWeb app.run

1.监听用户移除signal //src\webserver_run.cpp int run() {...bmcweb::registerUserRemovedSignal();... } //include\user_monitor.hpp inline void onUserRemoved(sdbusplus::message_t& msg) {sdbusplus::message::object_path p;msg.read(p);std::string username …...

hot100_74. 搜索二维矩阵

hot100_74. 搜索二维矩阵 思路 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否…...

光明谷推出AT指令版本的蓝牙音箱SOC 开启便捷智能音频开发新体验

前言 在蓝牙音箱市场竞争日益激烈的当下,开发一款性能卓越且易于上手的蓝牙音箱,成为众多厂商追求的目标。而光明谷科技有限公司推出的 AT 指令版本的蓝牙音箱 SOC,无疑为行业带来了全新的解决方案,以其诸多独特卖点,迅…...

基于windows的docker-desktop安装kubenetes以及dashboard

我们需要k8s环境做各种小实验可以本地安装一个,这里介绍win11如何通过docker-desktop安装k8s以及通过helm安装dashboard。 下载docker-desktop地址https://www.docker.com/get-started/打开【控制面板】->打开【启用和关闭windows功能】->分别勾选【hyper-v】…...

MT7628基于原厂的SDK包, 修改ra1网卡的MAC方法。

1、在/etc/config/wireless文件添加多个WIFI网卡的方法。 2、修改WIFI驱动,在src/embedded/ap/ap.c文件里面,从系统文件信息来修改ra1网卡的MAC内容,添加红色部分源代码。 RTMP_IO_WRITE32(pAd, RMAC_RMACDR, Value); if (idx > 0) …...

网络安全第三次练习

一、实验拓扑 二、实验要求 配置真实DNS服务信息,创建虚拟服务,配置DNS透明代理功能 三、需求分析 1.创建用户并配置认证策略 2.安全策略划分接口 3.ip与策略配置 四、实验步骤 1.划分安全策略接口 2.创建用户并进行策略认证 3.配置安全策略 4.NAT配…...

BFS 和 DFS(深度优先搜索、广度优先搜索)

深度优先搜索(DFS)和广度优先搜索(BFS)是两种常用的图遍历算法,用于解决图相关的问题。它们在搜索问题中具有广泛的应用,如路径搜索、连通性检测等。 以下是具体区别: (图片引自&am…...

Casbin 权限管理介绍及在 Go 语言中的使用入门

引言 在现代软件开发过程中,权限管理是一个至关重要的环节,它关系到系统的安全性和用户体验。Casbin 是一个强大的访问控制库,支持多种访问控制模型,如 ACL(访问控制列表)、RBAC(基于角色的访问…...

Two Sum

声明:博主为算法新手,博客仅作为个人学习记录 作为新手我的做法 (1)数组nums遍历一遍挑选出小于target的值及其下标,值存入temp,下标存到indices (2)遍历temp找到符合temp[i]temp[j]target的两个…...

3.3.2 交易体系构建——缠论操作思路

本节我们基于交易目标(规避下跌趋势,参与上涨趋势)来构建基于上涨趋势的缠论交易体系。建立上涨趋势的缠论交易体系需要以下几个步骤: 识别下跌走势大概率完成的位置 等待出现转折结构 确定交易模型并交易 从概率的角度来说,判断走势结束是个概率事件。为构建成功较高的交…...

[SQL] 事务的四大特性(ACID)

🎄事务的四大特性 以下就是事务的四大特性,简称ACID。 原子性📢事务时不可分割的最小操作单元,要么全部成功,要么全部失败。一致性📢事务完成后,必须使所有的数据都保持一致隔离性&#x1f4e2…...

使用 Three.js 实现流光特效

大家好!我是 [数擎AI],一位热爱探索新技术的前端开发者,在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:前端开发 | AI…...

Error [ERR_REQUIRE_ESM]: require() of ES Module

报错信息: 【报错】Message.js 导入方式不对,用的是 ES Moudle 的语法,提示使用 import 引入文件 项目开发没有用到 js-message 依赖,是 node-ipc 依赖中用到的 js-message 依赖, node-ipc 中限制 js-message 版本&a…...

沉浸式翻译插件深度评测:打破语言壁垒的黑科技利器

在信息爆炸的时代,语言障碍成为了许多人获取信息的一大难题。尤其是在浏览外文网站、观看外语视频或阅读外文文档时,语言不通往往会让人倍感困扰。然而,一款名为沉浸式翻译的黑科技插件,却以其强大的翻译能力和便捷的使用体验,成为了众多用户打破语言壁垒的首选工具。本文…...

Java 中 HTTP 协议版本使用情况剖析

Java 中 HTTP 协议版本使用情况剖析 一、HTTP/1.1 与 HTTP/2 概述 (一)HTTP/1.1 HTTP/1.1 是广泛应用且成熟的 HTTP 协议版本,它在互联网发展历程中扮演了重要角色。其特点主要包括: 连接方式:默认采用短连接,即每次请求都要建立新的 TCP 连接,请求完成后断开。不过也…...

蓝桥杯学习大纲

(致酷德与热爱算法、编程的小伙伴们) 在查阅了相当多的资料后,发现没有那篇博客、文章很符合我们备战蓝桥杯的学习路径。所以,干脆自己整理一篇,欢迎大家补充! 一、题型分布: 题型分布为填空…...

VSCode ssh远程连接内网服务器(不能上网的内网环境的Linux服务器)的终极解决方案

VSCode ssh远程连接内网服务器(不能上网的内网环境的Linux服务器) 离线下载vscode-server并安装: 如果远程端不能联网可以下载包离线安装,下载 vscode-server 的 url 需要和 vscode 客户端版本的 commit-id 对应.通过 vscode 面板的帮助->关于可以获…...

【多模态处理篇五】【DeepSeek文档解析:PDF/Word智能处理引擎】

你知道吗?全球每天产生的PDF文档超过10亿份,但90%的上班族还在用复制粘贴的笨办法处理文档!DeepSeek文档解析引擎就像给你的电脑装上了"文档翻译官",能把PDF/Word里的文字、表格、公式甚至排版样式都变成AI能理解的"语言"。举个真实场景:法务小姐姐用…...

golang循环变量捕获问题​​

在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下: 问题背景 看这个代码片段: fo…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

条件运算符

C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...

零基础设计模式——行为型模式 - 责任链模式

第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...

若依登录用户名和密码加密

/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...

密码学基础——SM4算法

博客主页:christine-rr-CSDN博客 ​​​​专栏主页:密码学 📌 【今日更新】📌 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 ​编辑…...

OpenGL-什么是软OpenGL/软渲染/软光栅?

‌软OpenGL(Software OpenGL)‌或者软渲染指完全通过CPU模拟实现的OpenGL渲染方式(包括几何处理、光栅化、着色等),不依赖GPU硬件加速。这种模式通常性能较低,但兼容性极强,常用于不支持硬件加速…...