feat: one-click Windows setup scripts + fix Appium v3 commands in docs

- scripts/setup_execute_env.bat: auto-detect Android SDK, set PATH permanently, validate all deps
- scripts/start_appium.bat: one-click Appium Server startup with v3-compatible params
- Fix all 'appium --allow-insecure' commands for Appium v3 (driver:feature format)
- Add Windows quick-start section to EXECUTE_SETUP_GUIDE.md
This commit is contained in:
xst
2026-07-10 15:13:09 +08:00
parent d37017534d
commit b958b75899
3 changed files with 231 additions and 10 deletions
+48 -10
View File
@@ -8,13 +8,40 @@
## 目录 ## 目录
1. [架构概览](#1-架构概览) 1. [一键配置(Windows 用户优先看这里)](#一键配置windows-用户优先看这里)
2. [PC Web 端配置 (Playwright)](#2-pc-web-端配置-playwright) 2. [架构概览](#1-架构概览)
3. [Android 端配置 (Appium)](#3-android-端配置-appium) 3. [PC Web 端配置 (Playwright)](#2-pc-web-端配置-playwright)
4. [iOS 端配置 (Appium + XCUITest)](#4-ios-端配置-appium--xcuitest) 4. [Android 端配置 (Appium)](#3-android-端配置-appium)
5. [验证环境](#5-验证环境) 5. [iOS 端配置 (Appium + XCUITest)](#4-ios-端配置-appium--xcuitest)
6. [运行 Execute 战区](#6-运行-execute-战区) 6. [验证环境](#5-验证环境)
7. [常见问题](#7-常见问题) 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 用户和需要精细控制的场景准备。
--- ---
@@ -429,10 +456,10 @@ source .venv/bin/activate
```bash ```bash
# 新开一个终端窗口 # 新开一个终端窗口
appium --allow-insecure chromedriver_autodownload appium --allow-insecure "uiautomator2:chromedriver_autodownload"
# 或后台运行 # 或后台运行
appium --allow-insecure chromedriver_autodownload & appium --allow-insecure "uiautomator2:chromedriver_autodownload" &
``` ```
### 6.3 手动运行生成的脚本 ### 6.3 手动运行生成的脚本
@@ -516,11 +543,22 @@ sudo apt install fonts-noto-cjk
### Q5: Appium 报 `chrome-driver` 相关错误 ### Q5: Appium 报 `chrome-driver` 相关错误
**解决**: Android WebView/H5 测试需要匹配的 chromedriver **解决**: Android WebView/H5 测试需要匹配的 chromedriver
注意 Appium v3.x 和 v2.x 的参数格式不同:
```bash ```bash
# Appium v3.x(当前版本) — 格式: 驱动名:功能名
appium --allow-insecure "uiautomator2:chromedriver_autodownload"
# Appium v2.x — 旧格式
appium --allow-insecure chromedriver_autodownload appium --allow-insecure chromedriver_autodownload
``` ```
也可以用项目自带的脚本一键启动:
```batch
scripts\start_appium.bat
```
### Q6: 部分设备连接后 `adb` 不识别 ### Q6: 部分设备连接后 `adb` 不识别
**解决**: **解决**:
+162
View File
@@ -0,0 +1,162 @@
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
echo ========================================
echo Agentic QE Fleet - Execute 环境一键配置
echo ========================================
echo.
:: ── 1. 自动检测 Android SDK 路径 ──
set "SDK_PATH="
:: 默认路径
if exist "%LOCALAPPDATA%\Android\Sdk" (
set "SDK_PATH=%LOCALAPPDATA%\Android\Sdk"
)
:: Android Studio 自定义路径
if exist "C:\Android\Sdk" (
set "SDK_PATH=C:\Android\Sdk"
)
:: 从 Android Studio 配置文件读取
if exist "%APPDATA%\Google\AndroidStudio*\options\sdkManager.xml" (
for /f "tokens=*" %%a in ('findstr /c:"sdk.root" "%APPDATA%\Google\AndroidStudio*\options\sdkManager.xml" 2^>nul') do (
echo %%a | findstr "sdk.root" >nul
)
)
if "%SDK_PATH%"=="" (
echo [WARN] 未自动检测到 Android SDK 路径
echo 请手动输入 SDK 路径
echo 示例: C:\Users\23184\AppData\Local\Android\Sdk
set /p SDK_PATH="SDK 路径: "
)
echo [INFO] Android SDK: %SDK_PATH%
echo.
:: ── 2. 统一设置环境变量 ──
echo [STEP] 设置环境变量...
set "ANDROID_HOME=%SDK_PATH%"
set "ANDROID_SDK_ROOT=%SDK_PATH%"
:: SDK 内部工具路径
set "SDK_CMDLINE=%SDK_PATH%\cmdline-tools\latest\bin"
set "SDK_TOOLS_BIN=%SDK_PATH%\tools\bin"
set "SDK_EMULATOR=%SDK_PATH%\emulator"
set "SDK_PLATFORM_TOOLS=%SDK_PATH%\platform-tools"
:: Java (自动搜索)
set "JAVA_PATH="
if exist "C:\Program Files\Android\Android Studio\jbr\bin" (
set "JAVA_PATH=C:\Program Files\Android\Android Studio\jbr\bin"
)
if exist "C:\Program Files\Java\jdk-17\bin" (
set "JAVA_PATH=C:\Program Files\Java\jdk-17\bin"
)
:: ── 3. 追加到当前会话 PATH ──
set "NEW_PATH=%SDK_CMDLINE%;%SDK_TOOLS_BIN%;%SDK_EMULATOR%;%SDK_PLATFORM_TOOLS%"
if not "%JAVA_PATH%"=="" set "NEW_PATH=%NEW_PATH%;%JAVA_PATH%"
set "PATH=%PATH%;%NEW_PATH%"
echo [OK] 当前窗口 PATH 已配置(关窗后失效)
echo.
:: ── 4. 永久写入用户 PATH(这样以后每个新窗口都能用) ──
echo [STEP] 永久写入系统 PATH...
set "PERMANENT=%SDK_CMDLINE%;%SDK_TOOLS_BIN%;%SDK_EMULATOR%;%SDK_PLATFORM_TOOLS%"
if not "%JAVA_PATH%"=="" set "PERMANENT=%PERMANENT%;%JAVA_PATH%"
for /f "usebackq tokens=2,*" %%A in (`reg query "HKCU\Environment" /v PATH 2^>nul`) do set "USER_PATH=%%B"
echo !USER_PATH! | findstr /c:"%SDK_CMDLINE%" >nul
if %errorlevel% neq 0 (
reg add "HKCU\Environment" /v PATH /t REG_EXPAND_SZ /d "!USER_PATH!;%PERMANENT%" /f >nul 2>&1
echo [OK] 已永久写入(重启终端生效)
) else (
echo [OK] PATH 已存在,跳过写入
)
echo.
:: ── 5. 验证环境 ──
echo ========================================
echo 环境验证
echo ========================================
echo.
echo [1/7] Python...
python --version 2>nul && echo [OK] || echo [FAIL] Python 未安装
echo.
echo [2/7] Playwright...
python -c "from playwright.sync_api import sync_playwright; print(' [OK]')" 2>nul || (
echo [WARN] Playwright 未安装,正在安装...
pip install playwright
playwright install chromium
)
echo.
echo [3/7] Java...
java -version 2>&1 | findstr "version" >nul && echo [OK] || echo [WARN] Java 未找到(Appium 需要)
echo.
echo [4/7] adb...
adb --version 2>nul | findstr "Android" >nul && echo [OK] || echo [WARN] adb 未找到(Android 设备连接需要)
adb devices 2>nul
echo.
echo [5/7] Appium Server...
appium --version 2>nul && echo [OK] || echo [WARN] Appium 未安装
echo.
echo [6/7] Appium Driver (uiautomator2)...
appium driver list --installed 2>nul | findstr "uiautomator2" >nul && echo [OK] || (
echo [WARN] uiautomator2 驱动未安装
echo 安装命令: appium driver install uiautomator2
)
echo.
echo [7/7] Fleet Agent 验证...
cd /d "%~dp0\.."
python scripts\fleet_runner.py validate 2>nul && echo [OK] || echo [FAIL] 请确认在项目根目录下
echo.
:: ── 6. 输出快捷命令卡片 ──
echo ========================================
echo 常用命令速查
echo ========================================
echo.
echo 启动 Appium Server:
echo appium --allow-insecure "uiautomator2:chromedriver_autodownload"
echo.
echo 查看已连接设备:
echo adb devices
echo.
echo 创建 Android 模拟器(只需一次):
echo avdmanager create avd -n test_device -k "system-images;android-34;google_apis;x86_64" -d pixel_6
echo.
echo 启动模拟器:
echo emulator -avd test_device
echo.
echo 运行 Execute 战区:
echo /qe-fleet execute source_docs/requirements_raw/需求.docx
echo.
echo 一键验证环境:
echo %~dp0setup_execute_env.bat
echo.
echo ========================================
echo 配置完成!
echo ========================================
echo 如果 Android 模拟器还没创建,现在执行:
echo avdmanager create avd -n test_device -k "system-images;android-34;google_apis;x86_64" -d pixel_6
echo.
echo 如果还没装 uiautomator2 驱动:
echo appium driver install uiautomator2
echo.
pause
+21
View File
@@ -0,0 +1,21 @@
@echo off
echo ==========================================
echo 启动 Appium Server
echo ==========================================
echo.
:: 自动探测 adb 设备
adb devices 2>nul | findstr "device$" >nul
if %errorlevel% neq 0 (
echo [WARN] 未检测到 Android 设备/模拟器
echo 请先运行: emulator -avd test_device
echo 或连接 Android 真机
echo.
)
:: Appium v3 格式: 驱动名:功能名
echo [INFO] 启动 Appium Server...
echo [INFO] 支持 chromedriver 自动下载(WebView/H5 测试需要)
echo.
appium --allow-insecure "uiautomator2:chromedriver_autodownload"