logo
0
0
WeChat Login
胖鱼<accbot@accbot.vip>
docs: 简化流程,accSys 从 App 缓存获取,使用 instrumentation 启动

accBot Node.js 测试 Demo

本仓库演示如何使用 accBot TypeScript SDK 进行 Android 自动化测试。

前置条件

1. 环境要求

  • Node.js >= 18
  • ADB 工具(已添加到 PATH)

2. 设备要求

  • Android 设备(已开启 USB 调试)
  • 设备已连接到网络(通过 ADB 或 IP)

快速开始

第一步:克隆仓库并安装依赖

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

第四步:启动 App

# 使用 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 插件

关键说明

accSys 内置

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 &"

常见问题

Q: 连接超时

确认设备 IP 和端口正确,accSys 已启动:

adb shell "netstat -tlnp | grep 1901"

Q: 插件加载失败

确认插件 zip 文件存在:

ls node_modules/@accbot/accbot-plugin-opencv/plugin.zip
ls node_modules/@accbot/accbot-plugin-paddleocr/plugin.zip

Q: accSys 复制失败

确认 APK 已安装且缓存目录存在:

adb shell "ls /sdcard/Android/data/vip.accbot.app/cache/assets/sys/"

Q: APK 安装失败(签名冲突)

adb uninstall vip.accbot.app
adb install unpackage/debug.apk

相关链接

About

No description, topics, or website provided.
Language
JavaScript84.3%
Shell15.7%