STF入门进阶使用

STF简介

STF(Smartphone Test Farm)是一个手机设备管理平台(仅支持Android),可以对手机进行远程管理、调试、远程手机桌面监控等操作。这个系统类似于目前很流行的云测服务比如Testin,虽然网页上提供的设备很像模拟器中的设备,但是实际上都是真机。

环境搭建

关于STF环境搭建参考如下两篇博文

快速开始

登录账号

输入地址:http://xx.x.xx.xx:7100 打开登录界面,然后输入用户名和邮箱即可登录

image

设备选择

在STF主菜单点击选择 Devices 然后在设备列表选择可以使用的设备,StatusUse状态的表示空闲可使用,点击Use 即可使用。

image

设备操作

  • Control界面,可以使用鼠标实时操作设备。
  • 如果想获取日志,点击Logs选项中的Get按钮,然后选择日志级别
  • 如果想安装apk包,点击App Upload即可加载待安装的包

image

进阶应用

设备挂载

  • 如果需要远程连接设备进行调试,则需使用要连接设备到本地。本地需要先安装adb工具,然后在STF界面找到Remote Debug 复制远程连接地址,远程地址格式为:ip+port 如下图所示:
  • 连接设备后,输入命令 adb devices查看设备是否挂载成功。断开设备使用 命令 adb disconnect ip+port

image

H5调试

首先要在手机上能安装谷歌服务,可以使用Go谷歌安装器进行安装

  1. 本地电脑安装Chrome浏览器,拨通VPN
  2. 使用adb命名挂载设备到本地 adb connect xxxx:xx
  3. 打开设备上AppH5页面,然后打开Chrome浏览器,输入地址: chrome://inspect/#devices
  4. 如下图所示,点击 inspect 即可打开调试页面

image

STF API调用

环境准备

STF 提供了相关的接口,可以远程调用,比如申请设备,查看设备使用状态,释放设备,连接设备等等,使用这些接口首先需要创建TokenADBKey,创建方法如下:

  1. 登录STF平台后在Setting菜单栏种点击 Keys Tab栏,点击+ 按钮输入key的名称自动生成token
  2. ADBKeys栏中将本地的adbkey.pub中的值复制到输入框中,然后点击保存即可。
  3. STF接口文档:https://github.com/openstf/stf/blob/master/doc/API.md

image

接口调用

假设设备测试 Serialc70dacf1生成的
token 为: baafca0e3f10412bb8d2d292ac0bcf1xxxxxxxxxxxxxxxx

接口调用方式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 获取所有设备    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即可

image

参考资料