Stress testing python script
This commit is contained in:
parent
dfe3804467
commit
8b58f97aa2
1 changed files with 38 additions and 0 deletions
38
server/testing/stresstest.py
Normal file
38
server/testing/stresstest.py
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
import requests
|
||||||
|
import multiprocessing
|
||||||
|
import time
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
# Target API endpoint
|
||||||
|
api_url = 'http://localhost:8080/api/register'
|
||||||
|
|
||||||
|
# Send a POST request to the API with mock data
|
||||||
|
def send_request(_):
|
||||||
|
username = str(uuid.uuid4())[:8]
|
||||||
|
password = str(uuid.uuid4())[-12:]
|
||||||
|
payload = {'username': username, 'password': password, 'captcha': '1234'}
|
||||||
|
response = requests.post(api_url, json=payload)
|
||||||
|
return response.status_code
|
||||||
|
|
||||||
|
# Number of parallel requests to send
|
||||||
|
num_requests = 10
|
||||||
|
|
||||||
|
# Pool of worker processes
|
||||||
|
pool = multiprocessing.Pool(processes=num_requests)
|
||||||
|
|
||||||
|
# Record the start time
|
||||||
|
start_time = time.time()
|
||||||
|
|
||||||
|
n = 0
|
||||||
|
# Bench for one min
|
||||||
|
while time.time() - start_time < 60:
|
||||||
|
results = pool.map(send_request, range(num_requests))
|
||||||
|
n += num_requests
|
||||||
|
|
||||||
|
# Close the pool
|
||||||
|
pool.close()
|
||||||
|
pool.join()
|
||||||
|
|
||||||
|
# Print summary
|
||||||
|
print(f'Total Requests: {n}')
|
||||||
|
print(f'Requests per second: {n / (time.time() - start_time)} (avg)')
|
Loading…
Reference in a new issue