介绍
这篇文章主要讲解了python +请求如何实现接口压力测试500次,查看响应时间,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
接口压力测试500次,查看响应时间
进口json 进口的要求 导入日志 logging.basicConfig(=日志级别。信息,格式=& # 39;% (asctime) s - %(名字)s - % (levelname) s - %(消息)& # 39;) 记录器=logging.getLogger (__name__) restime=[] 好吧=[] 类Restime (): def API(自我、URL2参数): 试一试: r=请求。get (URL2 params=参数,超时=10) r.raise_for_status() #如果响应状态码不是200,就主动抛出异常 除了请求。RequestException e: 打印(e) 其他: js=json.dumps (r.json ()) 返回(r.json (), r.elapsed.total_seconds (), js) def循环(自我,num URL2,参数): 因为我在范围(num): restime.append (Restime.API (URL2 param) [1]) 如果json.loads (Restime。API (URL2 param) [2]) (“message")==& # 39;好# 39;: OK.append (json.loads (Restime。API (URL2 param) [2]) (“message")) logger.info(& # 39;请求第& # 39;+ str (i + 1) + & # 39;次,请求& # 39;+ json.loads (Restime。API (URL2 param) [2]) (“message") + & # 39;,状态码:& # 39;+ json.loads (Restime。API (URL2 param) [2]) (“status")) 其他: logger.info(& # 39;请求第& # 39;+ str (i + 1) + & # 39;次,请求& # 39;+ json.loads (Restime。API (URL2 param) [2]) (“message") + & # 39;,状态码:& # 39;+ json.loads (Restime。API (URL2 param) [2]) (“status")) 打印(& # 39;测试次数:& # 39;,num) 打印(& # 39;响应次数:& # 39;,len (restime)) 打印(& # 39;正常响应次数:& # 39;,len(好)) 打印(& # 39;总响应最大时长:& # 39;,马克斯(restime)) 打印(& # 39;总响应最小时长:& # 39;,min (restime)) 打印(& # 39;总响应时长:& # 39;,总和(restime)) 打印(& # 39;平均响应时长:& # 39;,总和(restime)/len (restime)) if __name__==& # 39; __main__ # 39;: Restime=Restime () # URL2=& # 39; http://wthrcdn.etouch.cn/weather_mini& # 39; #参数={& # 39;ip # 39;: & # 39; 8.8.8.8& # 39;, & # 39;城市# 39;:& # 39;西安& # 39;} num=500 #压力测试次数 URL2=& # 39; http://www.kuaidi100.com/query& # 39;#地址 param={& # 39;类型# 39;:& # 39;制定# 39;& # 39;postid& # 39;:& # 39;73116039505988 & # 39;}#参数 Restime.circulation (num URL2参数) 输入(& # 39;按回车退出……& # 39;)
测试次数:500 响应次数:500 正常响应次数:500 总响应最大时长:0.336179 总响应最小时长:0.062753 总响应时长:41.892936000000034 平均响应时长:0.08378587200000007
<强> python利用请求统计1个接口的响应时间强>
请求统计接口的响应时间有2种方式
r.elapsed.total_seconds ()
引用>
r.elapsed.microseconds/(1000 * 1000)但是第2种方式,当调用的接口响应时间大于1 s时,得到的响应时间是不准确的。下面来看示例
首先看接口响应时间小于1 s时,分别使用2种方式得到的帖子“https://www.baidu.com/"的响应时间
代码示例:
进口要求 url=癶ttps://www.baidu.com/" r=requests.post (url) #打印(r.text) #推荐使用这种方式统计一个接口的响应时间,准确性更高 print (r.elapsed.total_seconds ()) #当接口的响应时间大于1 s时,下面这种统计方式就会不准确 打印(r.elapsed.microseconds/(1000 * 1000)运行结果:
0.039872 0.039872
引用>
再测试一个接口响应时间超过1 s的接口,
然后看接口响应时间大于1 s时,分别使用2种方式得到帖子“http://cn.python-requests.org/zh_CN/1atest/"的响应时间
果然发现2种方式统计的结果不一样了呢
进口要求 url=癶ttp://cn.python-requests.org/zh_CN/1atest/" r=requests.post (url) #打印(r.text) #结果正确 print (r.elapsed.total_seconds ()) #结果不正确 印刷(r.elapsed.microseconds/(1000 * 1000)运行结果:
1.298427
引用>
0.298427
很显然,r.elapsed.microseconds/(1000 * 1000)在接口的响应时间大于1 s时,只截取了后面的小数部分
看完上述内容,是不是对python +请求如何实现接口压力测试500次,查看响应时间有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。
python +请求如何实现接口压力测试500次,查看响应时间