Files
18xchat/assets/Scripts/chat18x/test

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文件中导入并调用:

import { runChatAIBatchTest } from 'db://assets/Scripts/chat18x/test/ChatAIBatchTestRunner';

// 直接运行测试
runChatAIBatchTest();

或者使用类实例:

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. 确保网络连接正常