本仓库演示如何使用 accBot TypeScript SDK 进行 Android 自动化测试。
git clone https://cnb.cool/accbot/tool/nodeJsTestDemo.git
cd nodeJsTestDemo
npm install
安装完成后,SDK 会自动释放以下文件到 unpackage/ 目录:
debug.apk - Android APK(内置 accSys)paddleocr-plugin.zip - PaddleOCR 插件# USB 连接
adb devices
# 或网络连接
adb connect <设备IP>:5555
adb devices
关键发现:accSys 已内置在 APK 中,安装后自动释放到 App 缓存目录。
# 安装 APK
adb install unpackage/debug.apk
# 从 App 缓存复制 accSys(无需外部推送)
adb shell "cp /sdcard/Android/data/vip.accbot.app/cache/assets/sys/accSys /data/local/tmp/accSys"
adb shell "chmod +x /data/local/tmp/accSys"
# 后台启动 accSys
adb shell "cd /data/local/tmp && nohup ./accSys > ./accSys.log 2>&1 &"
# 等待 2 秒后确认端口
sleep 2
adb shell "netstat -tlnp | grep 1901"
# 应看到 19011 和 19012
# 使用 instrumentation 启动(推荐)
adb shell "nohup am instrument -w -r -e debug false -e class 'run.RunTest#useAppContext' vip.accbot.app/androidx.test.runner.AndroidJUnitRunner >/storage/emulated/0/Download/log_u2.txt 2>&1 &"
# 等待 App 启动
sleep 3
node index.mjs
chmod +x deploy.sh
./deploy.sh
# 1. 克隆仓库
git clone https://cnb.cool/accbot/tool/nodeJsTestDemo.git
cd nodeJsTestDemo
npm install
# 2. 连接设备
adb connect 192.168.56.55:5555
adb devices
# 3. 清理旧版本
adb uninstall vip.accbot.app 2>/dev/null || true
adb shell "pkill -f accSys" 2>/dev/null || true
# 4. 安装 APK
adb install unpackage/debug.apk
# 5. 部署 accSys(从 App 缓存复制)
adb shell "cp /sdcard/Android/data/vip.accbot.app/cache/assets/sys/accSys /data/local/tmp/accSys"
adb shell "chmod +x /data/local/tmp/accSys"
adb shell "cd /data/local/tmp && nohup ./accSys > ./accSys.log 2>&1 &"
sleep 2
# 6. 启动 App
adb shell "nohup am instrument -w -r -e debug false -e class 'run.RunTest#useAppContext' vip.accbot.app/androidx.test.runner.AndroidJUnitRunner >/storage/emulated/0/Download/log_u2.txt 2>&1 &"
sleep 3
# 7. 运行测试
node index.mjs
=== accBot SDK 测试 Demo === 1️⃣ 连接设备... ✅ 连接成功 1.5️⃣ 自动授权权限... ✓ 文件读写 — 已开启 ✓ 悬浮窗 — 已开启 ✅ 输入法 已授权 ✅ 必要权限 已授权 ✓ 通知权限 — 已开启 ✅ 系统设置 已授权 ✅ 省电优化 已授权 2️⃣ 检查插件列表... 当前插件: [ 'opencv', 'paddleocr' ] ✅ 检查完成 3️⃣ 部署 OpenCV 插件... 插件已推送 插件已存在,跳过加载 ✅ OpenCV 插件就绪 4️⃣ 部署 PaddleOCR 插件... 插件已推送 插件已存在,跳过加载 ✅ PaddleOCR 插件就绪 5️⃣ 测试 OpenCV 功能... 截图成功, imageId: 3 坐标(100,100)颜色: [241, 242, 246] ✅ OpenCV 功能正常 6️⃣ 测试 PaddleOCR 功能... 支持的语言: [ 'cyrillic', 'ch' ] 当前语言: ch OCR 结果数量: 31 示例文本: "04:20", "已连接", "accBotAPI测试工具" ✅ PaddleOCR 功能正常 === 测试完成 ===
nodeJsTestDemo/ ├── README.md # 本文档 ├── package.json # 项目配置 ├── index.mjs # 主测试脚本 ├── deploy.sh # 一键部署脚本 ├── .npmrc # npm 私有仓库配置 ├── .gitignore # git 忽略文件 └── unpackage/ # SDK 释放目录(npm install 后生成) ├── debug.apk # Android APK(内置 accSys) └── paddleocr-plugin.zip # PaddleOCR 插件
SDK 内置了 accSys,安装 APK 后自动释放到:
/sdcard/Android/data/vip.accbot.app/cache/assets/sys/accSys
无需单独编译或下载 accSys。
所有服务启动命令使用 nohup 和 & 确保后台运行,不阻塞终端:
# accSys 后台启动
adb shell "cd /data/local/tmp && nohup ./accSys > ./accSys.log 2>&1 &"
# App 后台启动
adb shell "nohup am instrument ... >/storage/emulated/0/Download/log_u2.txt 2>&1 &"
确认设备 IP 和端口正确,accSys 已启动:
adb shell "netstat -tlnp | grep 1901"
确认插件 zip 文件存在:
ls node_modules/@accbot/accbot-plugin-opencv/plugin.zip
ls node_modules/@accbot/accbot-plugin-paddleocr/plugin.zip
确认 APK 已安装且缓存目录存在:
adb shell "ls /sdcard/Android/data/vip.accbot.app/cache/assets/sys/"
adb uninstall vip.accbot.app adb install unpackage/debug.apk