41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
import time
|
|
import sys
|
|
import os
|
|
|
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "src")))
|
|
|
|
from src.api_hook_client import ApiHookClient
|
|
|
|
|
|
def test_comms_volume_stress_performance(live_gui) -> None:
|
|
time.sleep(5.0)
|
|
client = ApiHookClient()
|
|
time.sleep(2.0)
|
|
baseline_resp = client.get_performance()
|
|
baseline = baseline_resp.get("performance", {})
|
|
baseline_ft = baseline.get("last_frame_time_ms", 0.0)
|
|
large_session = []
|
|
for i in range(50):
|
|
large_session.append(
|
|
{
|
|
"role": "User",
|
|
"content": f"Stress test entry {i} " * 5,
|
|
"ts": time.time(),
|
|
"collapsed": False,
|
|
}
|
|
)
|
|
client.post_session(large_session)
|
|
time.sleep(1.0)
|
|
stress_resp = client.get_performance()
|
|
stress = stress_resp.get("performance", {})
|
|
stress_ft = stress.get("last_frame_time_ms", 0.0)
|
|
print(f"Baseline FT: {baseline_ft:.2f}ms, Stress FT: {stress_ft:.2f}ms")
|
|
if stress_ft > 0:
|
|
assert stress_ft < 100.0, (
|
|
f"Stress frame time {stress_ft:.2f}ms exceeds 10fps threshold"
|
|
)
|
|
session_data = client.get_session()
|
|
entries = session_data.get("session", {}).get("entries", [])
|
|
assert len(entries) >= 50, f"Expected at least 50 entries, got {len(entries)}"
|