python +请求如何实现接口压力测试500次,查看响应时间

  介绍

这篇文章主要讲解了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 +请求如何实现接口压力测试500次,查看响应时间

<强> 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次,查看响应时间