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

pytest压力测试:不断发送数据,直到发现数据丢失

示例场景

假设有一个 send_data 函数接受数据并返回成功或失败的状态。

创建一个测试用例,通过逐步增加数据量来测试这个函数,直到返回失败为止。

步骤

  1. 定义压力测试函数

    定义一个函数。不断发送数据,直到发现数据丢失。

  2. 创建 pytest 测试用例

    使用 pytest 运行这个测试函数,记录每一步的结果。

运行成功效果

import pytest
import time# 假设这是你的发送数据函数
def send_data(att, data):# 模拟发送数据并返回状态# 在实际代码中,你应该调用你要测试的服务if data > 2400000:  # 设定一个阈值作为测试条件assert False , f"Data loss detected with number_of_packets :第{att}次,长度增加到 {data} "return Truedef test_stress():number_of_packets = 1400  # 初始数据step_number = 10000       # 每次增加的数据量max_attempts = 4          # 最大尝试次数,防止无限循环attempts = 0while attempts < max_attempts:# assert send_data(data): 如果 send_data(data) 返回 False,断言失败,抛出异常并退出循环assert send_data(attempts,number_of_packets), f"Data loss detected with number_of_packets :第{attempts}次,长度增加到 {number_of_packets} "# 增加数据量number_of_packets += step_numberattempts += 1# 可以选择等待一段时间,模拟现实环境中的间隔time.sleep(1)  # 延时1秒print(f"No data loss detected within the test limits. 每次增加的数据量{step_number},最大尝试次数{max_attempts},最大长度{number_of_packets}")

PASSED                                       [100%]No data loss detected within the test limits. 每次增加的数据量10000,最大尝试次数4,最大长度41400

运行失败效果

import pytest
import time# 假设这是你的发送数据函数
def send_data(att, data):# 模拟发送数据并返回状态# 在实际代码中,你应该调用你要测试的服务if data > 24000:  # 设定一个阈值作为测试条件assert False , f"Data loss detected with number_of_packets :第{att}次,长度增加到 {data} "return Truedef test_stress():number_of_packets = 1400  # 初始数据step_number = 10000       # 每次增加的数据量max_attempts = 4          # 最大尝试次数,防止无限循环attempts = 0while attempts < max_attempts:# assert send_data(data): 如果 send_data(data) 返回 False,断言失败,抛出异常并退出循环assert send_data(attempts,number_of_packets), f"Data loss detected with number_of_packets :第{attempts}次,长度增加到 {number_of_packets} "# 增加数据量number_of_packets += step_numberattempts += 1# 可以选择等待一段时间,模拟现实环境中的间隔time.sleep(1)  # 延时1秒print(f"No data loss detected within the test limits. 每次增加的数据量{step_number},最大尝试次数{max_attempts},最大长度{number_of_packets}")

 

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【AcWing】861. 二分图的最大匹配(匈牙利算法)
  • python-网页自动化(二)
  • 强烈推荐!分享5款ai论文生成软件
  • 修改密码模块中对轮询接口响应用户失效问题的处理
  • Android13 Hotseat客制化--Hotseat修改布局、支持滑动、去掉开机弹动效果、禁止创建文件夹
  • GitHub图床
  • pytorch pyro 贝叶斯神经网络 bnn beyesean neure network svi ​定制SVI目标和培训循环,变更推理
  • 经验笔记:前端堆栈分配
  • 批量下载,控制并发(利用promise 做需求池队列)
  • 如何理解基于架构的软件设计(ABSD)
  • TMS320F28335芯片及使用介绍
  • 不到200行代码,一键写出简单贪吃蛇网页游戏!附详细代码!快来看看吧!
  • QML学习二:Qt启用qml文件实时预览编辑,以及打印日志到控制台
  • 【开源大模型生态5】解放大脑
  • 1034. 边界着色(JAVA)
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 2017 年终总结 —— 在路上
  • css系列之关于字体的事
  • Druid 在有赞的实践
  • Go 语言编译器的 //go: 详解
  • Java程序员幽默爆笑锦集
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • LintCode 31. partitionArray 数组划分
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • PAT A1017 优先队列
  • Python学习笔记 字符串拼接
  • Rancher-k8s加速安装文档
  • ReactNativeweexDeviceOne对比
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • spring学习第二天
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端存储 - localStorage
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 数组大概知多少
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # include “ “ 和 # include < >两者的区别
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #微信小程序:微信小程序常见的配置传值
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (动态规划)5. 最长回文子串 java解决
  • (二)换源+apt-get基础配置+搜狗拼音
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)甲方乙方——赵民谈找工作
  • (转)真正的中国天气api接口xml,json(求加精) ...