一、OpenSTF简介
OpenSTF(Smartphone Test Farm)是一个Web端移动设备管理平台,可以从浏览器端远程调试、远程管理设备。
二、环境准备
在Windows10上安装VMware workstation 16 Pro及Ubuntu 20.04.3(参考上一篇安装教程),安装完毕后,VMware网络连接设置桥接模式,如下图:
Windows IP: 192.168.0.107
虚拟机IP: 192.168.0.105
三、步骤
安装Docker
# 更新软件包
sudo apt-get update# 安装Docker
sudo apt-get install docker
sudo apt-get install docker.io# 检查docker是否安装成功
docker version#查看已拉取的docker镜像,由于还没安装任何镜像,列表为空
sudo docker images
拉取 STF 相关镜像
sudo docker pull openstf/stf:latest # STF镜像
sudo docker pull sorccu/adb:latest # adb 镜像
sudo docker pull rethinkdb:latest # rethinkdb 镜像
sudo docker pull openstf/ambassador:latest # ambassador 镜像
sudo docker pull nginx:latest # nginx 镜像
sudo docker images
启动镜像(按先后顺序)
# 启动rethinkdb数据库
docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090# 启动adb
docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest# 启动stf,IP地址通过ifconfig命令查询
docker run -d --name stf --net host openstf/stf stf local --public-ip 192.168.0.105
#查看运行中的容器,包含有容器ID、容器名称
sudo docker ps -a
STATUS为Up状态即开启,Exited为退出
在主机PC端或虚拟机中浏览器访问:http://192.168.0.105:7100
用户名为任意字符串,密码符合邮箱格式即可登录;至此,STF安装成功。
连接设备
准备:Windows未安装STF、但支持Android SDK环境(adb --version验证是否安装adb,android -h验证是否安装SDK),Ubuntu已安装STF,在同一个网络环境中。以下为两种连接方式:
(1)STF(docker版)直连手机
手机打开开发者模式和USB调试插在电脑上,设置虚拟机直连手机
STF首页即可看到连接手机
(2)通过STF(docker版)连接其它电脑上的手机
即将没有安装stf的windows上连接的android设备,添加映射到装有stf的机器上,实现远程操控。
打开手机开发者模式和USB调试插入电脑,连接主机非虚拟机。
在windows上暴露adb端口,adb版本为1.0.31,采用默认端口5037,直到执行命令出现OK:
adb -a -P 5037 fork-server server
切换到Ubuntu环境,重启stf系列镜像;
# 进入stf镜像目录,sudo docker ps -a查看容器ID
docker exec -it stf的容器ID /bin/sh
# 此命令表示将windows连接的安卓手机共享给stf
#stf--name后为hostname,--public-ip后为虚拟机ip,--adb-host后为主机windows ip
stf provider --name kong-virtual-machine --min-port 7400 --max-port 7700 --connect-sub tcp://127.0.0.1:7114 --connect-push tcp://127.0.0.1:7116 --group-timeout 900 --public-ip 192.168.0.105 --storage-url http://localhost:7100/ --adb-host 192.168.0.107 --adb-port 5037 --vnc-initial-size 600x800 --mute-master never --allow-remote执行过程中移动端需点击同意安装STFService
连接成功后显示移动设备信息
刷新STF首页可看到windows连接的android手机。
四、遇到的问题及解决
1、连接主机端口被拒绝
关闭主机防火墙,主机和虚拟机间能互相ping通
2、无法绑定端口5037
执行adb kill-server
3、启动镜像报错
无权限访问问题,切换root账户执行即可;
sudo passwd root #设置root账户密码
su root #切换至root账户
4、其它命令
启动容器:docker start 容器名 如:docker start rethinkdb
停止容器:docker stop 容器名
查看占用端口进程:netstat -ano |findstr "5037",任务管理器关掉对应进程