# Execute 战区环境配置指南 > 适用版本: Agentic QE Fleet v2.1.0+ | 最后更新: 2026-07-09 本文档详细说明如何配置 PC、Android、iOS 三端的自动化测试执行环境,配完后 `/qe-fleet execute` 即可自动运行测试并产出截图报告。 --- ## 目录 1. [一键配置(Windows 用户优先看这里)](#一键配置windows-用户优先看这里) 2. [架构概览](#1-架构概览) 3. [PC Web 端配置 (Playwright)](#2-pc-web-端配置-playwright) 4. [Android 端配置 (Appium)](#3-android-端配置-appium) 5. [iOS 端配置 (Appium + XCUITest)](#4-ios-端配置-appium--xcuitest) 6. [验证环境](#5-验证环境) 7. [运行 Execute 战区](#6-运行-execute-战区) 8. [常见问题](#7-常见问题) --- ## 一键配置(Windows 用户优先看这里) 如果你用的是 Windows,我们提供了一键配置脚本,自动处理 PATH、环境变量、验证所有依赖: ```batch cd QaAutomationHub scripts\setup_execute_env.bat ``` 这个脚本会: - 自动检测 Android SDK 路径 - 设置 `ANDROID_HOME`、`sdkmanager`、`emulator`、`adb` 到 PATH - 永久写入系统 PATH(以后开新窗口也生效) - 逐项验证 Python / Playwright / Java / adb / Appium / Agent - 打印常用命令速查卡片 **你要手动做的只剩下**: 1. 装 Playwright 浏览器(如果脚本提示未安装) 2. 创建 Android 模拟器(只需一次) 3. 启动 Appium Server 下面手动步骤为 macOS / Linux 用户和需要精细控制的场景准备。 --- ## 1. 架构概览 ``` ┌─────────────────────────────────────────────────────────┐ │ Execute 战区 │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌───────────────┐ │ │ │ web-executor │ │mobile-executor│ │result-reporter│ │ │ │ Playwright │ │ Appium │ │ AI 视觉对比 │ │ │ └──────┬───────┘ └──────┬───────┘ └───────┬───────┘ │ │ │ │ │ │ │ ┌────▼────┐ ┌─────▼─────┐ ┌────▼─────┐ │ │ │Chromium │ │ Android │ │ 截图对比 │ │ │ │Firefox │ │ iOS │ │ 结论报告 │ │ │ │WebKit │ │ 真机/模拟器│ │ │ │ │ └─────────┘ └───────────┘ └───────────┘ │ └─────────────────────────────────────────────────────────┘ ``` **PC Web**: Playwright 直接驱动浏览器,本地运行,无需额外设备。 **移动端**: Appium Server 作为中间层,一端连接测试脚本,一端连接真机/模拟器。 --- ## 2. PC Web 端配置 (Playwright) ### 2.1 安装 Playwright 在你的项目机器上执行: ```bash # 进入项目目录 cd QaAutomationHub # 激活虚拟环境 source .venv/bin/activate # macOS/Linux # 或 .\.venv\Scripts\activate # Windows PowerShell # 安装 Playwright Python 包 pip install playwright # 安装浏览器驱动(Chromium / Firefox / WebKit) playwright install chromium playwright install firefox playwright install webkit # 验证安装 python3 -c "from playwright.sync_api import sync_playwright; print('✅ Playwright 就绪')" ``` ### 2.2 安装系统依赖(仅 Linux) ```bash # Ubuntu/Debian playwright install-deps # 这会自动安装 libgtk-3、libnotify、libnss3 等依赖 ``` ### 2.3 需要准备的信息 执行前你需要知道以下信息,Fleet 生成的脚本会用到: | 信息 | 说明 | 示例 | |------|------|------| | 测试环境地址 | Web 应用的 URL | `https://test.example.com` | | 测试账号 | 不同角色的账号/密码 | `admin / test123` | | 页面关键元素 | 按钮文字、输入框 placeholder | 可以后续从截图调试 | 这些信息在运行 Fleet 前,建议先补充到: - `knowledge_base/00_project/project_profile.md` — 项目 URL、环境信息 - `output/analysis/{需求名}_测试数据.md` — 测试账号数据 --- ## 3. Android 端配置 (Appium) ### 3.1 安装 Java JDK Appium 依赖 Java 运行环境。 ```bash # macOS brew install openjdk@17 # Windows # 下载安装: https://adoptium.net/download/ # 安装后设置环境变量 JAVA_HOME # Linux (Ubuntu) sudo apt install openjdk-17-jdk # 验证 java -version # 输出: openjdk version "17.x.x" ... ``` ### 3.2 安装 Android SDK #### 方式一:安装 Android Studio(推荐) 1. 下载 Android Studio: https://developer.android.com/studio 2. 安装后打开,进入 `SDK Manager` 3. 安装以下组件: - **Android SDK Platform** (选最新稳定版,如 API 34) - **Android SDK Platform-Tools** (含 adb) - **Android SDK Build-Tools** - **Android Emulator** + 一个系统镜像 (如 Pixel 6 + API 34) #### 方式二:仅安装命令行工具 ```bash # macOS brew install android-platform-tools # Linux sudo apt install android-tools-adb android-tools-fastboot # Windows # 下载 SDK Platform Tools: https://developer.android.com/tools/releases/platform-tools # 解压到 C:\android-sdk\platform-tools,加入 PATH ``` ### 3.3 设置环境变量 ```bash # 添加到 ~/.bashrc 或 ~/.zshrc # Android SDK 路径 (macOS 默认) export ANDROID_HOME=~/Library/Android/sdk # Android SDK 路径 (Linux 默认) export ANDROID_HOME=~/Android/Sdk # Android SDK 路径 (Windows 默认) # $env:ANDROID_HOME = "C:\Users\<用户名>\AppData\Local\Android\Sdk" export PATH=$PATH:$ANDROID_HOME/platform-tools export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin ``` ### 3.4 连接 Android 设备 #### 选项 A:USB 真机 ```bash # 1. 手机开启开发者模式 # 设置 → 关于手机 → 连续点击"版本号"7次 # 2. 开启 USB 调试 # 设置 → 开发者选项 → USB 调试 ✅ # 设置 → 开发者选项 → USB 安装 ✅ (部分手机需要) # 3. USB 连接电脑,手机上点击"允许 USB 调试" # 4. 验证连接 adb devices # 输出: # List of devices attached # XXXXXXXX device ← 看到 device 表示连接成功 ``` #### 选项 B:Android 模拟器 ```bash # 使用 Android Studio 创建模拟器: # Android Studio → Device Manager → Create Device # 推荐: Pixel 6, Android 14 (API 34) # 或命令行创建(需先安装 system image) sdkmanager "system-images;android-34;google_apis;x86_64" avdmanager create avd -n test_device -k "system-images;android-34;google_apis;x86_64" # 启动模拟器 emulator -avd test_device & # 验证 adb devices # 输出: # emulator-5554 device ``` ### 3.5 安装 Appium ```bash # 安装 Node.js(如未安装) # macOS: brew install node # Windows: https://nodejs.org/ # Linux: sudo apt install nodejs npm # 安装 Appium Server npm install -g appium # 安装 Android 驱动 appium driver install uiautomator2 # 验证 appium --version # 输出: 2.x.x # 安装 Python 客户端 pip install Appium-Python-Client ``` ### 3.6 获取 APP 信息 ```bash # 获取已安装应用的包名和 Activity adb shell pm list packages | grep <关键词> # 获取当前前台应用的包名和 Activity adb shell dumpsys window | grep mCurrentFocus # 输出示例: # mCurrentFocus=Window{... com.example.app/com.example.app.MainActivity} # 包名: com.example.app # Activity: .MainActivity ``` 记下这些信息,后续配置到 Fleet 生成的脚本中。 --- ## 4. iOS 端配置 (Appium + XCUITest) > ⚠️ iOS 自动化测试**必须**在 macOS 上运行,且需要 Apple Developer 账号。 ### 4.1 安装 Xcode ```bash # 从 Mac App Store 安装 Xcode # https://apps.apple.com/app/xcode/id497799835 # 安装 Command Line Tools xcode-select --install # 验证 xcodebuild -version ``` ### 4.2 安装 iOS 开发工具 ```bash # 安装 Carthage(XCUITest 驱动依赖) brew install carthage # 安装 ios-deploy(真机部署) brew install ios-deploy # 安装 libimobiledevice(iOS 设备通信) brew install libimobiledevice # 安装 Appium(与 Android 共用) npm install -g appium # 安装 iOS 驱动 appium driver install xcuitest ``` ### 4.3 连接 iOS 设备 #### 选项 A:iOS 真机 ```bash # 1. iPhone 连接 Mac(USB) # 手机弹出"要信任此电脑吗?" → 点击"信任" # 2. 验证连接 idevice_id -l # 输出: <设备 UDID> # 3. 获取设备信息 ideviceinfo -k DeviceName ideviceinfo -k ProductVersion # 4. 开启开发者模式 # 设置 → 隐私与安全性 → 开发者模式 ✅ # iOS 16+ 需要此步骤 ``` #### 选项 B:iOS 模拟器 ```bash # Xcode 自带模拟器,查看可用设备 xcrun simctl list devices # 启动指定模拟器 xcrun simctl boot "iPhone 15" # 或通过 Xcode: # Xcode → Open Developer Tool → Simulator ``` ### 4.4 配置 WebDriverAgent(仅真机) iOS 真机需要签名 WebDriverAgent: ```bash # 1. 找到 WebDriverAgent 项目 # 路径通常在: ~/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent/ # 2. 用 Xcode 打开 open ~/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj # 3. 签名配置(在 Xcode 中操作): # - 选择 WebDriverAgentRunner target # - Signing & Capabilities → Team → 选择你的 Apple ID # - 修改 Bundle Identifier(如 com.yourteam.WebDriverAgentRunner) # - 同样配置 WebDriverAgentLib target # 4. 构建测试 # Product → Test (Cmd+U) ``` ### 4.5 获取 iOS APP 信息 ```bash # iOS Bundle ID 通常在 Xcode 项目中查看,或通过以下命令: ideviceinstaller -l | grep <关键词> # 如果没有 ideviceinstaller: brew install ideviceinstaller ``` --- ## 5. 验证环境 ### 5.1 一键验证脚本 创建并运行以下验证脚本: ```bash # 在项目目录创建验证脚本 cat > /tmp/verify_execute_env.sh << 'EOF' #!/bin/bash echo "========================================" echo " Execute 战区环境验证" echo "========================================" # PC Web echo "" echo "── PC Web (Playwright) ──" python3 -c "from playwright.sync_api import sync_playwright; print('✅ Playwright Python 包')" 2>/dev/null || echo "❌ Playwright 未安装" which chromium 2>/dev/null && echo "✅ Chromium" || echo "⚠️ Chromium 浏览器未找到(playwright install chromium)" # Android echo "" echo "── Android (Appium) ──" java -version 2>&1 | head -1 && echo "✅ Java" || echo "❌ Java 未安装" adb devices 2>/dev/null | grep -q "device" && echo "✅ Android 设备已连接" || echo "⚠️ 无 Android 设备连接" appium --version 2>/dev/null && echo "✅ Appium Server" || echo "❌ Appium 未安装" # iOS (仅 macOS) echo "" echo "── iOS (Appium + XCUITest) ──" if [[ "$OSTYPE" == "darwin"* ]]; then xcodebuild -version 2>/dev/null && echo "✅ Xcode" || echo "❌ Xcode 未安装" idevice_id -l 2>/dev/null | grep -q . && echo "✅ iOS 设备已连接" || echo "⚠️ 无 iOS 设备连接" else echo "⏭️ 跳过(iOS 测试仅支持 macOS)" fi # Fleet Agent echo "" echo "── Fleet Agent ──" python3 scripts/fleet_runner.py validate 2>/dev/null && echo "✅ Agent 就绪" || echo "❌ Agent 验证失败" echo "" echo "========================================" echo " 验证完成" echo "========================================" EOF chmod +x /tmp/verify_execute_env.sh bash /tmp/verify_execute_env.sh ``` ### 5.2 手动逐项验证 | 检查项 | 命令 | 预期输出 | |--------|------|----------| | Playwright | `python3 -c "from playwright.sync_api import sync_playwright; print('OK')"` | `OK` | | Chromium | `python3 -c "from playwright.sync_api import sync_playwright; p=sync_playwright().start(); b=p.chromium.launch(); b.close(); print('OK')"` | `OK` | | adb | `adb devices` | 列出设备 | | Appium | `appium --version` | `2.x.x` | | Agent | `python3 scripts/fleet_runner.py validate` | `✅ 所有 Agent prompt 就绪` | --- ## 6. 运行 Execute 战区 ### 6.1 快速运行 ```bash # 确保虚拟环境已激活 source .venv/bin/activate # 方式一:全流程(会自动走到 Execute 战区) /qe-fleet run source_docs/requirements_raw/你的需求.docx # 方式二:只跑 Execute 战区(需要前面战区已完成) /qe-fleet execute source_docs/requirements_raw/你的需求.docx ``` ### 6.2 启动 Appium Server(移动端需要) ```bash # 新开一个终端窗口 appium --allow-insecure "uiautomator2:chromedriver_autodownload" # 或后台运行 appium --allow-insecure "uiautomator2:chromedriver_autodownload" & ``` ### 6.3 手动运行生成的脚本 ```bash # 查看 Fleet 生成的脚本 ls output/execution/<需求名>/ # 运行 PC Web 测试 python3 output/execution/<需求名>/playwright_tests.py # 运行移动端测试(需先启动 Appium Server) python3 output/execution/<需求名>/appium_tests.py # 查看截图 ls output/screenshots/<需求名>/ # 查看执行报告 cat output/execution/<需求名>_执行报告.md ``` ### 6.4 修改脚本配置 Fleet 生成的脚本包含占位符,运行前需要修改: **Playwright 脚本** (`playwright_tests.py`): ```python # ⚠️ 需要修改的行 BASE_URL = "http://localhost:3000" # → 改为测试环境地址 # 测试账号 → 填入真实账号 # CSS Selector → 按实际页面元素修改 ``` **Appium 脚本** (`appium_tests.py`): ```python # ⚠️ 需要修改的行 APPIUM_HOST = "http://localhost:4723" # Appium Server 地址 ANDROID_CAPS = { "deviceName": "Android Emulator", # → 改为你的设备名 "appPackage": "com.example.app", # → 改为实际包名 "appActivity": ".MainActivity", # → 改为实际 Activity } IOS_CAPS = { "deviceName": "iPhone 15", # → 改为你的设备 "bundleId": "com.example.app", # → 改为实际 Bundle ID } ``` --- ## 7. 常见问题 ### Q1: `adb devices` 显示 `unauthorized` **解决**: 手机上会弹出"允许 USB 调试"对话框,点击允许。如果没有弹出,执行: ```bash adb kill-server adb start-server adb devices ``` ### Q2: 模拟器启动后 Appium 找不到元素 **解决**: 确保 APP 已安装到模拟器: ```bash adb install path/to/app.apk ``` ### Q3: iOS 真机 WebDriverAgent 签名失败 **解决**: 在 Xcode 中为 WebDriverAgentRunner 和 WebDriverAgentLib 两个 target 配置 Team 和修改 Bundle ID。 ### Q4: Playwright 截图中文乱码 **解决**: Linux 系统需要安装中文字体: ```bash sudo apt install fonts-noto-cjk ``` ### Q5: Appium 报 `chrome-driver` 相关错误 **解决**: Android WebView/H5 测试需要匹配的 chromedriver。 注意 Appium v3.x 和 v2.x 的参数格式不同: ```bash # Appium v3.x(当前版本) — 格式: 驱动名:功能名 appium --allow-insecure "uiautomator2:chromedriver_autodownload" # Appium v2.x — 旧格式 appium --allow-insecure chromedriver_autodownload ``` 也可以用项目自带的脚本一键启动: ```batch scripts\start_appium.bat ``` ### Q6: 部分设备连接后 `adb` 不识别 **解决**: ```bash # 检查 USB 连接模式(手机通知栏) # 选择 "传输文件 (MTP)" 或 "PTP" 模式,不要选 "仅充电" # Windows 可能需要安装 OEM USB 驱动 # 华为/小米/OPPO 各自官网有提供 ``` ### Q7: 如何检查我的手机是否支持自动化? ```bash # Android: 只要 adb devices 能看到设备就支持 adb devices # iOS: 需要 iOS 11+ 且开启开发者模式 idevice_id -l ``` --- ## 附录:最小化配置路径 如果你只想快速跑通 PC Web 端(跳过移动端): ```bash # 1. 安装 Playwright pip install playwright playwright install chromium # 2. 关闭移动端战区 # 编辑 fleet_config.yml # battle_zones.execute.mobile_platforms: [] # 3. 运行 /qe-fleet run source_docs/requirements_raw/需求.docx ``` 这是最快的验证路径,不需要配置 Java、Android SDK、Appium。