Files
cad-agent/test_autoagent.py
T

64 lines
1.8 KiB
Python
Raw Normal View History

2026-09-28 22:13:47 +08:00
import socket
import json
2026-10-02 23:43:18 +08:00
import time
2026-09-28 22:13:47 +08:00
2026-10-02 23:43:18 +08:00
def send_request(req_data, silent=False):
2026-10-02 20:39:34 +08:00
try:
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("127.0.0.1", 8080))
2026-10-02 23:43:18 +08:00
# 发送 UTF-8 编码的 JSON 请求
2026-10-02 20:39:34 +08:00
client.sendall(json.dumps(req_data).encode('utf-8'))
2026-10-02 23:43:18 +08:00
# 接收并解码结果
2026-10-02 20:39:34 +08:00
response = client.recv(4096)
2026-10-02 23:43:18 +08:00
if not silent:
print(">>> 收到回复:")
print(json.dumps(json.loads(response.decode('utf-8')), indent=2, ensure_ascii=False))
print("-" * 50)
2026-10-02 20:39:34 +08:00
client.close()
except Exception as e:
print(f"连接失败: {e}")
2026-09-28 22:13:47 +08:00
2026-10-02 20:39:34 +08:00
if __name__ == "__main__":
2026-10-02 23:43:18 +08:00
print("=== 测试 1: 验证 C++ DLL 工具调用 ===")
2026-10-02 20:39:34 +08:00
request_call = {
"jsonrpc": "2.0",
2026-10-02 23:43:18 +08:00
"id": 4,
2026-10-02 20:39:34 +08:00
"method": "tools/call",
"params": {
2026-10-02 23:43:18 +08:00
"name": "draw_circle_cpp",
2026-10-02 20:39:34 +08:00
"arguments": {
2026-10-02 23:43:18 +08:00
"cx": 2000.0,
"cy": 2000.0,
"r": 500.0
2026-10-02 20:39:34 +08:00
}
}
}
2026-10-02 23:43:18 +08:00
send_request(request_call)
# 稍作停顿,方便观察 CAD 屏幕
time.sleep(1)
print("\n=== 测试 2: C++ 并发写入压力测试 (生成10个同心圆) ===")
for i in range(10):
radius = 100.0 + i * 50.0
req = {
"jsonrpc": "2.0",
"id": 100 + i,
"method": "tools/call",
"params": {
"name": "draw_circle_cpp",
"arguments": {
"cx": 4000.0,
"cy": 2000.0,
"r": radius
}
}
}
# 连续快速发送,不打印详细返回以模拟极限并发
send_request(req, silent=True)
print(">>> 并发指令发送完毕,请检查 CAD 屏幕。")