# python-api-test **Repository Path**: xiaokeitutu/python-api-test ## Basic Information - **Project Name**: python-api-test - **Description**: python web框架的api调试工具,支持Django,flask,fastapi - **Primary Language**: Kotlin - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-24 - **Last Updated**: 2026-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Python API Tester — PyCharm Plugin 一个集成在 PyCharm 中的 API 测试工具,专为 Django、Flask、FastAPI 开发者设计。 A powerful API testing tool for Python Web frameworks (Django, Flask, FastAPI) built right into PyCharm. ## 功能特性 / Features - **路由自动扫描**:自动识别项目中的 Django `urls.py`、Flask `@app.route`、FastAPI 装饰器 - **HTTP 请求测试**:支持 GET / POST / PUT / DELETE / PATCH / HEAD / OPTIONS - **完整请求配置**:Headers、Query Params、Body(JSON / Form-data / Raw) - **前置/后置脚本**:支持 JavaScript 脚本进行请求预处理和响应断言 - **请求集合管理**:支持文件夹分组,导入/导出 Postman Collection v2.1 JSON - **环境变量**:支持 `{{base_url}}`、`{{token}}` 等变量替换 - **历史记录**:自动保存最近 100 条请求记录,双击重放 - **状态码着色**:2xx 绿 / 3xx 橙 / 4xx|5xx 红,一目了然 ## 截图预览 / Screenshots ### 接口调用 / API Call ![接口调用](src/main/resources/media/接口调用.png) ### 测试集 / Test Collection ![测试集](src/main/resources/media/测试集.png) ### 接口调用历史 / Request History ![接口调用历史](src/main/resources/media/接口调用历史.png) ### 演示 / Demo ![演示1](src/main/resources/media/Video_20260424214434[00h00m00s-00h00m20s].gif) ![演示2](src/main/resources/media/Video_20260424214434[00h00m20s-00h00m23s].gif) ## 环境要求 | 工具 | 版本 | |------|------| | JDK | 11+ | | Gradle | 7.6+ | | IntelliJ IDEA / PyCharm | 2022.1+ | ## 快速开始 ### 1. 克隆项目 ```bash git clone https://gitee.com/xiaokeitutu/python-api-test.git cd pycharm-api-tester ``` ### 2. 用 IntelliJ IDEA 打开 直接用 IntelliJ IDEA 打开项目根目录,等待 Gradle 依赖下载完成。 ### 3. 运行调试 ```bash ./gradlew runIde ``` 这会启动一个内嵌的 PyCharm 实例,插件已加载。 ### 4. 构建插件包 ```bash ./gradlew buildPlugin ``` 生成的 `.zip` 文件在 `build/distributions/` 目录下。 ### 5. 安装到 PyCharm `PyCharm → Settings → Plugins → ⚙️ → Install Plugin from Disk`,选择生成的 zip 文件。 ## 使用方法 ### 打开面板 `View → Tool Windows → API Tester`(右侧边栏) ### 扫描项目路由 点击左侧 **🔍 Scan Routes** 按钮,插件会自动扫描项目中所有框架路由,双击路由条目即可填充到请求栏。 ### 发送请求 1. 选择 HTTP 方法(GET/POST/...) 2. 填写 URL(支持 `{{base_url}}/api/users`) 3. 配置 Headers、Params、Body 4. 点击 **Send ▶** 或按 `Ctrl+Enter` ### 环境变量 在环境变量面板中配置 `base_url` 等变量,请求 URL 中使用 `{{变量名}}` 引用。 ## 项目结构 ``` pycharm-api-tester/ ├── build.gradle.kts # Gradle 构建配置 ├── settings.gradle.kts └── src/main/ ├── kotlin/vip/hanbinglocal/apitester/ │ ├── model/ │ │ └── Models.kt # 数据模型(请求、响应、路由等) │ ├── http/ │ │ └── HttpEngine.kt # HTTP 请求引擎(OkHttp) │ ├── scanner/ │ │ └── RouteScanner.kt # 框架路由扫描器 │ ├── script/ │ │ └── ScriptEngine.kt # 前置/后置脚本引擎 │ ├── collection/ │ │ └── PostmanIO.kt # Postman Collection 导入/导出 │ ├── services/ │ │ └── ApiTesterStateService.kt # 状态持久化 │ ├── ui/ │ │ ├── ApiTesterPanel.kt # 主界面面板 │ │ ├── CollectionPanel.kt # 集合管理面板 │ │ └── KeyValueTablePanel.kt # 通用 KV 表格 │ ├── toolwindow/ │ │ └── ApiTesterWindowFactory.kt │ └── actions/ │ ├── SendToTesterAction.kt │ ├── ScanRoutesAction.kt │ ├── ImportCollectionAction.kt │ └── ExportCollectionAction.kt └── resources/ ├── META-INF/ │ └── plugin.xml # 插件描述符 ├── icons/ # 插件图标 └── media/ # 截图与演示资源 ``` ## 支持的框架及路由格式 ### Django ```python # urls.py urlpatterns = [ path('api/users/', UserListView.as_view(), name='user-list'), path('api/users//', UserDetailView.as_view()), ] ``` ### Flask ```python @app.route('/api/users', methods=['GET', 'POST']) def users(): ... @app.get('/api/users/') # Flask 2.0+ def get_user(user_id): ... ``` ### FastAPI ```python @app.get('/api/users') async def list_users(): ... @router.post('/api/users') async def create_user(user: UserSchema): ... ``` ## 后续可扩展功能 - [x] 导入/导出 Postman Collection - [x] 请求集合(Collection)管理 - [ ] 响应断言与自动化测试(前置/后置脚本) - [ ] WebSocket 测试支持 - [ ] OAuth2 认证支持 ## License 中国大陆:https://license.coscl.org.cn/MulanPSL2 Internal:https://opensource.org/licenses/MulanPSL-2.0