كيفية اختبار حد خنق API على شبكة الإنترنت في بيثون

StackOverflow https://stackoverflow.com/questions/3657894

  •  01-10-2019
  •  | 
  •  

سؤال

أرغب في اختبار حد خنق API على الويب لموقع معين باستخدام Python.

يتيح حد خنق API هذا X طلبات كحد أقصى أكثر من ثواني لكل IP.

أود أن أكون قادرًا على اختبار موثوقية هذا الحد من الخانق ، وخاصة في حالات الحدود (طلبات X-1 ، طلبات X+1)

هل يمكن أن تقترح طريقة جيدة للقيام بذلك؟

هل كانت مفيدة؟

المحلول

أود أن أكتب نصًا للقيام بما يلي:

  1. قم بتقديم انفجار من طلبات X ، وتوقيت كل طلب (أود استخدامه time.time()). لا ينبغي أن يكون هناك دليل على الاختناق في نتائج التوقيت. قد تحتاج إلى موازاة للضرب للحد إذا كان الكمون مهمًا.
  2. تقديم طلب آخر ووقت ذلك. يجب اختناقه ، ويجب أن يكون واضحًا في الوقت المستغرق.

تحديث: هنا رمز نموذج لطلبات 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)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top