|
| 1 | +# PyBreeze:自动化优先的 IDE |
| 2 | + |
| 3 | +[](https://www.python.org/downloads/) |
| 4 | +[](../LICENSE) |
| 5 | +[](https://doc.qt.io/qtforpython/) |
| 6 | + |
| 7 | +[English](../README.md) | [繁體中文](README_zh-TW.md) |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | +**PyBreeze** 是一款专为自动化工程师打造的 Python IDE。它将 Web、API、GUI 和负载测试自动化整合到单一统一环境中——无需寻找插件、无需复杂的环境配置,打开即可开始自动化。 |
| 12 | + |
| 13 | +--- |
| 14 | + |
| 15 | +## 目录 |
| 16 | + |
| 17 | +- [功能特色](#功能特色) |
| 18 | + - [四维自动化](#四维自动化) |
| 19 | + - [IDE 核心功能](#ide-核心功能) |
| 20 | + - [内置工具](#内置工具) |
| 21 | + - [AI 辅助开发](#ai-辅助开发) |
| 22 | + - [插件系统](#插件系统) |
| 23 | + - [多语言界面](#多语言界面) |
| 24 | +- [架构设计](#架构设计) |
| 25 | +- [安装方式](#安装方式) |
| 26 | +- [快速开始](#快速开始) |
| 27 | +- [集成自动化模块](#集成自动化模块) |
| 28 | +- [项目结构](#项目结构) |
| 29 | +- [依赖项](#依赖项) |
| 30 | +- [目标用户](#目标用户) |
| 31 | +- [许可证](#许可证) |
| 32 | + |
| 33 | +--- |
| 34 | + |
| 35 | +## 功能特色 |
| 36 | + |
| 37 | +### 四维自动化 |
| 38 | + |
| 39 | +PyBreeze 开箱即用,涵盖自动化测试的完整范围: |
| 40 | + |
| 41 | +| 维度 | 模块 | 说明 | |
| 42 | +|---|---|---| |
| 43 | +| **Web 自动化** | [WebRunner](https://github.com/Intergration-Automation-Testing/WebRunner) | 浏览器交互模拟与测试,深度集成浏览器驱动与元素定位器 | |
| 44 | +| **API 自动化** | [APITestka](https://github.com/Intergration-Automation-Testing/APITestka) | RESTful API 开发与测试,内置请求构建器、响应分析器、Mock 服务器及断言验证 | |
| 45 | +| **GUI 自动化** | [AutoControl](https://github.com/Intergration-Automation-Testing/AutoControl) | 桌面应用程序自动化,支持图像识别、坐标定位、键盘鼠标控制及动作录制 | |
| 46 | +| **负载与压力测试** | [LoadDensity](https://github.com/Intergration-Automation-Testing/LoadDensity) | 高并发性能测试引擎,用于监控系统在极端压力下的稳定性 | |
| 47 | + |
| 48 | +此外还包含: |
| 49 | + |
| 50 | +- **文件自动化** — 通过 [automation-file](https://github.com/Intergration-Automation-Testing/AutomationFile) 模块实现自动化文件与目录操作 |
| 51 | +- **邮件自动化** — 通过 [MailThunder](https://github.com/Intergration-Automation-Testing/MailThunder) 实现自动化邮件发送(例如测试报告投递) |
| 52 | +- **测试框架** — 通过 [TestPioneer](https://github.com/Intergration-Automation-Testing/TestPioneer) 实现结构化 YAML 驱动的测试执行 |
| 53 | + |
| 54 | +### IDE 核心功能 |
| 55 | + |
| 56 | +PyBreeze 不仅仅是一个代码编辑器——它是自动化生命周期的指挥中心: |
| 57 | + |
| 58 | +- **语法高亮** — 内置 Python 语法高亮,针对自动化库(APITestka、AutoControl、WebRunner、LoadDensity 等)提供深度关键字识别。可通过插件添加自定义语法规则。 |
| 59 | +- **代码编辑器** — 基于 [JEditor](https://github.com/Intergration-Automation-Testing/JEditor) 构建,提供完整的编辑器功能,包含标签页管理、文件树导航与项目工作区支持。 |
| 60 | +- **脚本执行** — 直接在 IDE 中执行自动化脚本,并实时显示输出。支持单脚本与多脚本批量执行。 |
| 61 | +- **报告生成** — 自动化模块可在测试执行后生成 HTML、JSON 和 XML 报告,并支持可选的电子邮件投递。 |
| 62 | +- **集成 JupyterLab** — 在 PyBreeze 中直接以标签页方式启动 JupyterLab,进行交互式笔记本开发。若未安装 JupyterLab 将自动安装。 |
| 63 | +- **虚拟环境感知** — 自动检测并使用项目的虚拟环境(`.venv` 或 `venv`)。 |
| 64 | + |
| 65 | +### 内置工具 |
| 66 | + |
| 67 | +- **SSH 客户端** — 完整的 SSH 终端客户端,支持: |
| 68 | + - 密码与私钥认证 |
| 69 | + - 交互式命令执行 |
| 70 | + - 远程文件树查看器,支持 CRUD 操作(创建文件夹、重命名、删除、上传、下载) |
| 71 | +- **包管理器** — 直接从 IDE 菜单安装自动化模块和构建工具,无需离开编辑器。 |
| 72 | +- **集成文档** — 从菜单栏快速访问每个自动化模块的文档和 GitHub 页面。 |
| 73 | + |
| 74 | +### AI 辅助开发 |
| 75 | + |
| 76 | +- **AI 代码审查** — 将代码发送到 LLM API 端点进行自动化代码审查。可直接在 IDE 中接受或拒绝建议。 |
| 77 | +- **CoT(思维链)提示词编辑器** — 创建和管理多步骤 CoT 提示词,用于结构化代码分析,包含: |
| 78 | + - 代码审查提示词 |
| 79 | + - Code Smell 检测 |
| 80 | + - 代码检查分析 |
| 81 | + - 逐步分析 |
| 82 | + - 摘要生成 |
| 83 | +- **Skill 提示词编辑器** — 定义和管理可重复使用的技能型提示词(代码解说、代码审查模板),可发送至 LLM API。 |
| 84 | + |
| 85 | +### 插件系统 |
| 86 | + |
| 87 | +PyBreeze 支持可扩展的插件架构,用于: |
| 88 | + |
| 89 | +- **语法高亮** — 通过插件为任何编程语言添加语法高亮 |
| 90 | +- **UI 翻译** — 通过翻译插件添加新的界面语言 |
| 91 | +- **运行配置** — 为编译型和解释型语言添加"以...运行"支持(C、C++、Go、Java、Rust 等) |
| 92 | +- **插件浏览器** — 直接在 IDE 中从远程仓库浏览并安装插件 |
| 93 | + |
| 94 | +插件会从 `jeditor_plugins/` 目录自动发现加载。完整文档请参阅 [PLUGIN_GUIDE.md](../PLUGIN_GUIDE.md)。 |
| 95 | + |
| 96 | +**内置插件:** C、C++、Go、Java、Rust 语法高亮与运行支持;法语翻译。 |
| 97 | + |
| 98 | +### 多语言界面 |
| 99 | + |
| 100 | +IDE 界面支持多种语言: |
| 101 | + |
| 102 | +- **English**(英语,默认) |
| 103 | +- **繁体中文** |
| 104 | +- 可通过插件添加其他语言 |
| 105 | + |
| 106 | +--- |
| 107 | + |
| 108 | +## 架构设计 |
| 109 | + |
| 110 | + |
| 111 | + |
| 112 | +PyBreeze 采用模块化架构: |
| 113 | + |
| 114 | +``` |
| 115 | +PyBreeze UI (PySide6) |
| 116 | +├── JEditor(基础编辑器引擎) |
| 117 | +│ ├── 代码编辑器与标签页 |
| 118 | +│ ├── 文件树导航 |
| 119 | +│ ├── 语法高亮引擎 |
| 120 | +│ └── 插件系统 |
| 121 | +├── 自动化菜单 |
| 122 | +│ ├── APITestka ──→ APITestka 执行器 ──→ je_api_testka |
| 123 | +│ ├── AutoControl ──→ AutoControl 执行器 ──→ je_auto_control |
| 124 | +│ ├── WebRunner ──→ WebRunner 执行器 ──→ je_web_runner |
| 125 | +│ ├── LoadDensity ──→ LoadDensity 执行器 ──→ je_load_density |
| 126 | +│ ├── FileAutomation ──→ FileAutomation 执行器 ──→ automation-file |
| 127 | +│ ├── MailThunder ──→ MailThunder 执行器 ──→ je-mail-thunder |
| 128 | +│ └── TestPioneer ──→ TestPioneer 执行器 ──→ test_pioneer |
| 129 | +├── 工具 |
| 130 | +│ ├── SSH 客户端(paramiko) |
| 131 | +│ ├── AI 代码审查客户端 |
| 132 | +│ ├── CoT 提示词编辑器 |
| 133 | +│ ├── Skill 提示词编辑器 |
| 134 | +│ └── JupyterLab 集成 |
| 135 | +└── 安装菜单 |
| 136 | + ├── 自动化模块安装器 |
| 137 | + └── 构建工具安装器 |
| 138 | +``` |
| 139 | + |
| 140 | +每个自动化模块都通过 `PythonTaskProcessManager` 在独立的子进程中执行,提供进程隔离,防止崩溃影响 IDE。 |
| 141 | + |
| 142 | +--- |
| 143 | + |
| 144 | +## 安装方式 |
| 145 | + |
| 146 | +### 从 PyPI 安装 |
| 147 | + |
| 148 | +```bash |
| 149 | +pip install pybreeze |
| 150 | +``` |
| 151 | + |
| 152 | +### 从源码安装 |
| 153 | + |
| 154 | +```bash |
| 155 | +git clone https://github.com/Intergration-Automation-Testing/AutomationEditor.git |
| 156 | +cd AutomationEditor |
| 157 | +pip install -r requirements.txt |
| 158 | +``` |
| 159 | + |
| 160 | +### 系统要求 |
| 161 | + |
| 162 | +- **Python**:3.10 或更高版本 |
| 163 | +- **操作系统**:Windows、macOS、Linux |
| 164 | +- **GUI 框架**:PySide6 6.11.0(自动安装) |
| 165 | + |
| 166 | +--- |
| 167 | + |
| 168 | +## 快速开始 |
| 169 | + |
| 170 | +### 通过命令行运行 |
| 171 | + |
| 172 | +```bash |
| 173 | +python -m pybreeze |
| 174 | +``` |
| 175 | + |
| 176 | +### 通过 Python 脚本运行 |
| 177 | + |
| 178 | +```python |
| 179 | +from pybreeze import start_editor |
| 180 | + |
| 181 | +start_editor() |
| 182 | +``` |
| 183 | + |
| 184 | +### 从 exe 目录运行 |
| 185 | + |
| 186 | +```bash |
| 187 | +python exe/start_pybreeze.py |
| 188 | +``` |
| 189 | + |
| 190 | +启动后,您可以: |
| 191 | + |
| 192 | +1. **编写自动化脚本** — 在编辑器中享有语法感知的自动补全 |
| 193 | +2. **执行脚本** — 通过 `自动化` 菜单,选择目标模块(APITestka、WebRunner 等) |
| 194 | +3. **查看结果** — 在集成式输出面板中查看 |
| 195 | +4. **生成报告** — 支持 HTML/JSON/XML 格式 |
| 196 | +5. **发送报告** — 使用 MailThunder 集成功能通过电子邮件发送 |
| 197 | + |
| 198 | +--- |
| 199 | + |
| 200 | +## 集成自动化模块 |
| 201 | + |
| 202 | +### APITestka — API 测试 |
| 203 | + |
| 204 | +- HTTP 方法测试(GET、POST、PUT、DELETE 等) |
| 205 | +- 通过 httpx 支持异步 HTTP |
| 206 | +- 使用 Flask 创建 Mock 服务器 |
| 207 | +- 报告生成(HTML、JSON、XML) |
| 208 | +- 基于调度器的事件触发 |
| 209 | +- Socket 服务器支持 |
| 210 | + |
| 211 | +### AutoControl — GUI 自动化 |
| 212 | + |
| 213 | +- 鼠标控制(点击、拖拽、滚动、位置追踪) |
| 214 | +- 键盘模拟(输入、快捷键、按键按下/释放) |
| 215 | +- 图像识别与定位点击 |
| 216 | +- 屏幕截图 |
| 217 | +- 动作录制与回放 |
| 218 | +- Shell 命令执行 |
| 219 | +- 进程管理 |
| 220 | + |
| 221 | +### WebRunner — Web 自动化 |
| 222 | + |
| 223 | +- 浏览器驱动集成 |
| 224 | +- 元素定位与交互 |
| 225 | +- 基于 Web 的测试脚本 |
| 226 | +- 报告生成 |
| 227 | + |
| 228 | +### LoadDensity — 负载测试 |
| 229 | + |
| 230 | +- 并发请求模拟 |
| 231 | +- 性能指标收集 |
| 232 | +- 压力测试场景管理 |
| 233 | +- 报告生成 |
| 234 | + |
| 235 | +### MailThunder — 邮件自动化 |
| 236 | + |
| 237 | +- SMTP 邮件发送 |
| 238 | +- HTML 报告投递 |
| 239 | +- 附件支持 |
| 240 | +- 基于环境变量的配置 |
| 241 | + |
| 242 | +### TestPioneer — 测试框架 |
| 243 | + |
| 244 | +- 基于 YAML 的测试定义 |
| 245 | +- 模板生成 |
| 246 | +- 结构化测试执行 |
| 247 | + |
| 248 | +### File Automation — 文件自动化 |
| 249 | + |
| 250 | +- 自动化文件与目录操作 |
| 251 | +- 批量文件处理 |
| 252 | + |
| 253 | +--- |
| 254 | + |
| 255 | +## 项目结构 |
| 256 | + |
| 257 | +``` |
| 258 | +PyBreeze/ |
| 259 | +├── pybreeze/ |
| 260 | +│ ├── __init__.py # 公开 API(start_editor、插件 re-export) |
| 261 | +│ ├── __main__.py # 入口点(python -m pybreeze) |
| 262 | +│ ├── extend/ |
| 263 | +│ │ ├── mail_thunder_extend/ # 测试后邮件报告发送 |
| 264 | +│ │ ├── process_executor/ # 各自动化模块的子进程管理器 |
| 265 | +│ │ │ ├── api_testka/ |
| 266 | +│ │ │ ├── auto_control/ |
| 267 | +│ │ │ ├── file_automation/ |
| 268 | +│ │ │ ├── load_density/ |
| 269 | +│ │ │ ├── mail_thunder/ |
| 270 | +│ │ │ ├── test_pioneer/ |
| 271 | +│ │ │ └── web_runner/ |
| 272 | +│ │ └── process_executor/python_task_process_manager.py |
| 273 | +│ ├── extend_multi_language/ # 内置翻译(英语、繁体中文) |
| 274 | +│ ├── pybreeze_ui/ |
| 275 | +│ │ ├── editor_main/ # 主窗口(扩展 JEditor) |
| 276 | +│ │ ├── connect_gui/ssh/ # SSH 客户端组件 |
| 277 | +│ │ ├── extend_ai_gui/ # AI 代码审查与提示词编辑器 |
| 278 | +│ │ ├── jupyter_lab_gui/ # JupyterLab 集成 |
| 279 | +│ │ ├── menu/ # 菜单栏构建 |
| 280 | +│ │ ├── syntax/ # 自动化关键字定义 |
| 281 | +│ │ └── show_code_window/ # 代码显示组件 |
| 282 | +│ └── utils/ # 日志、异常处理、文件处理、包管理 |
| 283 | +├── exe/ # 独立启动器与构建配置 |
| 284 | +├── docs/ # Sphinx 文档源码 |
| 285 | +├── test/ # 单元测试 |
| 286 | +├── images/ # 截图 |
| 287 | +├── architecture_diagram/ # 架构图 |
| 288 | +├── PLUGIN_GUIDE.md # 插件开发文档 |
| 289 | +├── pyproject.toml # 包配置 |
| 290 | +├── requirements.txt # 运行时依赖项 |
| 291 | +└── dev_requirements.txt # 开发依赖项 |
| 292 | +``` |
| 293 | + |
| 294 | +--- |
| 295 | + |
| 296 | +## 依赖项 |
| 297 | + |
| 298 | +### 运行时 |
| 299 | + |
| 300 | +| 包 | 用途 | |
| 301 | +|---|---| |
| 302 | +| `PySide6` (6.11.0) | GUI 框架(Qt for Python)| |
| 303 | +| `je-editor` | 基础代码编辑器引擎 | |
| 304 | +| `je_api_testka` | API 测试自动化 | |
| 305 | +| `je_auto_control` | GUI/桌面自动化 | |
| 306 | +| `je_web_runner` | Web 浏览器自动化 | |
| 307 | +| `je_load_density` | 负载与压力测试 | |
| 308 | +| `je-mail-thunder` | 邮件自动化 | |
| 309 | +| `automation-file` | 文件操作自动化 | |
| 310 | +| `test_pioneer` | 基于 YAML 的测试框架 | |
| 311 | +| `paramiko` | SSH 客户端支持 | |
| 312 | +| `jupyterlab` | 集成式笔记本环境 | |
| 313 | + |
| 314 | +### 开发 |
| 315 | + |
| 316 | +`build`、`twine`、`sphinx`、`sphinx-rtd-theme`、`auto-py-to-exe` |
| 317 | + |
| 318 | +--- |
| 319 | + |
| 320 | +## 目标用户 |
| 321 | + |
| 322 | +- **Python 开发者** — 一个轻量、专用的环境,用于构建自动化脚本,无需承受重量级通用 IDE 的负担 |
| 323 | +- **SDET(测试开发工程师)** — 需要在同一工具中同时维护 Web、API 和性能测试的专业人士 |
| 324 | +- **自动化初学者** — 一个友好的 IDE,通过零配置环境降低 Python 自动化的入门门槛 |
| 325 | +- **DevOps 团队** — 一个在 CI/CD 流水线中快速构建和调试集成测试套件的平台 |
| 326 | + |
| 327 | +--- |
| 328 | + |
| 329 | +## 许可证 |
| 330 | + |
| 331 | +本项目采用 MIT 许可证——详情请参阅 [LICENSE](../LICENSE) 文件。 |
| 332 | + |
| 333 | +Copyright (c) 2022 JE-Chen |
0 commit comments