This commit is contained in:
ZhuJW
2026-03-13 20:53:44 +08:00
parent da6abea48b
commit 8584821f36
6 changed files with 223 additions and 112 deletions

57
test_sse.py Normal file
View File

@@ -0,0 +1,57 @@
"""
SSE 测试脚本 - 验证事件流是否正确发送
"""
import requests
import json
import time
import sys
# 设置控制台输出编码
sys.stdout.reconfigure(encoding='utf-8')
# 启动任务
response = requests.post(
'http://localhost:8080/api/v1/sdlc/start',
json={'requirement': '测试需求:做一个简单的计算器'},
headers={'Content-Type': 'application/json'}
)
if response.status_code != 200:
print(f"Start failed: {response.status_code} - {response.text}")
exit(1)
task_data = response.json()
task_id = task_data['task_id']
print(f"Task started: {task_id}")
print("=" * 60)
# 连接 SSE
sse_url = f'http://localhost:8080/api/v1/sdlc/stream/{task_id}'
print(f"Connecting SSE: {sse_url}")
print("=" * 60)
with requests.get(sse_url, stream=True, timeout=300) as sse_response:
for line in sse_response.iter_lines():
if line:
line_str = line.decode('utf-8')
print(line_str)
# 解析事件
if line_str.startswith('event:'):
event_type = line_str[6:].strip()
print(f" -> Event type: {event_type}")
if line_str.startswith('data:'):
try:
data = json.loads(line_str[5:].strip())
print(f" -> Data: {json.dumps(data, indent=2, ensure_ascii=False)}")
except:
pass
# 如果是结束事件,退出
if 'event: final_result' in line_str or 'event: error' in line_str:
print("=" * 60)
print("Task completed!")
break
print("Test completed")