Files
cad-agent/test_autoagent.py
T
gjm a7eaa8483f add
增加了 plugin 工程
2026-10-02 23:43:18 +08:00

64 lines
1.8 KiB
Python

import socket
import json
import time
def send_request(req_data, silent=False):
try:
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("127.0.0.1", 8080))
# 发送 UTF-8 编码的 JSON 请求
client.sendall(json.dumps(req_data).encode('utf-8'))
# 接收并解码结果
response = client.recv(4096)
if not silent:
print(">>> 收到回复:")
print(json.dumps(json.loads(response.decode('utf-8')), indent=2, ensure_ascii=False))
print("-" * 50)
client.close()
except Exception as e:
print(f"连接失败: {e}")
if __name__ == "__main__":
print("=== 测试 1: 验证 C++ DLL 工具调用 ===")
request_call = {
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "draw_circle_cpp",
"arguments": {
"cx": 2000.0,
"cy": 2000.0,
"r": 500.0
}
}
}
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 屏幕。")