docker搭建openstf, 远程无延时控制手机

最近手机需要放到实验室运行,想通过外部访问直接控制手机,而不需要到实验室里,费时费力。发现网上的开源项目stf,它可以搭建一个批量控制手机的web平台,目前只能运行在linux环境中,所以需要准备一台linux服务器

1. docker拉取镜像

docker pull openstf/stf:latest
docker pull sorccu/adb:latest
docker pull rethinkdb:latest
docker pull openstf/ambassador:latest
docker pull nginx:latest

2. docker内部运行容器

docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090

docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest

docker run -d --name stf --net host openstf/stf stf local --public-ip 172.18.40.36(stf搭建的服务器IP)

访问目标网址172.18.40.36:7100,就可以通过web页面控制手机了

docker搭建openstf, 远程无延时控制手机_第1张图片

上面的操作是手机插在搭建stf的服务器上,其实更需要的是服务器启动stf服务,不同的手机插在其他的电脑上,依然能够通过网页控制手机。下面以windows为例。

首先windows电脑必须有adb,可以连接手机。输入指令

adb nodaemon server -a -P 5037

如果指令报错,先杀死服务,在重新输入命令

adb kill-server

注意:低版本可能输入 adb -a -P 5037 fork-server server 指令,没有尝试过

在stf服务器中配置adb host,来连接windows上的手机

1. 查看当前运行的镜像,找到stf的容器id

docker ps –a

2. 进入docker容器中

docker exec -it 9609ce2bf1e1 /bin/sh 

3. 运行stf服务

stf local --public-ip 172.18.40.36 --allow-remote

4. 通过adb host 加载windows上的设备

从第三条命令的输出结果中找到provider, 复制整条命令,修改你的host ip。

docker搭建openstf, 远程无延时控制手机_第2张图片


stf provider --name mstb --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 172.18.40.36 --storage-url http://localhost:7100/ --adb-host 172.18.41.90 --adb-port 5037 --vnc-initial-size 600x800 --mute-master never --allow-remote

之后再输入网址,就可以操作本地电脑上的手机了。

你可能感兴趣的:(docker,自动化测试,安卓)