更新时间:2023-03-16 GMT+08:00
通过STF批量管理云手机
操作场景
STF,全称Smartphone Test Farm,一个开源的web架构应用,用于移动设备管理控制。本质上通过浏览器控制和管理Android设备,实现真正意义的云端使用、调试和测试。本小节通过在一台ECS上部署STF的相关组件,实现快速批量管理云手机的功能。
约束与限制
- STF实测支持同时管理约160台云手机,更大规模的接入管理需要结合业务进行二次开发。
- STF可靠运行依赖稳定的网络环境,网络状态不佳时云手机的操作时延会显著增大。
前提条件
- 已购买一台绑定EIP的云手机服务器。
- 已购买一台绑定EIP的弹性云服务器。
云手机服务器和弹性云服务器参考以下规格,具体规格可结合业务场景决定。
- 云手机服务器规格为:physical.kg1.4xlarge.cp | kg1.cp.c60.d16SSD.e1v1
- 弹性云服务器规格为:通用计算型 | s6.large.2 | 2vCPUs | 4GiB | Ubuntu 18.04 server 64bit(40GB)
操作步骤
在弹性云服务器上部署STF依赖的相关组件,并借助ADB工具连接云手机,最后通过浏览器访问STF的地址,实现云手机的批量管理。
- 安装ADB,并验证安装结果。
sudo apt install android-tools-adb android-tools-fastboot adb --version
正确回显版本即安装成功。
图1 ADB安装成功
- 更新源,然后安装RethinkDB,用于STF数据存储。
source /etc/lsb-release && echo "deb https://download.rethinkdb.com/repository/ubuntu-$DISTRIB_CODENAME $DISTRIB_CODENAME main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list wget -qO- https://download.rethinkdb.com/repository/raw/pubkey.gpg | sudo apt-key add - sudo apt-get update sudo apt-get install rethinkdb rethinkdb -v
正确回显版本即安装成功。图2 RethinkDB安装成功
RethinkDB官网支持x86架构,对于arm架构仅为实验性支持。
- 安装ZeroMQ,用于消息传递。
sudo apt-get install libzmq3-dev
图3 ZeroMQ安装成功
- 安装Protocol Buffers,作为消息传递的数据格式。
sudo apt-get install libprotobuf-dev protobuf-compiler protoc --version
正确回显版本即安装成功。图4 Protocol Buffers安装成功
- 安装GraphicsMagick,用于处理图像的读取、写入和操作。
sudo apt-get install graphicsmagick gm version
正确回显版本即安装成功。图5 GraphicsMagick安装成功
- 安装pkg-config,用于编译Nodejs第三方库。
sudo apt-get install pkg-config pkg-config --version
正确回显版本即安装成功。图6 pkg-config安装成功
- 安装yasm,用于编译STF的依赖库。
sudo apt-get install yasm yasm --version
正确回显版本即安装成功。图7 yasm安装成功
- 安装Nodejs,用于部署STF运行环境。
##STF运行只支持Node.js 8.x版本 curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs node -v npm -v
正确回显版本即安装成功。图8 node和npm安装成功
- 安装STF。
sudo npm install -g cnpm --registry=https://registry.npm.taobao.org sudo cnpm install -g stf stf -V
正确回显版本即安装成功。图9 STF安装成功
- 检查STF依赖环境是否满足。
stf doctor
正确回显各组件版本即满足。图10 STF检测启动环境
- 基于ADB连接云手机实例,具体连接方式参考ADB连接。
- 启动RethinkDB。
rethinkdb
回显如图11即启动成功。 - 基于local模式启动STF,并基于浏览器访问。
##下方请填写实际的弹性云服务器EIP地址 stf local --public-ip {EIP地址} --allow-remote ##访问方式 http://{EIP地址}:7100/
图12 输入STF默认账户和密码
图13 云手机实例
图14 云手机控制界面