# 技术上下文 ## 技术栈概览 合规性测试工具基于以下技术栈构建: | 类别 | 技术 | 版本 | 用途 | |------|------|------|------| | 核心语言 | Python | 3.8+ | 主要开发语言 | | Web框架 | Flask | 2.0+ | Web界面实现 | | 数据库 | SQLite | 3.0+ | 用户认证和会话管理 | | HTTP客户端 | Requests | 2.0+ | 发送API请求 | | AI集成 | LLM API (兼容OpenAI) | - | 智能测试数据生成 | | 前端 | HTML/CSS/JavaScript | - | Web界面展示 | | 报告格式 | JSON, Markdown | - | 测试报告生成 | ## 开发环境设置 ### 必要组件 - Python 3.8+ - pip (Python包管理器) - 支持Python的IDE (如PyCharm, VS Code) - Git (版本控制) ### 项目安装步骤 1. 克隆代码仓库:`git clone <仓库URL>` 2. 安装依赖:`pip install -r requirements.txt` 3. 初始化数据库:`flask --app flask_app init-db` 4. 运行Web服务:`python flask_app.py` 5. 运行命令行测试:`python run_api_tests.py [参数]` ### 关键依赖项 项目的`requirements.txt`文件包含以下主要依赖: - Flask:Web框架 - Werkzeug:WSGI实用工具库 - requests:HTTP客户端 - PyYAML:YAML解析 - jsonschema:JSON Schema验证 - pydantic:数据验证和设置管理 - openai:OpenAI API客户端 - Flask-Cors:处理跨域请求 ## 技术约束 ### 1. 性能考量 - 测试执行过程可能涉及大量HTTP请求,需要考虑超时处理和重试机制 - LLM API调用可能较慢,需要实现缓存机制避免重复生成 - 测试报告可能很大,需要优化生成和展示方式 ### 2. 安全考虑 - 用户认证使用密码哈希存储,避免明文密码 - API密钥等敏感信息需要安全存储 - 上传的API规范文件需要验证格式和安全性 ### 3. 兼容性要求 - 支持解析YAPI和Swagger/OpenAPI规范(JSON/YAML格式) - 支持不同版本的OpenAPI规范(2.0/3.0) - 支持不同API认证方式(Basic, Bearer Token, API Key等) ### 4. 扩展性设计 - 测试用例通过类继承机制支持自定义扩展 - 测试阶段支持插件式扩展 - LLM提供商可配置,支持不同模型 ### 5. 网络依赖 - 需要网络连接才能访问目标API服务 - 使用LLM功能需要访问外部AI服务API ## 开发工作流 1. **代码组织**: - `flask_app.py`:Web界面入口 - `run_api_tests.py`:命令行入口 - `ddms_compliance_suite/`:核心测试框架 - `custom_testcases/`:自定义测试用例 - `custom_stages/`:自定义测试阶段 - `test_reports/`:测试报告输出 2. **开发流程**: - 使用Git进行版本控制 - 遵循PEP 8 Python编码规范 - 编写单元测试验证核心功能 - 文档驱动开发,保持代码和文档同步 3. **调试技巧**: - 使用日志记录关键信息 - Flask调试模式提供详细错误信息 - 测试用例可以单独运行进行调试