我想使用 Python 测试给定站点的 Web API 节流限制。
此 API 节流限制允许每个 IP 超过 Y 秒的 X 请求 MAX。
我希望能够测试此油门限制的可靠性,特别是在边界情况下(X-1 请求,X+1 请求)
你能建议一个好的方法吗?
我想使用 Python 测试给定站点的 Web API 节流限制。
此 API 节流限制允许每个 IP 超过 Y 秒的 X 请求 MAX。
我希望能够测试此油门限制的可靠性,特别是在边界情况下(X-1 请求,X+1 请求)
你能建议一个好的方法吗?
我会编写一个脚本来执行以下操作:
time.time()
)。计时结果中不应存在节流的证据。如果延迟很大,您可能需要并行化以达到限制。更新:这是 HTTP 请求的示例代码:
import time
import urllib2
URL = 'http://twitter.com'
def request_time():
start_time = time.time()
urllib2.urlopen(URL).read()
end_time = time.time()
return end_time - start_time
def throttling_test(n):
"""Test if processing more than n requests is throttled."""
experiment_start = time.time()
for i in range(n):
t = request_time()
print 'Request #%d took %.5f ms' % (i+1, t * 1000.0)
print '--- Throttling limit crossed ---'
t = request_time()
print 'Request #%d took %.5f ms' % (n+1, t * 1000.0)
throttling_test(3)