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:
@@ -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
|
||||
Reference in New Issue
Block a user