创建requests
后请求这样的,我在那里指定超时阈值:如何测量Python请求的服务器响应时间POST请求?
response = requests.post(url, data=post_fields, timeout=timeout)
然而,要确定一个“好”的阈值,我想标杆服务器的响应时间提前。
如何计算服务器的最小和最大响应时间?
创建requests
后请求这样的,我在那里指定超时阈值:如何测量Python请求的服务器响应时间POST请求?
response = requests.post(url, data=post_fields, timeout=timeout)
然而,要确定一个“好”的阈值,我想标杆服务器的响应时间提前。
如何计算服务器的最小和最大响应时间?
的Response
对象由requests.post()
返回有一个属性称为elapsed
,它给出Request
之间的时间差值被发送,并且收到Response
。要获得的秒数,使用total_seconds()
方法:
response = requests.post(url, data=post_fields, timeout=timeout)
print(response.elapsed.total_seconds())
应当提及的是requests.post()
是同步操作,这意味着它“块”,直到响应被接收。
这取决于您是否可以通过大量测试请求来访问服务器,或者您是否需要等待真正的请求发生。
如果你需要真正的请求数据,那么你需要换通话,以确定每个请求的时间:
start = time.clock()
response = requests.post(url, data=post_fields, timeout=timeout)
request_time = time.clock() - start
self.logger.info("Request completed in {0:.0f}ms".format(request_time)
#store request_time in persistent data store
你会需要的地方每个请求的结果存储在一段时间(文件,数据库等)。然后,您可以计算响应时间的统计信息。
如果你有一个测试服务器可用,你可以基准,而无需使用类似apachebench蟒蛇并为每个请求发送测试数据的响应:
查看'contextmanager'你可以将它包装在一个简单的函数中,该函数需要经过的时间,而不必编写一个全新的装饰器 –