首页 > 其他分享 >【pytest】 用例运行时间统计

【pytest】 用例运行时间统计

时间:2024-06-21 11:11:51浏览次数:24  
标签:插件 self pytest 用例 测试用例 time report 统计

  1. 使用 --duration 参数:

pytest 提供了一个 --duration 参数,它可以在测试运行后显示最慢的 N 个测试用例的运行时间。例如,要显示最慢的 10 个测试用例的运行时间,你可以使用以下命令:

 
pytest --duration=10

 

  1. 使用 pytest-benchmark 插件:

虽然 pytest-benchmark 主要用于基准测试,但它也可以用来跟踪测试用例的运行时间。你可以使用它来获取更详细的性能数据。

首先,你需要安装插件:

bash复制代码
pip install pytest-benchmark

然后,在测试文件或命令行中使用它。但是请注意,这个插件主要是用于基准测试,而不仅仅是显示运行时间。
3. 使用 pytest 钩子:

你可以使用 pytest 的钩子(如 pytest_runtest_logreport)来跟踪每个测试用例的运行时间。你可以创建一个自定义的 pytest 插件或使用 conftest.py 文件来实现这一点。

以下是一个简单的示例,使用 conftest.py 来记录每个测试用例的运行时间:

# conftest.py  
import pytest  
import time  
  
class TestTimer:  
    def __init__(self):  
        self.start_time = None  
  
    def start(self):  
        self.start_time = time.time()  
  
    def stop(self):  
        return time.time() - self.start_time  
  
def pytest_runtest_setup(item):  
    item.user_properties.setdefault("timer", TestTimer()).start()  
  
def pytest_runtest_logreport(report):  
    if report.when == "call" and report.passed:  
        duration = report.item.user_properties["timer"].stop()  
        print(f"Test {report.nodeid} took {duration:.2f} seconds to run.")

在这个示例中,我们创建了一个 TestTimer 类来跟踪每个测试用例的开始和结束时间。然后,在 pytest_runtest_setup 钩子中,我们为每个测试用例启动一个计时器。在 pytest_runtest_logreport 钩子中,我们停止计时器并打印出每个成功通过的测试用例的运行时间。
4. 使用 pytest 插件和报告生成器:

还有其他一些 pytest 插件(如 pytest-htmlpytest-json-report 等)可以生成详细的测试报告,其中包括每个测试用例的运行时间。这些插件通常提供更丰富的功能和更好的可读性。

标签:插件,self,pytest,用例,测试用例,time,report,统计
From: https://www.cnblogs.com/liu-Gray/p/18260146

相关文章

  • 数位统计DP——AcWing 338. 计数问题
    数位统计DP定义数位DP(DigitalDP)是一种用于解决与数字的数位相关问题的动态规划算法。它将数字的每一位看作一个状态,通过转移状态来计算满足特定条件的数字个数或其他相关统计信息。运用情况统计满足特定条件的数字个数,例如在给定范围内有多少个数字满足某些数位特征。计算......
  • C-对输入的数字进行统计
    编写函数,实现统计和输出一个正整数中各位数字中零的个数,及各位数字中最大者。   例如:1080其零的个数是2,各位数字中最大者是8。主函数负责正整数的输入。#include<stdio.h>//统计整数中零的个数intcountZeros(intnum){intcount=0;while(nu......
  • 微信小程序开发中的用户数据统计与分析【含代码示例】
    微信小程序开发中的用户数据统计与分析【含代码示例】基本概念与作用数据统计数据分析微信小程序数据统计方案1.微信官方统计工具2.第三方统计平台代码示例与实践示例一:使用微信官方统计API示例二:集成第三方统计SDK功能使用思路与技巧分析视角多样化数据驱动迭代实......
  • UML:用例图的扩展点特性详解
    引言UML(统一建模语言)用例图是一种常用的系统建模工具,它可以帮助我们直观地表示系统的功能和用户的交互。这里将重点讲解UML用例图中的扩展点(ExtensionPoint)特性,通过具体示例深入理解这一概念。什么是扩展点?扩展点是UML用例图中的一个重要概念,它允许我们在用例的基础上添......
  • Elasticsearch如何聚合查询多个统计值,如何嵌套聚合?并相互引用,统计索引中某一个字段的
    目录Elasticsearch聚合查询说明空值率查询DSLElasticsearch聚合基础知识扩展Elasticsearch聚合概念Script用法Elasticsearch聚合查询语法指标聚合(MetricAggregations)桶聚合(BucketAggregations)矩阵聚合(MatrixAggregations)组合聚合(PipelineAggregations)Elasticsearch聚合查询......
  • 实战案例-饮食记录-统计卡片(源于黑马程序员)
     StatsCard(统计卡片页面):仅有日期卡片页面import{CommonConstants}from'../../common/constants/CommonConstants'importDateUtilfrom'../../common/utils/DateUtil'importCalorieStatsfrom'./CalorieStats'importDatePickDialogfrom'......
  • pytest.mark.parametrize 传参
    pytest.mark.parametrize是pytest用来参数化测试的一个装饰器,它允许你为测试函数或测试类提供多组参数list,这样就可以使用每组参数执行测试函数或测试类,实现参数化驱动,接收的是元组集1.pytest.mark.parametrize可接收三个参数,常用的有两个,第一个是函数中需要引用的参数名,第二......
  • 汇编语言程序设计 - 统计字符串中非数字字符的数
    80x86汇编习题题目描述:从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示出计数结果。思路:有两种思路,一种是先输出,后计数;另一种是边输入,边计数。本文是用前者。1,逐个字符输入到BUFF,指针后移,判断是否为'$',是则结束输入2,逐个判断数组内容是否为数字,是则......
  • 1096:数字统计
    时间限制:1000ms      内存限制:65536KB提交数:60559   通过数: 42513【题目描述】请统计某个给定范围[L,R]的所有整数中,数字2出现的次数。  比如给定范围[2,22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2......
  • 【Python数据分析】Pandas_描述性统计
    描述统计学(descriptivestatistics)是一门统计学领域的学科,主要研究如何取得反映客观现象的数据,并以图表形式对所搜集的数据进行处理和显示,最终对数据的规律、特征做出综合性的描述分析。Pandas库正是对描述统计学知识完美应用的体现,可以说如果没有“描述统计学”作为理论基......