STF简介
STF(Smartphone Test Farm)是一个手机设备管理平台(仅支持Android),可以对手机进行远程管理、调试、远程手机桌面监控等操作。这个系统类似于目前很流行的云测服务比如Testin,虽然网页上提供的设备很像模拟器中的设备,但是实际上都是真机。
快速开始
登录账号
输入地址:http://xx.x.xx.xx:7100 打开登录界面,然后输入用户名和邮箱即可登录
设备选择
在STF主菜单点击选择 Devices
然后在设备列表选择可以使用的设备,Status
为Use
状态的表示空闲可使用,点击Use
即可使用。
设备操作
- 在
Control
界面,可以使用鼠标实时操作设备。 - 如果想获取日志,点击
Logs
选项中的Get
按钮,然后选择日志级别 - 如果想安装apk包,点击
App Upload
即可加载待安装的包
进阶应用
设备挂载
- 如果需要远程连接设备进行调试,则需使用要连接设备到本地。本地需要先安装
adb
工具,然后在STF界面找到Remote Debug
复制远程连接地址,远程地址格式为:ip port
如下图所示: - 连接设备后,输入命令
adb devices
查看设备是否挂载成功。断开设备使用 命令adb disconnect ip port
H5调试
首先要在手机上能安装谷歌服务,可以使用Go谷歌安装器进行安装
- 本地电脑安装
Chrome
浏览器,拨通VPN
- 使用adb命名挂载设备到本地
adb connect xxxx:xx
- 打开设备上
App
内H5
页面,然后打开Chrome
浏览器,输入地址:chrome://inspect/#devices
- 如下图所示,点击
inspect
即可打开调试页面
STF API调用
环境准备
STF
提供了相关的接口,可以远程调用,比如申请设备,查看设备使用状态,释放设备,连接设备等等,使用这些接口首先需要创建Token
和ADBKey
,创建方法如下:
- 登录STF平台后在Setting菜单栏种点击
Keys Tab
栏,点击key
的名称自动生成token
- 在
ADBKeys
栏中将本地的adbkey.pub
中的值复制到输入框中,然后点击保存即可。 - STF接口文档:https://github.com/openstf/stf/blob/master/doc/API.md
接口调用
假设设备测试 Serial
为c70dacf1
生成的 token
为: baafca0e3f10412bb8d2d292ac0bcf1xxxxxxxxxxxxxxxx
接口调用方式如下:
代码语言:javascript复制// 获取所有设备 c70dacf1 为设备的 serial 字段
curl -H "Authorization: Bearer baafca0e3f10412bb8d2d292ac0bcf1caa113f63101xxxxxxxxxxxxxxx" http://172.31.33.135:7100/api/v1/devices
//获取单个设备信息
curl -H "Authorization: Bearer baafca0e3f10412bb8d2d292ac0bcf1caa113f6310144a73a37xxxxxxxxxxxxb" http://172.31.33.135:7100/api/v1/devices/c70dacf1
//返回那些设备在被那些用户使用
curl -H "Authorization: Bearer baafca0e3f10412bb8d2d292ac0bcf1caa113f6310144a73a37xxxxxxxxx" http://172.31.33.135:7100/api/v1/user/devices
// 申请一台移动设备
curl -X POST --header "Content-Type: application/json" --data '{"serial":"c70dacf1"}' -H "Authorization: Bearer baafca0e3f10412bb8d2d292ac0bcf1caa113f6310144a73xxxxxxxxxxxxx" http://172.31.33.135:7100/api/v1/user/devices
返回: {"success":true,"description":"Device successfully added"}
//归还一台设备
curl -X DELETE -H "Authorization: Bearer baafca0e3f10412bb8d2d292ac0bcf1caa113f6310144a7xxxxxxxxxxxx" http://172.31.33.135:7100/api/v1/user/devices/c70dacf1
返回 {"success":true,"description":"Device successfully removed"}
//获取远程测试地址
curl -X POST -H "Authorization: Bearer baafca0e3f10412bb8d2d292ac0bcf1caa113f6310144a7xxxxxxxxxxxxxxxx" http://172.31.33.135:7100/api/v1/user/devices/c70dacf1/remoteConnect
返回 {"success":true,"remoteConnectUrl":"172.31.33.135:7409"} ,remoteConnectUrl 返回给测试调用方法,用续appium通过该地址进行测试
释放设备
设备使用完成后,一定要释放设备,否则其他人无法使用。释放方法:点击Devices
菜单,然后点击设备上的Stop Using
即可