python实现接口压力测试

python实现接口压力测试

直接上代码:

# -*- coding: utf-8 -*-import json
import requests
import logginglogging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)restime = []
OK=[]
class Interface_pressure_test():def API(self,URL2,param):try:r = requests.get(URL2, params=param, timeout=10)r.raise_for_status()  # 如果响应状态码不是 200,就主动抛出异常except requests.RequestException as e:print(e)else:js = json.dumps(r.json())return [r.json(), r.elapsed.total_seconds(),js]def circulation(self,num,URL2,param):for i in range(int(num)):restime.append(Interface_pressure_test.API(URL2,param)[1])if json.loads(Interface_pressure_test.API(URL2, param)[2])["message"]=='ok':OK.append(json.loads(Interface_pressure_test.API(URL2, param)[2])["message"])logger.info('请求第' + str(i+1) + '次,请求'+json.loads(Interface_pressure_test.API(URL2, param)[2])["message"]+',状态码:'+json.loads(Interface_pressure_test.API(URL2, param)[2])["status"])else:logger.info('请求第' + str(i+1) + '次,请求' + json.loads(Interface_pressure_test.API(URL2, param)[2])["message"] + ',状态码:' +json.loads(Interface_pressure_test.API(URL2, param)[2])["status"])print('测试次数:',num)print('响应次数:', len(restime))print('正常响应次数:', len(OK))print('总响应最大时长:', max(restime))print('总响应最小时长:', min(restime))print('总响应时长:', sum(restime))print('平均响应时长:', sum(restime) / len(restime))if __name__ == '__main__':Interface_pressure_test = Interface_pressure_test()num = input('请输入次数:') #压力测试次数URL2 = 'http://www.kuaidi100.com/query'  #地址param = {'type' : 'zhongtong' , 'postid' :'73116039505988' }  #参数Interface_pressure_test.circulation(num,URL2,param)input('Press Enter to exit...') 

输出20次压测结果如下:

在这里插入图片描述

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

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

相关文章

JS 高级用法

关于JS高级用法 在学习JavaScript的过程中,我们必须了解一些基础知识,如变量、函数、类、循环等。这些基础知识是我们使用JavaScript的基础。但是,在日常的业务开发中,我们需要一些更高级的技巧来更好地解决问题。 通过阅读本文…

LayUI之增删改查

目录 一、前言 1.1 前言 1.2 前端代码(数据表格组件) 1.3 封装JS 二、LayUI增删改查的后台代码 2.1 编写Dao方法 2.1 增加 2.2 删除 2.3 修改 三、LayUI增删改查的前端代码 3.1 增加 一、前言 1.1 前言 上一篇文章我们一起做了LayUI的动态添加选项卡,这一篇…

IP库新增多种颜色转换空间IP

颜色空间转换是图像及视频中常用的解决方案,涉及hsv-rgb、rgb-ycrcb等一些常见的颜色空间互相转换,今天带来几种常见的颜色空间转换IP,主要如下: IP库简介 一直想做一个可以供大家学习、使用的开源IP库,类似OpenCores&…

基于单片机快递柜的设计与实现

功能介绍 以51单片机作为主控系统;液晶显示当前信息,最多可存储几十个;按下存储按键液晶显示当前快递柜剩余数量;继电器打开,表示用来放物品;正次按下存储按键将取消存快递,继电器关闭快递柜可用…

“探索图像处理的奥秘:使用Python和OpenCV进行图像和视频处理“

1、上传图片移除背景后下载。在线抠图软件_图片去除背景 | remove.bg – remove.bg 2、对下载的图片放大2倍。ClipDrop - Image upscaler 3、对放大后的下载照片进行编辑。 4、使用deepfacelive进行换脸。 1)将第三步的照片复制到指定文件夹。C:\myApp\deepfakeliv…

Proxmox VE 为 Windows 虚拟机添加硬盘遇到的问题

环境:PVE 8.x、Windows 11/Windows Server 2019 👉问题一: 为 windows 虚拟机添加磁盘,重启虚拟机后(在 windows 系统中重启)磁盘未能生效,并显示为橘色。 ❗橘色 意味需要重启VM才能生效&…

如何应对客户报价要求过低的情况?这些方案帮你化解危机!

有个客户在寄样品之前让报价,并且要求承诺价格必须低于15美金,业务员同意了,让客户把样板安排寄到中国,但是收到样品后发现客户的样品在侧面还有一块突出的部分,所以15美金太低了,无论如何也得18美金&#…

【数据挖掘】如何为可视化准备数据

一、说明 想要开始您的下一个数据可视化项目吗?首先与数据清理友好。数据清理是任何数据管道中的重要步骤,可将原始的“脏”数据输入转换为更可靠、相关和简洁的数据输入。诸如Tableau Prep或Alteryx之类的数据准备工具就是为此目的而创建的,…

深入理解React与闭包的关系

深入理解React与闭包的关系 声明一、介绍二、React组件及状态管理三、闭包在React中的应用保存状态处理作用域 四、总结 声明 本文将深入探讨React与闭包之间的关系。 我们将首先介绍React和闭包的基本概念,然后详细解释React组件中如何使用闭包来处理状态和作用域…

网络虚拟化相关的Linux接口介绍

Linux拥有丰富的网络虚拟化功能,能被虚拟机,容器还有云网络使用。在这篇文章中,我会给出所有通用网络虚拟化接口的简要介绍。没有代码分析,只有简短的接口介绍和在Linux上的使用操作。这系列接口都可以使用ip link命令实现。 这篇…

微信原生实现一个简易的图片上传功能

一、实现原理 wx.showActionSheet():显示操作菜单,选择是从相册选择还是相机拍摄照片wx.chooseImage():从本地相册选择图片或使用相机拍照。wx.uploadFile():将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求&#xff0c…

docker部署rabbitmq

docker部署rabbitmq 镜像搜索 docker search rabbitmq下载镜像 docker pull rabbitmq启动 docker run -d --name rabbitmq --restart always \ -p 15672:15672 \ -p 5672:5672 \ rabbitmq后台插件安装 docker exec -it rabbitmq /bin/bash rabbitmq-plugins enable rabb…

项目实战Qt网盘系统

背景:随着时代的发展,业务数据量的剧增及移动办公需求,人们对内存的需求越来越强,传统的存储产品,在容量及携带型日益不能满足人工的工作需求,网盘再此背景下应运而生。网盘是能够提供文件同步,…

回归预测 | MATLAB实现GRU(门控循环单元)多输入单输出(不调用工具箱函数)

回归预测 | MATLAB实现GRU(门控循环单元)多输入单输出(不调用工具箱函数) 文章目录 回归预测 | MATLAB实现GRU(门控循环单元)多输入单输出(不调用工具箱函数)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 GRU神经网络是LSTM神经网络的一种变体,LSTM 神经网 …

Ubuntu 考虑采用新的 “统一默认安装 (unified default install)”

导读Ubuntu安装程序中的 “最小化安装” (Minimal installation) 是该发行版多年来最受欢迎的功能之一。 当用户选择 Ubuntu 的 “最小化安装” 选项时,可以在安装更少的预装应用程序情况下,获得完整、功能齐全的 Ubuntu 系统。 但这个功能可能要被砍掉…

个人博客系统(二)

该博客系统共有八个页面,即注册页面、登录页面、添加文章页面、修改文章页面、我的博客列表页面、主页、查看文章详情页面、个人中心页面。 1 注册页面 该页面如图所示: 首先,要先判断注册的用户名、密码、确认密码以及验证码是否为空,若有一个为空,点击提交,则会提醒 …

网络知识点之-IS-IS协议

中间系统到中间系统(IS-IS,Intermediate system to intermediate system,读作“i-sys”)是一种内部网关协议,是电信运营商普遍采用的内部网关协议之一。标准的IS-IS协议是由国际标准化组织制定的ISO/IEC 10589:2002 所…

文献阅读:MathPrompter: Mathematical Reasoning using Large Language Models

文献阅读:MathPrompter: Mathematical Reasoning using Large Language Models 1. 内容简介2. 方法细节3. 实验内容4. 结论&思考 文献链接:https://arxiv.org/abs/2303.05398 1. 内容简介 这篇文章是今年3月份的时候微软提出的一篇工作&#xff0…

HTML+CSS复习第一天

浏览器内核标签: 单行省略号 white-space:nowrap text-overflow:ellipsis overflow:hidden多行省略号:使用到浏览器内核:-webkit- 谷歌浏览器 overflow:hidden text-overflow:ellipsis -webkit-box-orient: vertical; -webkit-line-clamp: 3; display…

uniapp请求接口封装

uniapp请求接口封装 在uniapp发送请求跟web的不同,而且通过uni.request这个方法进行调用。 示例: uni.request({url: https://www.example.com/request, //仅为示例,并非真实接口地址。data: {text: uni.request},header: {custom-header:…