python性能测试,请求QPS测试
QPS = (1000ms/平均响应时间ms)*服务并行数量
#!/user/bin/env python
#coding=utf-8
import requests
import datetime
import time
import threading
import json class url_request():
times = []
error = []
def req(self):
for i in range(100):
myreq=url_request()
headers = {'User-Agent' : 'Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'}
payload = {'user_id':"000001",'product_id':"000001","query":"价格怎么样"}
payload = json.dumps(payload)
r = requests.post("http://192.168.28.70:6666/get_answer",data=payload)
ResponseTime=float(r.elapsed.microseconds)/1000 #获取响应时间,单位ms
myreq.times.append(ResponseTime) #将响应时间写入数组
if r.status_code !=200 :
myreq.error.append("0")
if __name__=='__main__':
myreq=url_request()
threads = []
starttime = datetime.datetime.now()
print ( "request start time %s" %starttime)
nub = 1000#设置并发线程数
ThinkTime = 0.1#设置思考时间
for i in range(1, nub+1):
t = threading.Thread(target=myreq.req)
threads.append(t)
for t in threads:
time.sleep(ThinkTime)
#print "thread %s" %t #打印线程
t.setDaemon(True)
t.start()
t.join()
endtime = datetime.datetime.now()
print ("request end time %s" %endtime)
time.sleep(3)
AverageTime = "{:.3f}".format(float(sum(myreq.times))/float(len(myreq.times))) #计算数组的平均值,保留3位小数
print ("Average Response Time %s ms" %AverageTime )#打印平均响应时间
usetime = str(endtime - starttime)
hour = usetime.split(':').pop(0)
minute = usetime.split(':').pop(1)
second = usetime.split(':').pop(2)
totaltime = float(hour)*60*60 + float(minute)*60 + float(second) #计算总的思考时间+请求时间
print ("Concurrent processing %s" %nub) #打印并发数
print ("use total time %s s" %(totaltime-float(nub*ThinkTime))) #打印总共消耗的时间
print ("fail request %s" %myreq.error.count("0")) #打印错误请求数
request start time 2020-09-09 11:24:24.234534
request end time 2020-09-09 11:24:29.448628
Average Response Time 44.337 ms
Concurrent processing 50
use total time 0.21409400000000023 s
fail request 0
python性能测试,请求QPS测试的更多相关文章
- 性能测试vs负载测试vs压力测试-概念普及
下面我们主要介绍性能测试.负载测试和压力测试. 效率作为ISO 9126内部和外部质量的重要质量属性之一,其含义是在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力.资源可能包括其他软 ...
- [原创] 上海招聘高级测试工程师(性能测试/自动化测试/App测试),长期有效
[原创] 上海招聘高级测试工程师(性能测试/自动化测试/App测试方向),长期有效 高级测试工程师(性能/自动化方向) 1.负责性能测试计划,性能需求分析,性能测试方案和用例设计,搭建性能测试环境,执 ...
- 性能测试vs负载测试vs压力测试
下面我们主要介绍性能测试.负载测试和压力测试. 效率作为ISO 9126内部和外部质量的重要质量属性之一,其含义是在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力.资源可能包括其他软 ...
- 性能测试 vs 负载测试 vs 压力测试
在做一些软件测试工作时,常常会被提及性能测试.负载测试.压力测试,这也是在软件测试方面最容易混淆的三个概念.之前和一个测试大牛聊天,他和我说常常面试一些测试人员会问一些这样的问题,大多人认为负载测试等 ...
- Python接口测试实战2 - 使用Python发送请求
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- python 网络请求类库 requests 使用
python 网络请求类库 requests 使用 requests是 为python封装的强大 REST 操作类库 githubhttps://github.com/kennethreitz/req ...
- 使用python+pychram进行API测试(接口测试)初级STEP 1
花了一天时间安装了解了下最基本的python+pychram进行API测试,下面这个可以指导自己以后入门:基本的开发级别还需要学习 1.python下载地址:https://www.python.or ...
- Loadrunner模拟JSON接口请求进行测试
Loadrunner模拟JSON接口请求进行测试 一.loadrunner脚本创建 1.Insert - New step -选择Custom Request - web_custom_re ...
- python网页请求urllib2模块简单封装代码
这篇文章主要分享一个python网页请求模块urllib2模块的简单封装代码. 原文转自:http://www.jbxue.com/article/16585.html 对python网页请求模块ur ...
- python多线程在渗透测试中的应用
难易程度:★★★ 阅读点:python;web安全; 文章作者:xiaoye 文章来源:i春秋 关键字:网络渗透技术 前言 python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天, ...
随机推荐
- XAF Blazor FilterPanel 布局样式
从上一篇关于ListView布局样式的文章中,我们知道XAFBlazor是移动优先的,如果想在PC端有更好的用户体验,我们需要对布局样式进行修改.这篇介绍在之前文章中提到的FilterPanel,它的 ...
- BKP备份寄存器&RTC实时时钟
UNIX时间戳 time.h 三条路,上面主要作为系统时钟,中间的作为RTC时钟,下面的作为看门狗的时钟 与RTC有关的外部晶振(主电源断电不停)一般都i是32.768KHZ 2^15=32 ...
- think about 和 think of 区别
about 是 on by out 简称 about 在旁边 在外围 周边 think about you 想你有关的事 of 是 belong to 什么什么的 of指的是 这个人或者这个事本身相关 ...
- 数据处理——IF函数求同时满足多个条件 多个条件满足一个以上
以满足两个条件为例,满足多个条件类似 以如下案例为例进行说明: 一.IF公式同时满足多个条件 此例也可使用函数的嵌套,对于函数使用掌握不牢的新手,嵌套使用会有些困难,以下方法针对刚入门学习参考 1.利 ...
- 逆向通达信Level-2 续八 (BackTrace, Trace任意TdxW.exe内部函数, Breakin)
TdxW kun anti-debugging, i debug you without a debugger. 添加bt命令,BackTrace 下图是hack某一个函数后使用bt命令进行Trace ...
- HTML(html结构、标签导读 、路径))
HTML第一天 我们接下来是进行的网页开发网页的相关概念: 什么是网页? 什么是HTML? 网页的形成? 一 什么是网页: 1.网站是指在因特网上根据一定的规则,使用 HTML 等制作的用于展示特定内 ...
- 三维模型3DTile格式轻量化压缩处理重难点分析
三维模型3DTile格式轻量化压缩处理重难点分析 在对三维模型3DTile格式进行轻量化压缩处理的过程中,存在一些重要而又困难的问题需要解决.以下是几个主要的重难点: 1.压缩率和模型质量之间的平衡: ...
- 原型&继承题目及内容解答
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1. 代码输出结果 function Person(name) { this.name = name } var p2 = new Per ...
- 记录-一个栗子让你彻底弄懂CSS3补间动画和逐帧动画
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 CSS3提供了Animation关键帧动画,我们在工作中比较常用.但在写CSS动画的时候,其实Animation能实现两种动画模式: 补间 ...
- 记录--图解 Vue 响应式原理
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 最近部门分享,有同学提到了 Vue 响应式原理,大家在讨论时,发现一些同学对这一知识理解还不够深入,不能形成一个闭环,为了帮助大家理解这个 ...