我想使用Python测试给定网站的Web API限制。
此API限制限制允许每个IP超过Y秒的X请求MAX。
我希望能够测试此节流限制的可靠性,特别是在边界情况下(X-1请求,X + 1请求)
你能建议一个好方法吗?
答案 0 :(得分:2)
我会编写一个脚本来执行以下操作:
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)