70 lines
2.1 KiB
Python
70 lines
2.1 KiB
Python
import requests
|
|
import time
|
|
import json
|
|
|
|
BASE_URL = "http://localhost:3015"
|
|
API_KEY = "jleu1212"
|
|
headers = {"X-API-Key": API_KEY, "Content-Type": "application/json"}
|
|
|
|
def upload_document():
|
|
"""Upload a test document."""
|
|
files = {"file": ("test.txt", b"Test content", "text/plain")}
|
|
resp = requests.post(f"{BASE_URL}/documents/upload", headers={"X-API-Key": API_KEY}, files=files)
|
|
print(f"Upload response: {resp.status_code}")
|
|
if resp.status_code == 200:
|
|
data = resp.json()
|
|
print(f"Track ID: {data.get('track_id')}")
|
|
return data.get('track_id')
|
|
return None
|
|
|
|
def call_paginated():
|
|
"""Call paginated endpoint and measure time."""
|
|
payload = {
|
|
"page": 1,
|
|
"page_size": 50,
|
|
"status_filter": None,
|
|
"sort_field": "updated_at",
|
|
"sort_direction": "desc"
|
|
}
|
|
start = time.time()
|
|
try:
|
|
resp = requests.post(f"{BASE_URL}/documents/paginated", headers=headers, json=payload, timeout=120)
|
|
elapsed = time.time() - start
|
|
print(f"Paginated response time: {elapsed:.2f}s, status: {resp.status_code}")
|
|
if resp.status_code != 200:
|
|
print(f"Response: {resp.text}")
|
|
return elapsed
|
|
except requests.exceptions.Timeout:
|
|
print("Paginated request timed out after 120 seconds")
|
|
return None
|
|
except Exception as e:
|
|
print(f"Error: {e}")
|
|
return None
|
|
|
|
def main():
|
|
print("Testing paginated endpoint performance...")
|
|
# First, ensure there are documents (upload one)
|
|
track_id = upload_document()
|
|
if track_id:
|
|
print("Waiting 5 seconds for processing...")
|
|
time.sleep(5)
|
|
|
|
# Call paginated multiple times
|
|
times = []
|
|
for i in range(3):
|
|
print(f"Attempt {i+1}:")
|
|
t = call_paginated()
|
|
if t:
|
|
times.append(t)
|
|
time.sleep(1)
|
|
|
|
if times:
|
|
avg = sum(times) / len(times)
|
|
print(f"Average response time: {avg:.2f}s")
|
|
if avg > 30:
|
|
print("WARNING: Response time >30 seconds, may cause nginx timeout.")
|
|
else:
|
|
print("All attempts failed.")
|
|
|
|
if __name__ == "__main__":
|
|
main() |