问题总结!常用插件Pytest的测试用例的一些问题

news2024/11/25 23:15:01

目录

前言:

失败重跑 Pytest-rerunfailures

用例执行顺序 Pytest-ordering

重复执行 Pytest-repeat

多重断言 Pytest-assume


前言:

Pytest是Python中的一个流行的测试框架,它提供了许多功能强大的插件来支持自动化测试。

失败重跑 Pytest-rerunfailures

要求:python 3.5+、pytest 5.0+

安装:pip install pytest-rerunfailures

文档:https://pypi.org/project/pytest-rerunfailures/

使用方法:在命令行或 pytest.ini 配置文件 addopts 中添加选项:--reruns n(重新运行n次数),--reruns-delay m(等待m秒开始下次重新运行)

(1)命令行:pytest --reruns 3 --reruns-delay 5

(2)pytest.ini 文件:addopts = --reruns 3 --reruns-delay 5若要指定单个测试用例在失败时重新运行,需要在测试用例添加 flaky 装饰器,如:

@pytest.mark.flaky(reruns=n, reruns_delay=m)

@pytest.mark.flaky(reruns=2, reruns_delay=3) 
def test_01():        
assert 0

用例执行顺序 Pytest-ordering

默认情况下,Pytest 根据测试方法从上到下执行用例,可以通过第三方插件 Pytest-ordering 来改变测试顺序。

安装:pip install pytest-ordering

文档:https://pypi.org/project/pytest-ordering/

使用方法:在需要调整执行顺序的测试函数上标记 @pytest.mark.run(order=x)order 值越小,优先级越高;执行顺序按照如下排序:0 > 正数 > 未使用run修饰的 > 负数。

import pytest @pytest.mark.run(order=3) 
def test_01():
            print("test_01")
            assert 1     
@pytest.mark.run(order=2) 
def test_02(): 
           print("test_02") 
           assert 1     @pytest.mark.run(order=-1) 
def test_03(): 
           print("test_03")
           assert 1     
# 以上用例将按照 test_02 -> test_01 -> test_03 顺序执行

重复执行 Pytest-repeat

安装:pip install pytest-repeat

使用方法:在命令行或 pytest.ini 配置文件 addopts 中添加选项:

  • --count n(重复运行n次数)

  • --repeat-scope 可以覆盖默认的测试用例执行顺序,类似 fixture 的scope参数

  • function:默认,范围针对每个用例重复执行,再执行下一个用例

  • class:以class为用例集合单位,重复执行class里面的用例,再执行下一个

  • module:以模块为单位,重复执行模块里面的用例,再执行下一个

  • session:重复整个测试会话,即所有测试用例的执行一次,然后再执行第二次

(1)命令行:pytest --count 5

(2)pytest.ini 文件:addopts = --count 5

通常与 pytest 的 -x 搭配使用,重复测试直到失败,常用于验证一些偶现的问题

命令行运行:pytest --count=10 -x test_demo.py

# test_demo.py 文件
import pytest
@pytest.mark.repeat(10) 
# 将指定测试用例标记为执行重复多次
 def test_01(): 
           assert 1

多重断言 Pytest-assume

assert断言可以写多个断言,但一个失败,后面的断言将不再执行,可以使用 pytest-assume 来进行断言,即使断言失败,后面的断言还是会继续执行,比 assert 更高效。

安装:pip install pytest-assume

import pytest   
def test_01(): 
        pytest.assume(1==1)    
        pytest.assume(2==2)        
        pytest.assume(1==0)       
        pytest.assume(3==3)        
        print("测试完成")

 

作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N4P3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Af5vb8Yd04Vko7N1pLyynmp07ZePYHSQ&authKey=ks61fFogMnCB2Mw40a8gAbIgAW0iXxiu3fEp%2BsUtanTrM%2F8aJ4pzu%2B74Fo%2Fp%2Fd8G&noverify=0&group_code=574737577

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第1讲:XMLHttpRequest详解(ajax基础)

XMLHTTPRequest对象 XMLHTTPRequest对象,是基于XML的HTTP请求。XMLHTTPRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通讯。自从浏览器提供了XMLHTTPRequest这个接口之后,ajax操作就此诞生。 AJAX Asynchronous JavaScript and X…

Exploit/CVE-2010-0738

打开JBoss的潘多拉魔盒:JBoss高危漏洞分析 *本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。 前言 JBoss是一个基于J2EE的开放源代码应用服务器&#xff0…

盖雅工场联合福达企业资源系統 (DynaSys) 成功举办 SAP SuccessFactors Day 活动

2023年5月31日,由DynaSys主办、盖雅工场协办的SAP SuccessFactors Day活动在香港半岛酒店成功举行。本次活动旨在为在港企业分享员工体验和劳动力管理解决方案,并以行业标杆案例为指引,帮助企业客户在全球市场中更好地制定人力资源管理策略。…

Linux下socket网络编程实战思考

socket网络编程是每个服务端开发人员必会技能,但是目前市面上各种web服务器容器,屏蔽了很多底层实现,导致很多socket通信细节被屏蔽,本文结合在linux下C语言socket通信说明一下网络通信的一些注意点。 目录 1.多进程模型tcp服务…

Windows11安装mysql8.0.32步骤

1、下载mysql安装包 下载地址:https://dev.mysql.com/downloads/mysql/ 2、添加配置文件 mysql安装文件目录下新建一个文件名:my.inimy.ini文件中复制如下内容: [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 ---这里输入你安装…

Linux中的C/C++语言调试工具 GDB

Linux中的C/C语言调试工具 GDB GDB(GNU Debugger)是一个功能强大的调试器,用于调试和分析程序的执行过程。它是GNU项目的一部分,可以在多个操作系统上使用,包括Linux、Unix和Windows。 GDB主要用于调试编译后的可执行…

大模型扎堆「赶考」,语文还是国产AI行,文言文能力超过95%考生

量子位 | 公众号 QbitAI ChatGPT诞生后的第一场全国高考,考生忙,大模型们也很忙。 这不,高考还没结束,AI挑战高考题就成了刷屏热搜话题,各家大模型都被拉出来写起了高考作文,甚至是参与整场考试。 &#…

【MySQL事务】保证数据完整性的利器

1、事务的认识 事务:事务就是将多个SQL给打包在一起,组成一个整体。组成这个整体的各个SQL,要么全部成功,要么全部失败。 举例说明: 情人节到了,滑稽老铁打算给他女朋友小美发给红包,但是他又害…

msvcp140.dll重新安装的解决方法(一键安装方法)

msvcp140.dll电脑文件中的dll文件,即动态链接库文件,若计算机中丢失了某个dll文件,就会导致某些软件和游戏等程序无法正常启动运行,并且导致电脑系统弹窗报错,其安装方法:1、打开浏览器输入“【dll修复程序…

[Diffusion] Speed is all your need

论文简要总结 刚读了下speed is all you need这个论文, https://arxiv.org/pdf/2304.11267.pdf 只是用的SD1.4没有对网络进行改造。 只做了4个改动 1 是对norm采用了groupnorm (GPU shader加速) 2 采用了GELU (GPU shader加速) 3 采用了两种attention优化,是partiti…

一个简单的MCU内存管理模块(附源码)

现在非常多的的MCU性能都还不错,同时用户也会去扩展一些外部RAM,那么如何高效便捷的管理这些内存是一个重要话题。 今天给大家分享一份源码:基于无操作系统的STM32单片机开发,功能强大,可申请到地址空间连续的不同大小…

如何应对公民开发者的挑战?低代码流程自动化助你打造高效系统

如今,企业越来越倾向于采用公民开发作为提升流程自动化和数字化转型的手段。这种方法让非程序员(如客户和员工),有机会为特定任务创建自己的应用程序。它还使公司能够快速调整以适应客户偏好或业务需求。 尽管这种方法有很多好处&…

Prometheus+Grafana普罗米修斯搭建+监控MySQL

PrometheusGrafana普罗米修斯搭建监控MySQL 一,Prometheus 1.什么是Prometheus? ​ Prometheus 是 Cloud Native Computing Foundation 的一个监控系统项目, 集采集、监控、报警等特点于一体。 ​ Prometheus主要受启发于Google的Brogmon监控系统&…

数字化转型浪潮下,汽车零部件企业如何逐鹿突围?

一、汽车行业当下趋势 数据来源:汽车工业协会 1.乘用车及新能源车市场:2023年1-4月,乘用车销量同比增长6.8%,新能源车销量同比增长35.8%。 2.行业趋势:汽车行业生存压力大,4月中国汽车经销商库存系数下降…

中国科学院稀土研究院-PLC采集项目案例

1.项目背景 中国科学院稀土研究院(江西稀土研究院)隶属中国科学院。 作为中国国内唯一专注于稀土科技创新的国立科研机构,中国科学院稀土研究院将面向国家战略和产业发展重大需求,围绕稀土绿色、高效、均衡、高值化利用的核心科学…

【Spring MVC】没有Spring MVC,Spring Boot表现得毫无用处? ? ?走进Spring MVC,学习热部署自动运行程序 ! ! !

前言: 大家好,我是良辰丫,从今天开始,我们就要进入Spring MVC的学习了,前面的文章中我们的很多注解都没有讲解,是不是看的脑瓜嗡嗡的,哈哈,没关系,在我们Spring MVC中我们就要详细讲解那些注解了,请跟随良辰的脚步,gogogo! ! !💌💌💌 &#x…

希望之星、黄昏之星、三只乌鸦……怎么用 DolphinDB 快速计算 K 线?

K 线技术分析是股票投资中很常用的一种分析方法,主要通过历史价格图表中的数据来预测未来市场趋势。一根 K 线包括四个价格:开盘价、收盘价、最高价和最低价,通常简称为 OHLC。K 线按照周期一般可以分为日、周、月、年,以及五分钟…

Selenium自动化落地实践

01、自动化测试流程图 02、主要过程描述 1、自动化测试的切入点 开展自动化测试的时间点很关键,需要在系统已经过多版本的系统测试,达到稳定之后。 2、可行性分析 在进行项目自动化测试之前,第一步就是要确认其可行性,是否可以…

为何唐宋诗词鼎盛,而到了明清变成了小说

我国是一个历史悠久的国家,在漫长的历史长河中,随着朝代的更替,很多事也发生了有趣的变化。 例如唐宋时期盛行的是诗词,而到了明清时代,小说又开始盛行了起来,那么造成这种文风改变的原因是什么呢&#xf…

2023安博会进行时!英码科技1个重磅+4大看点隆重亮相

2023年6月7日,第十六届(2023)中国国际社会公共安全产品博览会(以下简称:安博会)在北京首钢会展中心盛大开幕!本届安博会以“自主创新数智融合”为主题,共设置了7大主题展馆&#xff…