【自动化测试】Pytest框架 —— 跳过测试和失败重试

1、Pytest跳过测试用例
自动化测试执行过程中,我们常常出现这种情况:因为功能阻塞,未实现或者环境有问题等等原因,一些用例执行不了, 如果我们注释掉或删除掉这些测试用例,后面可能还要进行恢复操作,这时我们就可以配置跳过这些用例。

Pytest测试框架中存在两个跳过测试的方法:skip和skipif 。
(1)无条件跳过skip
skip方法为无条件跳过测试用例。
使用方法:@pytest.mark.skip标记在需要跳过的测试用例上。
(2)有条件跳过skipif
skipif方法为有条件跳过测试用例,条件为真跳过。
使用方法:@pytest.mark.skipif(condition=跳过的条件, reason=跳过的原因),
标记在需要符合条件跳过的测试用例上。
- 参数
condition:跳过的条件,为True则跳过测试,为False则继续执行测试,默认为True。 - 参数
reason:标注跳过的原因,必填参数。
(3)练习
"""
1.学习目标掌握pytest中跳过测试方法
2.操作步骤skipif(condition=判断条件,reason=跳过原因)使用时放置在需要跳过的用例之前@pytest.mark.skipif(条件,原因) # 当条件为真,跳过执行
3.需求
"""
# 导入pytest
import pytest# 编写测试用例
def login_data():return "jerry", "123456"# 无条件跳过
@pytest.mark.skip
def test_register():"""注册用例"""print("注册步骤")assert False# 当条件为真,跳过测试
@pytest.mark.skipif(login_data()[0] == "jerry", reason="jerry用户不存在")
def test_login():"""不记住密码登录"""username = login_data()[0]password = login_data()[1]print(f"输入用户名{username}")print(f"输入密码{password}")print("点击登录按钮")assert username == "jerry"def test_shopping():"""购物下单"""print("购物流程")assert Trueif __name__ == '__main__':pytest.main()"""
执行结果:跳过一个用例 : 1通过,2跳过test_pytest_01.py::test_register
test_pytest_01.py::test_login
test_pytest_01.py::test_shopping ======================== 1 passed, 2 skipped in 0.04s =========================Process finished with exit code 0
SKIPPED (unconditional skip)
Skipped: unconditional skip
SKIPPED (jerry用户不存在)
Skipped: jerry用户不存在
购物流程
PASSED
"""
# 注:跳过的用例测试结果标识为s
2、Pytest失败重试
Pytest失败重试就是,在执行一次测试脚本时,如果一个测试用例执行结果失败了,则重新执行该测试用例。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

前提:
Pytest测试框架失败重试需要下载pytest-rerunfailures插件。
安装方式:pip install pytest-rerunfailures
Pytest实现失败重试的方式:
方式一:在命令行或者main()函数中使用
pytest.main(['-vs','test_a.py','--reruns=2'])(这种方式没有实现成功,可能自己环境的问题)
或者:
pytest -vs ./test_a.py --reruns 2 --reruns-delay 2(可以)
表示:失败重试2次,在每次重试前会等到2秒。
说明:
reruns为重跑次数,reruns_delay为间隔时间,单位s
方式二:在pytest.ini配置文件中使用(推荐)
在pytest.ini配置文件中addopts添加reruns重试参数
[pytest]
addopts = -s --reruns 2 --reruns-delay 2
testpaths = scripts
python_files = test_01.py
python_classes = Test*
python_functions = test*
示例:使用第二种方式:
"""
1.学习目标掌握pytest中用例失败重试方法
2.操作步骤2.1 安装 pytest-rerunfailurespip install pytest-rerunfailures2.2 使用 在pytest.ini文件中,添加一个命令行参数 --reruns n # n表示重试次数
3.需求
"""
# 1.导入pytest
import pytest# 2.编写测试用例
@pytest.mark.run(order=2)
def test_login():"""登录用例"""print("登录步骤")assert "abcd" in "abcdefg"@pytest.mark.run(order=1)
def test_register():"""注册用例"""print("注册步骤")assert False@pytest.mark.run(order=4)
def test_shopping():"""购物下单"""print("购物流程")assert True@pytest.mark.run(order=3)
def test_cart():"""购物车用例"""print("购物车流程")assert Trueif __name__ == '__main__':pytest.main(['-vs', 'test_01.py', '--reruns=2'])# pytest ./pytest_demo/test_01.py --reruns 10 --reruns-delay 1
#
"""
执行结果:注意有两个:2 rerun
==================== 1 failed, 3 passed, 2 rerun in 0.09s =====================test_01.py::test_register 注册步骤
RERUN
test_01.py::test_register 注册步骤
RERUN
test_01.py::test_register 注册步骤
FAILED
pytest_demo\test_01.py:20 (test_register)
@pytest.mark.run(order=1)def test_register():""注册用例""print("注册步骤")
> assert False
E assert Falsetest_01.py:25: AssertionError
登录步骤
PASSED购物车流程
PASSED购物流程
PASSED
"""
注意:如果设置失败重试5次,在重试的过程中成功了,就不用全部跑完5次重试,这里需要注意一下。
END今天的分享就到此结束了,点赞关注不迷路
相关文章:
【自动化测试】Pytest框架 —— 跳过测试和失败重试
1、Pytest跳过测试用例 自动化测试执行过程中,我们常常出现这种情况:因为功能阻塞,未实现或者环境有问题等等原因,一些用例执行不了, 如果我们注释掉或删除掉这些测试用例,后面可能还要进行恢复操作&#…...
python 时间加法 输出t分钟后的时间
题目: 现在时间是a点b分,请问t分钟后,是几点几分? 输入: 第一行包含一个整数a 第二行包含一个整数b 第三行包含一个整数t 其中,0≤a≤23,0≤b≤59,0≤t,t分钟后还…...
51单片机-串口通信
文章目录 前言1.基础介绍2.串口实战3.4. 前言 1.基础介绍 常见1,2,3,电源 常用方式1 fosc外部晶振 2.串口实战 3. 4....
JAVA微信端医院3D智能导诊系统源码
医院智能导诊系统利用高科技的信息化手段,优化就医流程。让广大患者有序、轻松就医,提升医疗服务水平。 随着人工智能技术的快速发展,语音识别与自然语言理解技术的成熟应用,基于人工智能的智能导诊导医逐渐出现在患者的生活视角中…...
考研408-计算机网络 第二章-物理层学习笔记及习题
第二章 物理层 一 通信基础 1.1 物理层基本概念 1.1.1 认识物理层 物理层目的:解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体。 物理层主要任务:确认与传输媒体接口有关的一些特性,需要进行定义标…...
鸿蒙开发工具的汉化
1、下载汉化包 汉化插件下载地址:Chinese (Simplified) Language Pack / 中文语言包 - IntelliJ IDEs Plugin | Marketplace 百度网盘下载地址:链接:百度网盘 请输入提取码 DevEco Studio是基于IDEA223版本,下载汉化包时请注意…...
14:00面试,14:06就出来了,问的问题有点变态。。。。。。
从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到5月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…...
如何使用 NFTScan NFT API 在 zkSync 网络上开发 Web3 应用
zkSync 是由 Matter Labs 创建的,是一个以用户为中心的 zk rollup 平台,它是以太坊的第 2 层扩展解决方案,使用 zk-rollups 作为扩展技术,与 optimistic rollups 一样,zk-rollups 将会汇总以太坊主网上的交易并将交易证…...
rust从0开始写项目-读取配置文件
一个项目初始化,总是有几个元素是必不可少的、框架、日志、配置文件等等基本元素。 今天我们主要介绍下怎么获取配置并在全局使用 更多好文。vx. golang技术实验室 专注分享 golang、rust等多语言、中间件及大数据相关内容 Part1一、读取cargo.toml文件内容 Cargo.t…...
Docker的安装以及使用
每次安装Docker都会报一堆错,痛定思痛干脆自己总结一篇!!! Docker的安装 卸载系统自带的旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc 获取软件最新源 sudo apt-get update 安装apt依赖包 s…...
计算机网络学习笔记(五):运输层(待更新)
目录 5.1 概述 5.1.1 TCP协议的应用场景 5.1.2 UDP协议的应用场景 5.2 三大关系 5.2.1 传输层协议和应用层协议之间的关系 5.3 用户数据报协议UDP(User Datagram Protocol) 5.3.1 UDP的特点 5.3.2 UDP的首部 5.4 传输控制协议TCP(Transmission Control Protocol) 5.…...
阿里云99元服务器40G ESSD Entry云盘、2核2G3M带宽配置
阿里云99元服务器新老用户均可以买,你没看错,老用户可以买,活动页面 aliyunfuwuqi.com/go/aliyun 配置为云服务器ECS经济型e实例、2核2G、3M固定带宽、40G ESSD Entry云盘,并且续费不涨价,原价99元即可续费,…...
6个机器学习可解释性框架
1、SHAP SHapley Additive explanation (SHAP)是一种解释任何机器学习模型输出的博弈论方法。它利用博弈论中的经典Shapley值及其相关扩展将最优信贷分配与局部解释联系起来. 举例:基于随机森林模型的心脏病患者预测分类 数据集中每个特征对模型预测的贡献由Shap…...
数据结构——B树
文章目录 B树1. 概念2. B树插入分析3.插入过程4. B树插入实现5.B树验证6. B树性能分析7.B树&B*树8. 小结9. B树的运用MyISAMInnoDB 10. 总结 B树 可以用于查询的数据结构非常的多,比如说二插搜索树、平衡树、哈希表、位图、布隆过滤器,但如果需要存…...
java--String
1.String创建对象封装字符串数据的方式 ①方式一:java程序中的所有字符串文字(例如"abc")都为此类的对象 ②方式二:调用String类的构造器初始化字符串对象。 2.String提供的操作字符串数据的常用方法...
ls命令区别
ls -lh:显示详细信息,其中其中文件大小是显示Kb或Mb。 ls -l:也会显示文件大小,只是显示的是字节。...
经典OJ题:随机链表的复制
目录 题目: 本题的解图关键在于画图与看图! 思路分析: 方法一:暴力求解法。 方法二:插入法 方法解析: 步骤一、插入 步骤二、 处理每一个copy的randdom指针⭐————重点 步骤三、拆卸节点 代码…...
HTML的初步学习
HTML HTML 描述网页的骨架, 标签化的语言. HTML 的执行是浏览器的工作,浏览器会解析 html 的内容,根据里面的代码,往页面上放东西,浏览器的工作归根结底,还是以汇编的形式在CPU上执行. 浏览器对于html语法格式的检查没有很严格,即使你写的代码有一些不合规范之处,浏览器也会尽可…...
小赢科技荣登“2023中国互联网成长型前二十家企业”,旗下小赢卡贷表现突出
近日,中国互联网协会和厦门市人民政府联合在厦门举办了中国互联网企业综合实力指数(2023)发布会暨百家企业论坛。在这次评选活动中,深圳小赢信息技术有限责任公司(以下简称:小赢科技)凭借其行业领先的技术创新、企业成长及社会责任等方面的卓越表现,被评选为“2023年中国互联网…...
@Cacheable 、 @CachePut 、@CacheEvict 注解
在 Application 类上添加注解 EnableCaching EnableCaching public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}Cacheable 注解 能够让方法的返回值被缓存起来,后续的请求可以直接从缓存中获取结果。 示…...
机器学习战略:从技术到商业价值的实战指南
1. 机器学习战略工作坊:从技术到商业价值的跨越作为一名从业十年的数据科学顾问,我见过太多机器学习项目在技术层面表现优异,却最终未能产生实际商业价值。上周收到Foster Provost教授即将举办机器学习战略工作坊的通知时,我立刻意…...
【VS Code Copilot Next 工作流自动化终极指南】:20年IDE专家亲授5大高复用实战配置模板,错过再等一年!
更多请点击: https://intelliparadigm.com 第一章:VS Code Copilot Next 自动化工作流配置全景认知 VS Code Copilot Next 并非简单插件升级,而是融合 GitHub Models、本地 LLM 缓存调度与 VS Code 语言服务器协议(LSP࿰…...
2026年权威发布:AI搜索优化源头服务商深度测评,杭州7大GEO优化解决方案避坑指南
在2026年的今天,AI搜索已成为企业获取精准流量、建立用户心智的首要入口。传统搜索引擎优化(SEO)的逻辑正在被生成式引擎优化(GEO)快速迭代,其核心从“匹配关键词”转向“成为标准答案”。面对这一剧变&…...
变分量子算法测量成本优化与TreeVQA框架解析
1. 变分量子算法与测量成本困局变分量子算法(Variational Quantum Algorithms, VQAs)作为当前量子-经典混合计算的核心范式,通过参数化量子电路逼近目标问题的解。其工作流程可类比经典机器学习中的参数优化:量子处理器负责制备量…...
DeepXDE技术架构深度解析:多后端科学机器学习框架的设计哲学与实践指南
DeepXDE技术架构深度解析:多后端科学机器学习框架的设计哲学与实践指南 【免费下载链接】deepxde A library for scientific machine learning and physics-informed learning 项目地址: https://gitcode.com/gh_mirrors/de/deepxde DeepXDE是一款面向科学机…...
如何用Stream-Translator实现直播实时翻译?完整部署指南
如何用Stream-Translator实现直播实时翻译?完整部署指南 【免费下载链接】stream-translator 项目地址: https://gitcode.com/gh_mirrors/st/stream-translator Stream-Translator是一款专为开发者设计的实时音频翻译工具,能够高效处理直播流中的…...
如何在3分钟内完成音频转文字:AsrTools终极免费解决方案
如何在3分钟内完成音频转文字:AsrTools终极免费解决方案 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurat…...
RimWorld终极免费模组管理器:3步解决模组冲突,轻松管理200+模组 [特殊字符]
RimWorld终极免费模组管理器:3步解决模组冲突,轻松管理200模组 🎮 【免费下载链接】RimSort RimSort is an open source mod manager for the video game RimWorld. There is support for Linux, Mac, and Windows, built from the ground up…...
如何让经典游戏在现代显示器上完美呈现?PvZWidescreen模组的技术解析
如何让经典游戏在现代显示器上完美呈现?PvZWidescreen模组的技术解析 【免费下载链接】PvZWidescreen Widescreen mod for Plants vs Zombies 项目地址: https://gitcode.com/gh_mirrors/pv/PvZWidescreen 对于许多经典游戏爱好者来说,《植物大战…...
计算机生成全息术与JPEG压缩的融合优化
1. 计算机生成全息术与JPEG压缩的跨界融合在增强现实(AR)和虚拟现实(VR)近眼显示领域,计算机生成全息术(CGH)正逐渐成为实现真正三维显示的关键技术。与传统的立体显示不同,CGH通过数值模拟光衍射过程生成全息图,能够提供完整的视差信息和物理…...
