38 lines
1.1 KiB
Python
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) |