# dcs-test-tool **Repository Path**: cyber-ace/dcs-test-tool ## Basic Information - **Project Name**: dcs-test-tool - **Description**: 这是一个电影放映服务器接口测试工具源码库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-15 - **Last Updated**: 2026-02-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DCS 测试工具 电影放映服务器(Digital Cinema Server, DCS)接口测试框架 基于 Anthropic 的长运行Agent架构设计,支持多品牌、多型号的DCS服务器自动化测试。 ## 项目特点 - 🎯 **长运行Agent架构** - 基于Anthropic最佳实践,支持跨多个会话的增量开发 - 🔌 **多品牌支持** - 每个品牌独立的API和配置,易于扩展 - 📋 **测试用例清单** - 结构化的测试用例管理,自动跟踪进度 - 🔄 **单一接口测试** - 测试单个API端点的功能 - 🎬 **业务接口测试** - 测试完整的业务流程和数据流 - 📊 **进度跟踪** - 自动记录测试进度和历史 - 🔧 **可扩展架构** - 基于继承的测试器设计,易于添加新品牌 ## 项目结构 ``` dcs-test-tool/ ├── init.sh # 环境初始化脚本 ├── test_cases.json # 测试用例清单(核心) ├── test_progress.txt # 测试进度跟踪(核心) ├── requirements.txt # Python依赖 ├── README.md # 本文件 │ ├── core/ # 核心测试框架 │ ├── __init__.py │ ├── base_tester.py # 基础测试类 │ └── test_runner.py # 测试运行器 │ ├── brands/ # 各品牌测试目录 │ └── examples/ # 示例品牌 │ ├── config.json # 品牌配置 │ ├── tester.py # 品牌测试器 │ ├── api_spec.md # API规格文档 │ ├── tests/ # 测试文件 │ │ ├── single/ # 单一接口测试 │ │ └── business/ # 业务接口测试 │ └── docs/ # 品牌文档 │ ├── prompts/ # Agent提示词模板 │ ├── initializer_agent_prompt.md # 初始化Agent │ └── coding_agent_prompt.md # 编码Agent │ ├── logs/ # 测试日志 └── test_results/ # 测试结果 ``` ## 快速开始 ### 1. 环境初始化 ```bash # 克隆或进入项目目录 cd ~/work/dcs-test-tool # 运行初始化脚本 ./init.sh ``` 初始化脚本会: - 检查Python环境 - 创建虚拟环境 - 安装依赖包 - 初始化Git仓库 - 创建必要的目录结构 ### 2. 添加新品牌 使用**初始化Agent**添加新品牌: 1. 提供品牌API文档 2. Agent自动分析并创建: - 品牌目录结构 - 配置文件(config.json) - 测试器类(tester.py) - 测试用例清单 ### 3. 实现测试用例 使用**编码Agent**逐个实现测试用例: ```bash # 激活虚拟环境 source venv/bin/activate # 查看待实现的测试用例 python -m core.test_runner --brand example_brand --list # 运行特定测试 python -m core.test_runner --brand example_brand --test TC001 # 运行所有待测用例 python -m core.test_runner --brand example_brand --all ``` ## Agent工作流程 ### 初始化Agent(首次添加品牌时) ``` 用户: 我想添加XXX品牌的DCS测试 ↓ Agent: 分析API文档 ↓ Agent: 创建品牌目录和配置 ↓ Agent: 实现品牌测试器类 ↓ Agent: 生成测试用例清单 ↓ Agent: 提交到Git ↓ Agent: 报告完成,等待编码Agent ``` ### 编码Agent(实现测试用例) ``` 每个会话开始: ↓ Agent: 运行pwd查看目录 ↓ Agent: 读取test_progress.txt ↓ Agent: 读取test_cases.json ↓ Agent: 查看git log了解历史 ↓ Agent: 选择下一个待实现的测试用例 ↓ Agent: 实现测试代码 ↓ Agent: 运行测试 ↓ Agent: 更新test_cases.json状态 ↓ Agent: 更新test_progress.txt ↓ Agent: 提交到Git ↓ Agent: 报告完成 ``` ## 核心文件说明 ### test_cases.json 测试用例清单,记录所有品牌的测试用例: ```json { "brands": [ { "brand_name": "example_brand", "test_cases": [ { "id": "TC001", "category": "single", "priority": "high", "description": "连接测试", "steps": [...], "expected_result": {...}, "status": "pending", "passes": false, "dependencies": [] } ] } ] } ``` **重要约束**: - 只更新 `status`, `passes`, `last_tested`, `notes` 字段 - 不要删除或修改已有测试用例 ### test_progress.txt 进度跟踪文件,记录: - 工作流程指引 - 上次会话摘要 - 测试历史记录 - Git提交历史 每次会话开始时必须读取此文件了解当前进度。 ### base_tester.py 提供三个基类: 1. **BaseDCSTester** - 所有测试器的基类 - 连接管理 - API调用 - 响应验证 2. **SingleAPITest** - 单一接口测试基类 - 测试单个API端点 - 验证响应字段和值 3. **BusinessAPITest** - 业务接口测试基类 - 测试完整业务流程 - 支持多API序列调用 - 数据在API间传递 ## 添加新品牌指南 ### 步骤1: 准备API文档 收集品牌的API文档,包括: - 所有API端点列表 - 请求/响应格式 - 认证方式 - 错误码说明 ### 步骤2: 参考示例品牌 查看 `brands/examples/` 目录: - `config.json` - 配置格式 - `tester.py` - 测试器实现 ### 步骤3: 创建品牌结构 ```bash mkdir -p brands/your_brand/{tests/{single,business},docs} ``` ### 步骤4: 创建配置文件 基于API文档创建 `config.json`,参考 `brands/examples/config.json`。 ### 步骤5: 实现测试器 继承 `SingleAPITest` 和 `BusinessAPITest`,实现: - `_connect_impl()` - 连接逻辑 - `_disconnect_impl()` - 断开逻辑 - `_build_url()` - URL构建 ### 步骤6: 添加测试用例 在 `test_cases.json` 的 `brands` 数组中添加新品牌及其测试用例。 ## 测试用例类型 ### 单一接口测试 (single) 测试单个API端点的功能: ```json { "id": "TC001", "category": "single", "description": "连接测试", "api_endpoint": "/api/connection/test", "steps": ["连接服务器", "验证响应"], "expected_result": { "status_code": 200, "required_fields": ["session_id"] } } ``` ### 业务接口测试 (business) 测试完整业务流程: ```json { "id": "BC001", "category": "business", "description": "完整放映流程", "workflow": "连接 -> 加载内容 -> 开始放映 -> 验证状态", "api_sequence": [ {"step": 1, "endpoint": "/api/connection/test"}, {"step": 2, "endpoint": "/api/content/load"}, {"step": 3, "endpoint": "/api/playback/start"}, {"step": 4, "endpoint": "/api/playback/status"} ], "expected_result": { "final_status": "playing" }, "dependencies": ["TC001", "TC002", "TC003"] } ``` ## 设计理念 本项目基于 [Anthropic: Effective harnesses for long-running agents](https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents) ### 核心概念 1. **增量开发** - 每次只处理一个测试用例 2. **状态跟踪** - 通过test_cases.json和test_progress.txt跟踪进度 3. **Git历史** - 每次会话结束前提交,保留完整历史 4. **环境干净** - 每次会话结束确保代码可运行 ### Agent角色 - **初始化Agent** - 首次添加品牌时使用,设置环境 - **编码Agent** - 每次会话实现一个测试用例 ## 贡献指南 欢迎贡献!请遵循: 1. 代码风格:遵循PEP 8 2. 提交信息:使用清晰的提交信息格式 3. 测试用例:确保新用例添加到test_cases.json 4. 文档:更新相关文档 ## 许可证 [待定] ## 联系方式 [待定] --- **注意**: 本工具仅用于授权的测试环境。使用前请确保你有相应的授权。