I want to test a proxy [gateway] service. What would be the simplest script to check the proxy’s IP speed and performance? See the following script.
import requests, time max_request_timeout = 30 # value in seconds total_visits, timeout_exception_amount, too_many_redirects_exception_amount, request_exception_amount =0,0,0,0 url= 'https://ipinfo.io/' proxy= 'XXXXXXXXX:XXXX' # proxy setting is different based on different service actual_visit , actual_visit_code_200, load_time_sum = 0, 0, 0 N=1000 for i in range(0,N): total_visits += 1 start = time.time() try: res = requests.get(url, proxies = {'http': proxy, 'https': proxy}, timeout=max_request_timeout) actual_visit +=1 except requests.exceptions.Timeout as e: print "Timeout exception", e timeout_exception_amount += 1 continue except requests.exceptions.TooManyRedirects as e: print "TooManyRedirects exception", e too_many_redirects_exception_amount += 1 continue except requests.exceptions.RequestException as e: print "RequestException exception", e request_exception_amount += 1 continue if res and 200 == res.status_code: actual_visit_code_200 += 1 load_time = round(time.time()-start, 2 ) load_time_sum+=load_time else: print 'Unsuccessful request. Response status code:',res.status_code load_time = None #print total_visits - request_exception_amount #print round(100*(total_visits - request_exception_amount)/total_visits, 3) print str(i)+'.\n', 'Performance: {}%'\ .format(round(100*(total_visits - request_exception_amount)/total_visits, 3)) print 'RequestException amount:', request_exception_amount print 'Avg. load time:', round(load_time_sum/actual_visit_code_200, 3) print '\n************ Results ***************' print 'Total visits:', total_visits print 'Actual visits, no timeout:', actual_visit print 'Actual visit with status code 200:', actual_visit_code_200 print 'Timeout exception amount:', timeout_exception_amount print 'Too many redirects exception amount:', too_many_redirects_exception_amount print 'RequestException amount:', request_exception_amount print 'Performance: {}%'.format(round(100*(total_visits - request_exception_amount)/total_visits, 3)) print 'Avg. load time:', round(load_time_sum/actual_visit_code_200, 3)
This script runs in a loop, iterating over url(s) or rotating proxy value if needed. The script accumulates total url visits (total_visits) and also tallies the various exceptions (Timeout, TooManyRedirects and Request exceptions) into corresponding variables.
Note: only Request Exceptions are caused by a proxy server. The other kinds of exceptions are website (resource) specific: Timeout and TooManyRedirects exceptions.
For calculating the performance of a proxy server, I do the following:
print 'Performance: {}%'.format(round(100*(total_visits - request_exception_amount)/total_visits, 3))
Thus I get a proxy server performance value (in most cases close to 100%).
3 replies on “Proxy speed and performance test”
i have a desktop unlimited rotating ip project being developed
i can share here when done with the software
i think so, it’s a good subject for a blog post.
Matt, any update on the project?