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

Pytest做性能测试?

Pytest其实也是可以做性能测试或者基准测试的。是非常方便的。 可以考虑使用Pytest-benchmark类库进行。

安装pytest-benchmark

首先,确保已经安装了pytest和pytest-benchmark插件。可以使用以下命令安装插件:

pip install pytest pytest-benchmark

创建被测函数

创建被测函数如下:

import time, pytest_benchmark
def method1(duration=0.000001):time.sleep(duration)return "test"

创建被测函数

创建性能测试函数:编写需要进行性能测试或基准测试的函数,并使用pytest装饰器将其标记为性能测试函数。例如:

import pytest, pytest_benchmarkdef test_my_function(benchmark):result = benchmark(method1, argument1, argument2)assert result == expected_result

在上面的示例中,test_my_function是性能测试函数,benchmark是pytest-benchmark插件提供的装饰器。method1是要进行性能测试的函数,argument1和argument2是该函数的参数,这些参数要根据实际需要进行调整即可。

运行测试

pytest

测试结果

当使用pytest-benchmark运行性能测试后,测试结果将显示在控制台中。以下是结果中每列的含义:

1. name: 测试函数的名称。每个测试函数都有自己的名称,用于区分不同的测试。

2. min: 执行测试函数的最小时间。这是在所有运行中观察到的最短时间。

3. max: 执行测试函数的最大时间。这是在所有运行中观察到的最长时间。

4. mean: 执行测试函数的平均时间。这是所有运行时间的平均值。

5. stddev: 执行测试函数的标准差。标准差用于衡量运行时间的离散程度。较小的标准差表示运行时间更稳定。

6. median: 执行测试函数的中位数时间。中位数是将所有运行时间按大小排序后,位于中间位置的值。

7. IQR: 四分位距(InterQuartile Range)。这是一种不同的测量方差的方法。

8. outliers: 执行测试函数时观察到的异常值数量。异常值是指与其他观测值相比明显偏离的值。

9. OPS: 表示在一定时间内(比如1秒)测试方法被调用了多少次。

10. rounds: 执行测试函数的运行次数。pytest-benchmark默认会多次运行测试函数,并根据这些运行结果计算出平均时间等统计数据。

11. iterations: 每个运行中执行测试函数的迭代次数。pytest-benchmark会在每个运行中多次迭代执行测试函数,并计算每次迭代的时间。

在分析结果时,可以将不同函数的结果进行比较,并考虑是否满足性能要求。可以根据测试结果进行优化和改进,并重新运行测试以验证改进的效果。

这可能是B站最详细的pytest自动化测试框架教程,整整100小时,全程实战!!!

相关文章:

Pytest做性能测试?

Pytest其实也是可以做性能测试或者基准测试的。是非常方便的。 可以考虑使用Pytest-benchmark类库进行。 安装pytest-benchmark 首先,确保已经安装了pytest和pytest-benchmark插件。可以使用以下命令安装插件: pip install pytest pytest-benchmark …...

Swagger各版本访问地址

2.9.x 访问地址: http://ip:port/{context-path}/swagger-ui.html 3.0.x 访问地址: http://ip:port/{context-path}/swagger-ui/index.html 3.0集成knife4j 访问地址: http://ip:port/{context-path}/doc.html...

docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbor

docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbor 文章目录 docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbordocker-compose私有镜像仓库harbor搭建镜像推送到私有仓库harbor docker-compose D…...

OpenTSDB(CVE-202035476)漏洞复现及利用

任务一: 复现环境中的命令注入漏洞。 任务二: 利用命令注入执行whoami,使用DNS外带技术获取结果 任务三:使用反弹shell,将漏洞环境中的shell反弹到宿主机或者vps服务器。 任务一: 1.搭建好环境 2.先去了…...

Maven无法拉取依赖/构建失败操作步骤(基本都能解决)

首先检查配置文件,确认配置文件没有问题(也可以直接用同事的配置文件(记得修改文件里的本地仓库地址)) 1.file->Invalidate Caches清除缓存重启(简单粗暴,但最有效) 2.刷新maven以及mvn clean,多刷几次,看看还有没有报红的依赖…...

【数据库】数据库并发控制的目标,可串行化序列的分析,并发控制调度器模型

数据库并发控制 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更…...

带头结点的双向循环链表

目录 带头结点的双向循环链表 1.存储定义 2.结点的创建 3.结点的初始化 4.尾插结点 5.尾删结点 6.头插结点 7.头删结点 8.查找并返回结点 9.在pos结点前插入结点 10.删除pos结点 11.打印链表 12.销毁链表 13.头插结点2.0版 14.尾插结点2.0版 前言: 当…...

2023年11月下旬大模型新动向集锦

2023年11月下旬大模型新动向集锦 2023.12.1版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 1、微软将向中国大陆开放Windows Copilot服务 据微软发布的消息,微软将在 2023 年 12 月 1 日面向中国大陆的企业和教育机构推出 We…...

有IP没有域名可以申请证书吗?

一、IP证书是什么? ip证书是用于公网ip地址的SSL证书,与我们通常所讲的SSL证书并无本质上的区别,但由于SSL证书通常颁发给域名,而组织机构需要公共ip地址的SSL证书,这类SSL证书就是我们所说的ip证书。ip证书具有安全、…...

【软件推荐】卸载360软件geek;护眼软件flux;

卸载360软件geek f.lux: software to make your life better (justgetflux.com) 卸载完扫描残留 护眼软件 hf.lux: software to make your life better (justgetflux.com)https://justgetflux.com/https://justgetflux.com/...

Module build failed: Error: ENOENT: no such file or directory

前言 这个错误通常发生在Node.js 和 vue,js项目中,当你试图访问一个不存在的文件或目录时。在大多数情况下,这是因为你的代码试图打开一个不存在的文件,或者你的构建系统(例如Webpack)需要一个配置文件,但找…...

Postgresql BatchInsert唯一键冲突及解决

Postgresql BatchInsert唯一键冲突及解决 当有唯一键冲突时,批量插入可能会报错; insert into tableA(sno,name,age,emp) values(),(),(); 会报错 insert into tableA(sno,name,age,emp) values(),(),() on conflict on contraint tableA_unique_key do …...

腾讯云AMD服务器标准型SA5实例AMD EPYC Bergamo处理器

腾讯云服务器标准型SA5实例是最新一代的标准型实例,CPU采用AMD EPYC™ Bergamo全新处理器,采用最新DDR5内存,默认网络优化,最高内网收发能力达4500万pps。腾讯云百科txybk.com分享腾讯云标准型SA5云服务器CPU、内存、网络、性能、…...

力扣 --- 加油站

题目描述: 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个…...

C++基础 -25- 动态多态

静态多态在程序编译的时候,确定将要执行的状态。 动态多态在程序运行的时候,才能确定执行的状态。 下面举例实现动态多态 work函数接口通过传参不同做不同的工作 #include "iostream"using namespace std;class person {public:person(){}vi…...

数据库-MySQL之数据库必知必会17-21章

第17章 组 合 查 询 创建组合查询 可用UNION操作符来组合数条SQL查询。利用UNION,可给出多条SELECT语句,将它们的结果组合成单个结果集。 **例子:**假如需要价格小于等于5的所有物品的一个列表,而且还想包括供应商1001和1002生产…...

mysql主从复制-redis集群扩容缩容、缓存优化(缓存更新策略、穿透,击穿,雪崩)、mysql主从搭建、django实现读写分离

基于Docker实现读写分离 1 redis集群扩容缩容 1.1 集群扩容 1.2 集群缩容 2 缓存优化 2.1 缓存更新策略 2.2 穿透,击穿,雪崩 3 mysql主从搭建 4 django实现读写分离 1 redis集群扩容缩容 1.1 集群扩容 # 6台机器,3个节点集群# 8台机器&am…...

docker部署kerberos,群晖nas中nfs开启kerberos校验

背景 nas开启nfs存储共享,默认情况下只能给IP/24做限制, 达不到安全效果 需要增加kerberos策略校验,并且持久化kerberos数据,避免容器重启丢失数据 环境描述 宿主机系统:CentOS Linux release 7.9.2009 (Core) Docker版本&#xf…...

【前端】数据行点击选择

前言 【前篇文章】说了,我们公司的核心价值就是让人越来越懒,能怎么便捷就怎么便捷,主打一个简单实用又快捷,为了实现这个目标,我看成这个列表陷入了深思在想,要不要子表的数据加载在点击这个行时,就可以展示数据,这样就不用每次都要点那个小圆圈啦。 查资料 这显然…...

网络安全技术

网络安全技术是一种保护网络系统免受攻击、破坏或未经授权访问的技术。它涵盖了一系列的方法和工具,旨在确保数据的完整性、可用性和保密性。以下是一些主要的网络安全技术: 1. 防火墙:防火墙是一种用于阻止未经授权的访问,同时允…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

测试markdown--肇兴

day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如&#xff1a…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...