一、简介
Smartphone Test Farm(简称STF)是一个web应用程序,主要用于从指定的浏览器中远程调试智能手机、智能手表等,可远程调试超过160多台设备。STF可以便捷的管理移动测试设备,提高测试机的高效使用、便捷移动测试。
该工具具体的介绍可以参考官网:https://openstf.io/
STF源码地址为:https://github.com/openstf/stf
本文主要讲解docker环境下如何搭建STF环境
二、背景
最初引用STF是想解决测试机的高效使用,固化测试机的系统版本,各项系统设置不被篡改。后来在使用中发现STF提供检测测试机在使用前后的CPU、内存、电量等性能变化,可以追踪变更测试机设置的人员,对接monkey,查看Log等功能,确实方便测试执行。目前STF支持超过160台的设备连接,对于后期集群的搭建提供了很好的方式。
三、环境搭建
在docker终端中运行如下命令:
启动rethinkdb数据库
sudo docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 2048 --http-port 8090
启动adb service
sudo docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest
启动STF(最后的ip地址参数为浏览器访问ip地址)
sudo docker run -d --name stf --net host openstf/stf stf local --public-ip 11.0.21.27 --allow-remote
使用STF远程控制手机时,需要指定的电脑连接测试机,所以还需要启动一个provider用于接收目标电脑上报连接的测试机设备
docker下还需要执行以下命令:
stf provider --name centos74 --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 11.0.21.27 --storage-url http://11.0.21.27:7100/ --adb-host 172.16.69.197 --adb-port 5037 --vnc-initial-size 600x800 --mute-master never --allow-remote
上面命令中的ip:172.16.69.197,即为目标电脑的ip地址
目标电脑的ip查看方式:
1.Win+R打开电脑命令行,输入cmd
2.输入ipconfig,红框中内容即为电脑ip
docker启动完provider后,目标电脑需要运行adb server并且对外暴露5037端口方能向provider上报手机信息
目标电脑的环境搭建:
1.安装并配置SDK
SDK下载地址:https://android-sdk.en.softonic.com/
环境变量配置:https://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html
完成上面操作后,命令行中输入adb version命令
命令行返回上述信息后,即代表安装成功
接着需要启动adb server,输入命令adb nodaemon server -a -P 5037
命令行返回上述信息后,即代表服务启动成功
四、STF使用
电脑浏览器中打开连接http://11.0.21.27:7100,即可进入STF主页
输入用户名和邮箱登录即可开始使用
选择空闲的测试机,即可进入操作页,如下