# ChatAI 批量测试工具 本工具用于批量测试 ChatAIService 的 sendMessage 功能,测试角色ID 10001-10030 的可用性。 ## 文件说明 ### 1. ChatAIServiceBatchTest.ts - **类型**: Cocos Creator 组件 - **用途**: 带UI界面的测试工具 - **特点**: 需要挂载到节点上,有可视化界面 ### 2. ChatAIBatchTestRunner.ts - **类型**: 纯TypeScript脚本 - **用途**: 无UI的批量测试工具 - **特点**: 可以直接在代码中调用 ## 使用方法 ### 方法一:使用UI组件版本 1. 在Cocos Creator中创建一个测试场景 2. 创建一个节点并挂载 `ChatAIServiceBatchTest` 组件 3. 配置UI元素: - `startTestButton`: 开始测试按钮 - `statusLabel`: 状态显示标签 - `resultLabel`: 结果显示标签 4. 运行场景,点击按钮开始测试 ### 方法二:使用纯脚本版本(推荐) 在任何TypeScript文件中导入并调用: ```typescript import { runChatAIBatchTest } from 'db://assets/Scripts/chat18x/test/ChatAIBatchTestRunner'; // 直接运行测试 runChatAIBatchTest(); ``` 或者使用类实例: ```typescript import { ChatAIBatchTestRunner } from 'db://assets/Scripts/chat18x/test/ChatAIBatchTestRunner'; const testRunner = new ChatAIBatchTestRunner(); await testRunner.runBatchTest(); ``` ## 测试流程 1. 依次测试角色ID 10001 到 10030 2. 对每个ID发送消息 "hello" 3. 每次调用后等待10秒(最后一个测试不等待) 4. 记录成功和失败的角色ID 5. 输出详细的测试报告 ## 测试报告内容 - 总测试数量 - 成功/失败数量和比例 - 成功的角色ID列表 - 失败的角色ID列表及错误原因 - 每个测试的耗时统计 - 总耗时和平均耗时 ## 示例输出 ``` ============================================================== ChatAI 批量测试报告 ============================================================== 测试时间: 2024/3/15 14:30:25 总测试数: 30 成功数量: 25 失败数量: 5 成功率: 83.33% 总耗时: 315.68秒 平均耗时: 10.52秒/测试 ------------------------------ 成功的角色ID ------------------------------ 10001-10015, 10017-10025, 10028 ------------------------------ 失败的角色ID ------------------------------ 10016, 10026, 10027, 10029, 10030 ------------------------- 失败详情 ------------------------- 角色 10016: API调用超时 角色 10026: 返回空响应 角色 10027: 网络连接失败 角色 10029: API密钥无效 角色 10030: 角色配置不存在 ============================================================== 简洁结果: 成功(25): 10001,10002,10003,10004,10005,10006,10007,10008,10009,10010,10011,10012,10013,10014,10015,10017,10018,10019,10020,10021,10022,10023,10024,10025,10028 失败(5): 10016,10026,10027,10029,10030 ``` ## 注意事项 1. 确保 ChatAIService 已正确初始化 2. 测试过程中不要关闭应用,总耗时约5-6分钟 3. 测试结果会输出到控制台,注意查看 4. 建议在开发环境下运行测试 5. 如需中断测试,重启应用即可 ## 技术细节 - 使用 Promise 和 async/await 处理异步操作 - 通过 setTimeout 实现精确的10秒延时 - 自动错误捕获和分类 - 智能的ID列表格式化显示 - 详细的执行时间统计 ## 故障排除 如果测试无法启动: 1. 检查 ChatAIService 是否正确导入 2. 确认 AI API 配置是否有效 3. 查看控制台错误信息 4. 确保网络连接正常