STF STF(Device Farmer) 多设备管理平台

· 2021年02月27日 · 最后由 大浪 回复于 2021年05月24日 · 5713 次阅读

STF(Device Farmer) 多设备管理平台

github 地址:https://github.com/DeviceFarmer/stf

填坑 :由于 openstf 停止维护,不支持 Android 10,所以升级为 Device Farmer

openstf 支持的 Android 版本: Supports versions 2.3.3 (SDK level 10) to 9.0 (SDK level 28)

Device Farmer 支持的 Android 版本:Supports versions 2.3.3 (SDK level 10) to 10 (SDK level 29)

一、安装部署

#在Mac OS上,您可以使用homebrew安装大多数依赖项:
brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config

#了解下自己的node版本和npm的版本
npm version

#解决好***问题,搞不定就用cnpm,安装之前先卸载为佳,因为npm bug挺多,会误判一些lib
#npm uninstall -g stf
#rm  -rf /usr/local/lib/node_modules/stf/
cnpm install -g @devicefarmer/stf
  • 常见的坑

    • node 版本不要太新,最好使用 LTS 版本(我从 11.x 降级为了 8.x)
    • 更新 node 版本后原有的依赖需要重新编译
    • 权限问题,⽤户和组的权限都必须设置正确
    • npm ⾃⾝在下载依赖的时候会有 bug(下载太慢,容易出错,最终我卸载后用 cnpm 重装)
    • node 文件权限问题,使用 unsafe-perm=true(npm install -g @devicefarmer/stf --unsafe-perm=true) ERR! OMG EACCES: permission denied, mkdir '/Users/shiyuyu/.cmake-js/node-x64/v8.16.0' ERR! OMG EACCES: permission denied, mkdir '/Users/shiyuyu/.cmake-js/node-x64/v8.16.0'
      npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限
  • 启动

rethinkdb --http-port 8081 & 指定 port,防止和 Jenkins 等端口冲突
stf local --public-ip <your_internal_network_ip_here> &

  • 停止进程

ps -ef | grep stf/lib | awk '{print $2}' | xargs kill -9

二、使用

使用和配置文档:https://github.com/openstf/stf/wiki

rethinkdb 地址:http://localhost:8081/

stf 地址:http://100.84.84.225:7100/#!/devices

三、API

api 文档:https://github.com/DeviceFarmer/stf/blob/master/doc/API.md

token: 44afa160d27b47e8b3513ecabcbe923208ed469a5f644629b006cea9b98f7cbf

  • 举个栗子:获取设备列表

curl -H "Authorization: Bearer 44afa160d27b47e8b3513ecabcbe923208ed469a5f644629b006cea9b98f7cbf" http://100.84.86.70:7100/api/v1/devices

mac 安装 jq,让 json 格式化显示:brew install jq

curl -H "Authorization: Bearer 44afa160d27b47e8b3513ecabcbe923208ed469a5f644629b006cea9b98f7cbf" http://100.84.84.225:7100/api/v1/devices | jq .

至此:可以管理 Android 2.3.3~Android 10 的手机了

四、持续集成

1.在 stf 中生成 stf access token

2.jenkins 安装 stf 插件

3.配置 STF Access Token

4.配置 jenkins job

运行结果:

待办:https://juejin.cn/post/6985818094794965006
回头试一下 ios 是否可以运行起来

共收到 8 条回复 时间 点赞

是我网络问题,还是文章的图片本来就挂了

最后几张图挂了

补一下图呗

#4 · 2021年03月18日 Author
iceman03 回复

我从自己的另一个博客 copy 过来的,结果那个挂了,我再补一下。抱歉了

#5 · 2021年03月18日 Author
AlexYou 回复

已补

这两天在搞 stf,没有 10 版本一下的手机,嘎了个尬,早看见我就弄这个了😂 😂 😂 😃 😃 😃

#7 · 2021年03月19日 Author
pablo 回复

SFT 和 device farmer 是一样的,它们都是一个团队维护的。除了依赖增加了一个,其他搭建步骤都一样

STF 一直在维护啊

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册