pytest文档 - pytest-runtime-yoyo 对用例运行时长断言

说明

pytest 执行用例的时候,我们希望对用例的运行时间断言,当用例执行时长大于预期标记此用例失败。
@pytest.mark.runtime(1)运行时长单位是秒
此插件已打包上传到pypi https://pypi.org/project/pytest-runtime-yoyo/1.0.0/

基本示例 test_demo.py

  1. import pytestimport timedef test_a1():

  2. time.sleep(2)@pytest.mark.runtime(1)def test_a2():

  3. time.sleep(2)

运行结果

  1. ======================== short test summary info =====================

  2. FAILED test_demo.py::test_a2

  3. ======================== 1 failed, 1 passed in 4.18s ===============

版本变更记录

v1.0.0 发布时间: 2023/6/12

实现功能

  • 1.用例中使用@pytest.mark.runtime(1)标记用例执行时间

  • 2.pytest.ini 新增runtime全局参数

  • 3.命令行中新增--runtime全局参数

Installation / 安装

最近环境体验

  • Python 3.8+ 版本

  • Pytest 7.2.0+ 新版

pip 安装插件

pip install pytest-runtime-yoyo

Usage / 标记用例运行时长

基于函数的用例中使用@pytest.mark.runtime(1)标记用例执行时间

  1. import pytestimport time# 作者-上海悠悠 微信/QQ交流:283340479# blog地址 https://www.cnblogs.com/yoyoketang/def test_a1():

  2. time.sleep(2)@pytest.mark.runtime(1)def test_a2():

  3. time.sleep(2)

基于测试类的用例, 在测试类上标记runtime,对测试类下的每个用例都会生效

  1. import pytestimport time@pytest.mark.runtime(3)class TestRun:

  2. def test_a3(self):

  3. time.sleep(2) def test_a4(self):

  4. time.sleep(1)

标记模块下全部用例

对整个测试模块下的用例全部标记 runtime

  1. import pytestimport time# 作者-上海悠悠 微信/QQ交流:283340479# blog地址 https://www.cnblogs.com/yoyoketang/pytestmark = pytest.mark.runtime(3)def test_a5():

  2. time.sleep(1)def test_a6():

  3. time.sleep(2)class TestRun:

  4. def test_a7(self):

  5. time.sleep(2) def test_a8(self):

  6. time.sleep(4)

执行结果

  1. collected 4 items

  2. test_x2.py ...F [100%]

  3. ================ FAILURES ===================================

  4. _____________________ TestRun.test_a8 __________________________

  5. ================= short test summary info =====================

  6. FAILED test_x2.py::TestRun::test_a8

  7. ================= 1 failed, 3 passed in 9.15s =======

如果测试模块,测试类和测试用例上都有runtime 标记

  1. import pytestimport time# 作者-上海悠悠 微信/QQ交流:283340479# blog地址 https://www.cnblogs.com/yoyoketang/pytestmark = pytest.mark.runtime(3)def test_a5():

  2. time.sleep(1)def test_a6():

  3. time.sleep(2)@pytest.mark.runtime(1)class TestRun:

  4. def test_a7(self):

  5. time.sleep(2) @pytest.mark.runtime(5)

  6. def test_a8(self):

  7. time.sleep(4)

那么运行的优先级是: 测试用例 runtime > 测试类 runtime > 测试模块 runtime

全局用例配置

对全部用例设置 runtime 标记,可以在pytest.ini中设置全局配置

  1. [pytest]

  2. runtime = 3

也可以在执行 pytest 命令的时候带上命令行参数--runtime

pytest --runtime=3

优先级是: 命令行参数 > pytest.ini 配置

全局配置只针对测试模块,测试类,测试用例没标记 runtime 的用例生效。

如果测试模块,测试类,测试用例有标记 runtime,那么优先级是大于全局配置的。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

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

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

相关文章

收藏!大模型技术学习:从理论到实践再到应用全指南

对于想要入门大模型技术的小白程序员,或是想系统提升技能的开发者来说,单纯零散学习知识点远远不够。大模型技术的掌握,需要搭建起“理论奠基实践落地应用拓展”的完整知识体系。本文整理了一套循序渐进的大模型学习路线,覆盖核心…

基于SpringBoot+Vue的专辑鉴赏网站管理系统设计与实现【Java+MySQL+MyBatis完整源码】

💡实话实说:用最专业的技术、最实惠的价格、最真诚的态度服务大家。无论最终合作与否,咱们都是朋友,能帮的地方我绝不含糊。买卖不成仁义在,这就是我的做人原则。摘要 随着数字音乐产业的快速发展,音乐爱好…

证件门禁电子化,NFC打造安全便捷的“数字钱包”

随着数字化进程的加快,手机NFC功能逐渐突破支付边界,在证件管理和门禁通行领域发挥重要作用,通过模拟实体卡片、读取电子证件信息,实现“一机在手,通行无忧”,既减少了实体卡片的携带负担,又兼顾…

学黑客技术不迷路!2025 最新网站大全:漏洞库(CNVD/NVD)+ 实战平台(Hack The Box)全解析!

今天给大家分享一些学习网络安全的好去处。对于网络安全的学习,多逛论坛、阅读他人的技术分析帖是非常重要的。但有时候,初学者可能会感到迷茫,不知道去哪里寻找这些技术分析帖,也不知道有哪些相关的论坛或网站。所以,…

SDK游戏盾的工作原理具体是怎么完成防护的?

简单理解为三层的防护:玩家(用户) 🔜 SDK 🔜 游戏盾节点 🔜 源站服务器🟠 客户端SDK校验(第一道防护机制)🟢校验客户端完整性,防止修改或是模…

导师推荐8个AI论文软件,助你搞定研究生毕业论文!

导师推荐8个AI论文软件,助你搞定研究生毕业论文! AI 工具如何成为论文写作的得力助手 在研究生阶段,论文写作是一项既重要又繁重的任务。面对庞大的文献资料、复杂的逻辑结构以及严格的格式要求,许多同学常常感到无从下手。而随着…

【顶级EI复现】基于主从博弈的售电商多元零售套餐设计与多级市场购电策略附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…

【2025最新】基于SpringBoot+Vue的学生评奖评优管理系统管理系统源码+MyBatis+MySQL

💡实话实说:用最专业的技术、最实惠的价格、最真诚的态度服务大家。无论最终合作与否,咱们都是朋友,能帮的地方我绝不含糊。买卖不成仁义在,这就是我的做人原则。摘要 随着教育信息化的快速发展,高校学生评…

2025 程序员接单不踩坑:6 个平台覆盖国内外,新手冲 Fiverr / 猪八戒,大神攻 Toptal/Upwork!

收藏!2025年程序员都在用的6个宝藏接单平台 大学生练手?职业码农赚米?失业人过渡?技术牛副业?请选择你的英雄! 不管是哪种状态,如果你有接单需求,那就是来对了。接单从渠道而言&am…

公信会议:AI 会议生态服务商,解锁数智协作新可能

人工智能技术的迅猛发展,正推动商业会议从传统的 “工具辅助” 向 “生态协同” 全面升级,成为企业数字化转型的关键抓手。作为深耕行业的 AI 会议生态服务商,公信会议精准锚定企业协作痛点,将六大核心 AI 技术深度融入会议全场景…

做好接口测试之初步认识Postman

我们如果在命令行发送post请求,会很麻烦,效率不高。同时也不方便接口的管理,所以一些优秀的接口测试工具应运而出,Postman就是绕不开的话题之一。 主要功能 Postman主要帮我们干了三件事: 1.把相关集合放到一个集合…

【顶级SCI复现】【日前调度和日内调度两个时间尺度】虚拟电厂多时间尺度调度优化研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…

覆盖新老赛道!2025 最热门 25 大就业专业清单:从 AI 到老年医学,选对不愁饭碗!

2025年最热门25大就业专业清单,选对专业未来不愁饭碗 2025年就业形势有多严峻?教育部数据显示。今年高校毕业生预计超过1200万。就业竞争格外激烈!但是。选对专业的学生,依然能在求职市场上一骑绝尘。 经过15年教育行业观察&…

关于单元测试编写原则的一些思考

目的 单元测试编写的目的,是面向计算机特性的,基于函数的in-out,所以单元测试的好帮手就是断言,通过不断的构造输出并对结果进行断言,我们就可以针对一个对象以及它的函数,构建出充足的用例去包裹它&#…

Agentic RAG核心解析(必收藏):从原理到架构,解锁大模型复杂查询能力

Agentic RAG(智能体增强检索增强生成)是将Agent自主规划与决策能力融入传统RAG的进阶技术,核心目标是破解传统RAG在复杂查询场景中的瓶颈。相较于传统RAG的固定流程,Agentic RAG可自主选择检索引擎、规划检索步骤、评估结果有效性…

5G矿山车载监控终端山河矿卡定位监控终端

5G智慧矿山监控终端——赋能矿山智能化转型,筑牢安全生产防线在矿山行业向“少人化、无人化”转型的关键阶段,安全生产与高效运营成为核心诉求。传统监控设备受限于通信带宽、时延及环境适应性,难以满足复杂矿山场景的实时管控需求。5G智慧矿…

【顶级SCI复现】高比例可再生能源并网如何平衡灵活性与储能成本?虚拟电厂多时间尺度调度及衰减建模附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…

软件测试工程师面试的时候该怎么样介绍自己?

一个好的自我介绍可以让人眼前一亮! 在求职面试时,大多数面试考官会要求应聘者做一个自我介绍,一方面以此了解应聘者的大概情况,另一方面考察应聘者的口才、应变和心理承受、逻辑思维等能力。 千万不要小视这个自我介绍&#xf…

Day 52:【99天精通Python】Web 开发入门 (Flask) - 5行代码写个网站

Day 52:【99天精通Python】Web 开发入门 (Flask) - 5行代码写个网站 前言 欢迎来到第52天! 在之前的 51 天里,我们写的代码都是在终端里跑的,或者生成一个本地的文件。如果你想让全世界的人都能用到你的程序,最好的…

【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…