2.8 KiB
2.8 KiB
技术上下文
技术栈概览
合规性测试工具基于以下技术栈构建:
| 类别 | 技术 | 版本 | 用途 |
|---|---|---|---|
| 核心语言 | 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 (版本控制)
项目安装步骤
- 克隆代码仓库:
git clone <仓库URL> - 安装依赖:
pip install -r requirements.txt - 初始化数据库:
flask --app flask_app init-db - 运行Web服务:
python flask_app.py - 运行命令行测试:
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
开发工作流
-
代码组织:
flask_app.py:Web界面入口run_api_tests.py:命令行入口ddms_compliance_suite/:核心测试框架custom_testcases/:自定义测试用例custom_stages/:自定义测试阶段test_reports/:测试报告输出
-
开发流程:
- 使用Git进行版本控制
- 遵循PEP 8 Python编码规范
- 编写单元测试验证核心功能
- 文档驱动开发,保持代码和文档同步
-
调试技巧:
- 使用日志记录关键信息
- Flask调试模式提供详细错误信息
- 测试用例可以单独运行进行调试