compliance/memory-bank/techContext.md
gongwenxin df90a5377f mvp
2025-06-16 14:49:49 +08:00

2.8 KiB
Raw Permalink Blame History

技术上下文

技术栈概览

合规性测试工具基于以下技术栈构建:

类别 技术 版本 用途
核心语言 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文件包含以下主要依赖:

  • FlaskWeb框架
  • WerkzeugWSGI实用工具库
  • requestsHTTP客户端
  • PyYAMLYAML解析
  • jsonschemaJSON Schema验证
  • pydantic数据验证和设置管理
  • openaiOpenAI 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.pyWeb界面入口
    • run_api_tests.py:命令行入口
    • ddms_compliance_suite/:核心测试框架
    • custom_testcases/:自定义测试用例
    • custom_stages/:自定义测试阶段
    • test_reports/:测试报告输出
  2. 开发流程

    • 使用Git进行版本控制
    • 遵循PEP 8 Python编码规范
    • 编写单元测试验证核心功能
    • 文档驱动开发,保持代码和文档同步
  3. 调试技巧

    • 使用日志记录关键信息
    • Flask调试模式提供详细错误信息
    • 测试用例可以单独运行进行调试