python登录接口并发测试_使用python脚本作接口并发测试
经常使用的网站性能测试指标有:并发数、响应时间、吞吐量、性能计数器等。
一、并发数
并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。
二、响应时间
响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。响应时间是指执行一个请求从开始到最后收到响应数据所花费的整体时间。
三、吞吐量
吞吐量是指单位时间内系统能处理的请求数量,体现系统处理请求的能力,这是目前最经常使用的性能测试指标。
QPS(每秒查询数)、TPS(每秒事务数)是吞吐量的经常使用量化指标,另外还有HPS(每秒HTTP请求数)。
跟吞吐量有关的几个重要是:并发数、响应时间。
QPS(TPS),并发数、响应时间它们三者之间的关系是:
QPS(TPS)= 并发数/平均响应时间
四、性能计数器
性能计数器是描述服务器或操做系统性能的一些数据指标,如使用内存数、进程时间,在性能测试中发挥着"监控和分析"的做用,尤为是在分析通通可扩展性、进行新能瓶颈定位时有着很是关键的做用。
Linux中可使用top或者uptime命令看到当前系统的负载及资源利用率状况。
资源利用率:指系统各类资源的使用状况,如cpu占用率为68%,内存占用率为55%,通常使用"资源实际使用/总的资源可用量"造成资源利用率。压测脚本(下单的接口):html
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import requests,time,json,threading,random
class Presstest(object):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',
'Content-Type': 'application/json; charset=UTF-8',
}
def __init__(self,login_url,press_url,phone="1376193000",password="123456"):
self.login_url = login_url
self.press_url = press_url
self.phone = phone
self.password = password
self.session = requests.Session()
self.session.headers = self.headers
def login(self):
'''登录获取session'''
data = data = {'t': int(time.time() * 1000), 'userName': self.phone, 'passWord': self.password}
res = self.session.post(self.login_url,data=json.dumps(data))
XToken = res.json().get('data').get('companyToken')
self.session.headers['X-Token'] = XToken
def testinterface(self):
'''压测接口'''
self.session.headers['X-UnionId'] = 'of6uw1CUVhP533sQok'
data = {"id": int(''.join(str(random.choice(range(10))) for _ in range(10))),
"openId": "oMr0c5LGJjlTc", "addressId": 10, "shipType": "SELF", "totalAmount": 5,
"receivable": 5, "carts": [
{"amount": 1, "barcode": "1234567890", "skuId": 1, "spec": "34", "itemAmount": 5, "price": 0,
"cover": "xxxx-dd.oss-cn-shanghai.aliyuncs.com/dfc91fd067ac464c096c90af33a196a5.png",
"name": "沙宣洗发水", "packingType": "瓶", "placeOfOrigin": "上海", "productId": "310153323435134976",
"retailPrice": 5, "suitableAge": "1-100"}], "formId": "the formId is a mock one", "comments": "aa"}
global ERROR_NUM
try:
html = self.session.post(self.press_url, data=json.dumps(data))
if html.json().get('code') != 0:
print(html.json())
ERROR_NUM += 1
except Exception as e:
print(e)
ERROR_NUM += 1
def testonework(self):
'''一次并发处理单个任务'''
i = 0
while i < ONE_WORKER_NUM:
i += 1
self.work()
time.sleep(LOOP_SLEEP)
def run(self):
'''使用多线程进程并发测试'''
t1 = time.time()
Threads = []
for i in range(THREAD_NUM):
t = threading.Thread(target=self.testonework, name="T" + str(i))
t.setDaemon(True)
Threads.append(t)
for t in Threads:
t.start()
for t in Threads:
t.join()
t2 = time.time()
print("===============压测结果===================")
print("URL:", self.press_url)
print("任务数量:", THREAD_NUM, "*", ONE_WORKER_NUM, "=", THREAD_NUM * ONE_WORKER_NUM)
print("总耗时(秒):", t2 - t1)
print("每次请求耗时(秒):", (t2 - t1) / (THREAD_NUM * ONE_WORKER_NUM))
print("每秒承载请求数:", 1 / ((t2 - t1) / (THREAD_NUM * ONE_WORKER_NUM)))
print("错误数量:", ERROR_NUM)
if __name__ == '__main__':
login_url = 'https://ds.xxxxx.com/sys/sysUser/login'
press_url = 'https://ds.xxxxx.com/weshop/order/checkout'
phone = "1376193000"
password = "123456"
THREAD_NUM = 1 # 并发线程总数
ONE_WORKER_NUM = 5 # 每一个线程的循环次数
LOOP_SLEEP = 0.1 # 每次请求时间间隔(秒)
ERROR_NUM = 0 # 出错数
obj = Presstest(login_url=login_url,press_url=press_url,phone=phone,password=password)
obj.login()
obj.run()
输出结果:
===============压测结果===================
URL: https://ds.xxxxx.com/weshop/order/checkout
任务数量: 1 * 5 = 5
总耗时(秒): 1.9810078144073486
每次请求耗时(秒): 0.39620156288146974
每秒承载请求数: 2.5239678327547805
错误数量: 0
————————————————
版权声明:本文为CSDN博主「幸福丶如此」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接及本声明。
原文连接:https://blog.csdn.net/m0_37886429/article/details/89020455python
python登录接口并发测试_使用python脚本作接口并发测试相关推荐
- python登录界面源码_基于Python的自媒体小助手---登录页面的实现代码
核心技术:Python3.7 GUI技术:Tkinter (Python已经内置) 好多文章写Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 我看了N遍也没够好多东西都没有就基 ...
- python登录交换机执行命令_利用Python脚本登录交换机实现自动配置备份的方法
主机参考:服务器测评参考推荐网,专注分享服务器优惠信息!如果您想在本站投放您的广告,点此直达!如果您不想付费,您也可以免费投稿您的产品信息,点此直达!联系我们 部分文章发布时间较久远,可能存在未知因素 ...
- 基于python的压测工具_基于Python和SIPp的自动化压力测试系统设计和实现
信斌 王桂花 摘要:首先,分析了现有测试系统的不足,之后,介绍了软件组成和运行环境说明,最后,设计了基于Python和SIPp的自动化压力测试系统,并给出了相关代码.新的测试系统克服了现有测试系统的不 ...
- python实现登录支付宝收能量_用python撸支付宝体验金,才是程序员正确的打开方式...
支付宝近期推出了余额宝体验金活动,这个活动有两个部分一个是邀请好友赢推荐金,另一个是鲤鱼跃龙门,点击越快体验金金额越高. 今天讲讲怎么自动化实现快速点击加速增加我们的鲤鱼跃龙门的体验金额,实现的方法有 ...
- python编写高质量代码_用 Python 编写干净、可测试、高质量的代码
用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...
- python文档测试_【Python入门】19.调试器pdb、单元测试unittest和文档测试doctest
笔记更新于2019年12月4日, 摘要:各种调试方法介绍assert.logging.调试器pdb:单元测试unittest的编写方法.如何运行单元测试:文档测试doctest的编写 写在前面:为了更 ...
- python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...
2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...
- python cookbook 中文百度云_《Python+Cookbook》第三版中文v3.0.0PDF高清完整版免费下载|百度云盘...
David Beazley是一位居住在芝加哥的独立软件开发者以及图书作者.他主要的工作在于编程工具,提供定制化的软件开发服务,以及为软件开发者.科学家和工程师教授编程实践课程.他最为人熟知的工作在于P ...
- python 语音转文字软件_十行Python代码将微信语音转文字
QQ和微信这两款都是非常受人喜欢的聊天交友软件!可能大家平时没有留意到,也或者是大家可能很少用微信,或者很少用QQ吧!所以可能没有留意这些小细节!就是QQ上面发的语音消息是可以直接文字识别的,但是微信 ...
- python上位机界面设计_用Python写界面--上位机开发
Python真的可以说是无所不能,上到人工智能.图像识别.下到控制电机.爬虫.数据处理,前不久发现Python还可以做界面,虽然比较丑,但是还是可以一试. Python内置图形界面库--Tkinter ...
最新文章
- Android自定义控件NumberCircleProgressBar(圆形进度条)的实现
- 动态开点线段树(多棵线段树)的内存分配与回收
- 射手科技公开课第一辑 『项目管理和代码规范』
- android p下载地址,Android P发布,4款国产手机可体验,附下载地址
- hdu1542 矩形面积并(线段树+离散化+扫描线)
- 杂题 P1640 [SCOI2010]连续攻击游戏
- Vmware workstation 安装教程
- 新浪滚动新闻的json数据获取页面
- hexo博客搭建及主题优化(一)
- win10设置以管理员身份开机启动
- linux 造字程序下载,truetype造字程序
- 同一网段和不同网段中的两台主机通信的过程
- 百度知道怎么引流减肥粉?想要打破粉丝瓶颈,必须要借助一个有力的平台
- 【论文阅读】Learning Deep Features for Discriminative Localization
- python import .pyc_Python pyc格式解析
- 微信公众号 模板消息
- ubuntu 更新chrome
- 微信好友数据统计,能测出删除你的好友
- 微信小程序开发-高德地图api
- 导出报错cannot be resolved to absolute file path because it does not reside in the file system
热门文章
- wingide python_WingIDE下载|Wingware Python WingIDE汉化中文版6.0 下载_当游网
- Android软件常用下载地址
- angular烂笔头
- 元宇宙:人类叙事的下一个100年
- win7html.exe,win7系统exe程序打开方式还原怎么弄 win7系统还原exe程序打开方式办法介绍...
- matlab-如何进行边缘检测/边缘提取(对弹孔进行边缘检测)
- WIN10 下的erlang + rabbitmq安装,以及遇到的问题
- 论文笔记——Comparing to Learn
- MSP430初学one
- 2017双11技术揭秘—双十一海量数据下EagleEye的使命和挑战