# api-test-tool **Repository Path**: lxygit0731/api-test-tool ## Basic Information - **Project Name**: api-test-tool - **Description**: 这是一个基于大模型驱动的智能化 API 接口测试工具,采用对话式交互方式,让用户能够通过自然语言与 AI 助手对话来完成接口测试任务。该工具支持 OpenAPI/Swagger 文档导入、智能测试用例生成、HTTP 请求执行和结果分析等功能。 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-16 - **Last Updated**: 2025-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, 大模型驱动接口测试 ## README # 大模型驱动的自动化接口测试工具 ## 项目概述 这是一个基于大模型驱动的智能化 API 接口测试工具,采用对话式交互方式,让用户能够通过自然语言与 AI 助手对话来完成接口测试任务。该工具支持 OpenAPI/Swagger 文档导入、智能测试用例生成、HTTP 请求执行和结果分析等功能。 ## 技术栈 ### 后端 - **Java 17** - 编程语言 - **Spring Boot 3.2.0** - Web 框架 - **LangChain4j** - 大模型集成框架 - **RestAssured** - HTTP 请求执行 - **Swagger Parser** - OpenAPI 文档解析 - **Maven** - 项目构建工具 ### 前端 - **纯 HTML/CSS/JavaScript** - 响应式 Web 界面 - **类似 ChatGPT 的简洁白色风格** - 用户体验设计 ### 大模型支持 - **OpenAI GPT-4o/GPT-4/GPT-3.5-turbo** - 主要支持 - **DeepSeek Chat** - 国产大模型支持 - **自定义模型** - 兼容 OpenAI API 的其他模型 ## 核心功能 ### 1. 文档管理 - 📄 支持 OpenAPI/Swagger 文档上传(JSON、YAML 格式) - 🌐 支持从 URL 导入文档 - 📚 多文档管理和切换 - 🔍 文档内容解析和格式化展示 ### 2. 智能对话 - 💬 基于大模型的自然语言交互 - 🤖 智能理解用户测试需求 - 📝 自动生成测试建议和用例 - 🔧 支持对话式参数配置 ### 3. 接口测试 - 🚀 支持所有 HTTP 方法(GET、POST、PUT、DELETE、PATCH) - 🔑 固定参数管理(API Key、Authorization Token 等) - 📊 详细的请求响应分析 - ⚡ 实时测试执行和结果展示 ### 4. 参数管理 - 🔐 安全的固定参数存储 - 🔄 自动参数注入到请求中 - 👁️ 敏感信息脱敏显示 - 🗑️ 灵活的参数增删改查 ## 项目结构 ``` api-test-tool/ ├── src/main/java/com/example/apitesttool/ │ ├── ApiTestToolApplication.java # 主应用类 │ ├── controller/ │ │ ├── SwaggerUploadController.java # 文档上传控制器 │ │ └── ChatController.java # 聊天控制器 │ └── service/ │ ├── AiChatService.java # AI 聊天服务(多模型支持) │ ├── SwaggerService.java # Swagger 服务 │ ├── OpenApiDocumentManager.java # 文档管理器 │ ├── FixedParameterManager.java # 固定参数管理器 │ ├── HttpRequestExecutor.java # HTTP 请求执行器 │ ├── HttpRequestTools.java # HTTP 请求工具(LangChain4j Tools) │ ├── DocumentManagementTools.java # 文档管理工具 │ └── ParameterManagementTools.java # 参数管理工具 ├── src/main/resources/ │ ├── application.properties # 应用配置 │ └── static/ │ └── index.html # 前端界面 ├── src/test/java/ # 单元测试 ├── pom.xml # Maven 配置 ├── MODEL_CONFIG.md # 多模型配置说明 └── README.md # 项目说明 ``` ## 使用说明 ### 1. 环境要求 - Java 17 或更高版本 - Maven 3.6 或更高版本 - 有效的大模型 API Key(OpenAI、DeepSeek 等) ### 2. 配置模型 在 `application.properties` 中配置或设置环境变量: ```properties # 使用 OpenAI ai.model.provider=openai ai.model.name=gpt-4o export OPENAI_API_KEY="your-openai-api-key" # 使用 DeepSeek ai.model.provider=deepseek ai.model.name=deepseek-chat export DEEPSEEK_API_KEY="your-deepseek-api-key" ``` ### 3. 启动应用 ```bash # 设置 API Key export OPENAI_API_KEY="your-api-key-here" # 启动应用 mvn spring-boot:run ``` ### 4. 访问界面 打开浏览器访问:http://localhost:8080 ### 5. 使用流程 1. **上传文档**:在"文档上传"标签页上传 OpenAPI/Swagger 文档 2. **设置参数**:通过对话设置必要的固定参数(如 API Key) 3. **开始测试**:在"智能对话"标签页与 AI 助手对话,描述测试需求 4. **查看结果**:AI 会执行测试并提供详细的分析结果 ## 示例对话 ``` 用户:设置固定参数 Authorization Bearer abc123 AI:已设置固定参数: Authorization = Be****23 用户:测试 GET /api/users 接口 AI:我来帮您测试 GET /api/users 接口... [执行请求并返回结果分析] 用户:卸载这个文档 AI:已成功删除文档: doc_20231214_001 (用户管理 API) ``` ## 特色亮点 ### 1. 智能化程度高 - 基于大模型的自然语言理解 - 智能测试用例生成 - 自动化参数管理和注入 ### 2. 多模型支持 - 支持 OpenAI、DeepSeek 等多种大模型 - 灵活的模型切换配置 - 兼容 OpenAI API 标准的自定义模型 ### 3. 用户体验优秀 - 类似 ChatGPT 的简洁界面设计 - 响应式布局,支持移动端 - 实时对话交互,操作直观 ### 4. 功能完整 - 完整的文档生命周期管理 - 全面的 HTTP 方法支持 - 详细的测试结果分析 ### 5. 架构设计良好 - 模块化设计,易于扩展 - 内存存储,快速响应 - 完善的错误处理和日志记录 ## 技术创新点 1. **LangChain4j Tools 集成**:将 HTTP 请求、文档管理、参数管理等功能封装为 Tools,让大模型能够直接调用执行 2. **多模型抽象**:设计了统一的模型接口,支持多种大模型的无缝切换 3. **对话式测试**:突破传统 GUI 操作模式,采用自然语言对话进行接口测试 4. **智能参数管理**:自动识别和管理测试过程中需要的固定参数 ## 未来扩展方向 1. **测试报告生成**:自动生成详细的测试报告 2. **测试用例保存**:支持测试用例的保存和复用 3. **批量测试**:支持批量接口测试和回归测试 4. **性能测试**:集成性能测试功能 5. **CI/CD 集成**:支持与持续集成流水线集成 6. **数据库持久化**:支持测试数据的持久化存储 ## 总结 这个项目成功实现了一个功能完整、技术先进的大模型驱动接口测试工具。通过创新的对话式交互方式,大大降低了接口测试的门槛,提升了测试效率。项目采用现代化的技术栈,具有良好的可扩展性和维护性,为接口测试领域带来了新的解决方案。