Files
button/heavy_load.py
2020-10-12 16:24:31 -04:00

38 lines
1.1 KiB
Python

import getpass
import threading
import requests
import time
import sys
from requests.auth import HTTPBasicAuth
rate = int(sys.argv[1]) # /second
if rate == 0:
burst = True
print("Burst mode activated")
else:
burst = False
sleep = 1 / rate
print(f"Beginning load test at {rate} calls/second")
url = 'https://button.ducoterra.net/'
# url = 'http://button.localhost/'
def timer(func, *args, **kwargs):
then = time.time()
func(*args, **kwargs)
print(time.time() - then)
# init = requests.get('https://button.ducoterra.net/button/')
init = requests.get(url)
csrf = init.cookies.get('csrftoken')
session = init.cookies.get('sessionid')
me = lambda num: print(num) or print(requests.post(url, headers = {'Content-Type': 'application/json', 'X-CSRFToken': csrf, 'Cookie': f'csrftoken={csrf}; sessionid={session}'}).text)
threadme = lambda num: threading.Thread(target=timer, args=(me, num)).start()
if burst:
[threadme(num) for num in range(0,100)]
else:
num = 1
while True:
threadme(num)
num += 1
time.sleep(sleep)