一、简介
       由于公司研发体系人员众多而且业务方面又涉及C/S端的产品,因此频繁互借测试手机是一个问题,测试手机资源有限,借了由于工作忙而忘了归还,为此引入开源框架STF来解决这一问题,将有限的资源达到最大化的输出。

二、介绍STF及优劣势分析

  • STF是一款开源的远程真机管理平台,GitHub地址:https://github.com/openstf/stf
  • STF框架类比于目前市场上比较火的wetest、testin等远程真机管理平台
  • 官网地址:https://openstf.io/
    在这里插入图片描述

优势:
1.支持安卓2.3-9.0系统(9.0系统为目前最新)
2.支持远程键鼠对真机进行操作
3.远程复制粘贴功能(目前wetest平台不支持)
4.快照截图
5.应用包及文件的上传/下载功能
6.支持远程端浏览器进行真机访问操作
7.日志输出及错误日志输出打印
8.脚本运行(可实现后续的自动化测试)
9.开发人员进行远程debug功能
10.操作快捷、反应迅速
11.获取设备的硬件信息,及实时监控设备健康状况
劣势:
1.仅支持安卓手机远程控制,iOS不支持
2.对网络及带宽要求较高(无须考虑)

三、STF操控运行原理
在这里插入图片描述

  1. 手机打开开发者模式,打开USB调试功能,stf会自动检测到手机并安装stf应用软件
  2. 服务器自动加载stream.js文件,初始化一个websocket server会话实例,建立与web端的信息通讯
  3. 若手机截图同步minicap调试工具会初始化一个frameproducer实例,通过2步骤建立的会话进行数据流传输到web端

四、STF部署依赖包

  • 根据GitHub文档要求,启动STF环境必须要依赖于以下几个组件安装并设置对于的环境变量

要求:
1.安卓sdk
2.Node.js环境
3.RethinkDB
4.GraphicsMagick
5.ZeroMQ
6.yasm
7.libsodium
8.protobuf
9.pkg-config
10.stf

五、搭建步骤(以centos7为例)
1.安装STF之前先确保必备的基础环境,如下:

1.安装JDK、GCC环境,并设置好环境变量
2.保证服务器下能够运用unzip、wget等基础命令,若没有 yum install unzip/wget自行安装

2.安装安卓SDK并配置环境变量

#下载sdk-tools压缩包
wget  https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
#解压SDK包
unzip  sdk-tools-linux-3859397.zip
#设置SDK环境bianl
vi /etc/profile
export PATH=$PATH:包路径/tools/bin
#运行source生效设置的环境变量
source /etc/profile
#校验SDK环境变量是否生效
sdkmanager --list
#生效后,安装platform-tools,可用sdkmanager --list查看是否安装
sdkmanager "platform-tools"
#设置platform的环境变量
export PATH=$PATH:包路径/platform-tools
sourc /etc/profile
#校验环境变量是否生效
adb --version

3.安装node环境

#安装node压缩包
wget  https://nodejs.org/download/release/v9.0.0/node-v9.0.0-linux-x64.tar.gz
#解压node包
tar xvf node-v9.0.0-linux-x64.tar.gz
#软连接到/usr/local/bin目录下,生效node,npm命令
ln -s 包路径/node-v9.0.0-linux-x64/bin/node /usr/local/bin/node
ln -s 包路径/node-v9.0.0-linux-x64/bin/npm /usr/local/bin/npm
#校验环境是否生效
node -v
npm -v

4.安装rethinkdb环境

#由于我的yum源没有该rethinkdb包源地址,必须要将rethinkdb加载到yum源中
wget http://download.rethinkdb.com/centos/7/`uname -m`/rethinkdb.repo -O /etc/yum.repos.d/rethinkdb.repo
#执行yum安装rethinkdb
yum install rethinkdb
#校验是否安装成功
rethinkdb -v

5.安装GraphicsMagick环境

#安装压缩包
wget https://iweb.dl.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.26/GraphicsMagick-1.3.26.tar.gz
#包解压
tar xvf GraphicsMagick-1.3.26.tar.gz
#由于该包是源码包安装依赖于GCC环境,需要centos环境有GCC才行否则报错
yum install gcc(有可跳过)
./configure
make && make install
#校验是否安装成功
gm

6.安装yasm环境,同上类似操作

#安装包地址
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
make install
#校验环境是否安装成功
yasm --version

7.安装libsodium环境,同上类似操作

#安装包地址
wget http://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz
tar xvf libsodium-1.0.18.tar.gz
./configure
make
make install
#校验环境是否安装成功
whereis libsodium

8.安装zeromq环境**(这块要按照我这个思路去安装,参照网上教程是有问题的)**

#安装zeromq
npm install zmq --unsafe-perm

9.安装protobuf环境,同上类似操作

#安装包地址
wget https://github.com/google/protobuf/releases/download/v3.5.0/protobuf-cpp-3.5.0.tar.gz
./configure --prefix=包路径/protobuf
#设置环境变量
export PATH=$PATH:包路径/protobuf/bin/
export PKG_CONFIG_PATH=包路径/protobuf/lib/pkgconfig/
#启动source生效环境变量
source /etc/profile
protoc --version

10.安装pkg-config环境,同上类似操作

#安装包地址
wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
tar xvf pkg-config-0.29.2.tar.gz
cd pkg-config-0.29.2
./configure --prefix=/usr/local/pkg-config --with-internal-glib
make
make install
#校验环境是否生效
pkg-config --version

11.stf安装

#安装stf
npm install -g stf
#到指定stf目录
cd 包路径/node/node-v9.0.0-linux-x64/lib/node_modules/stf/bin
#检查健康状况
./stf doctor

若出现报错:libzmq.so.5 No such file
解决方案:
由于安装zeromq是通过npm安装,执行:
find / -name libzmq.so.5 命令找到该文件路径
cd /usr/local/lib (libzmq.so.5目标目录下)
ldconfig

12.再次检查环境./stf doctor
在这里插入图片描述

#启动rethinkdb服务
rethinkdb &
#启动stf
cd 包路径/node/node-v9.0.0-linux-x64/lib/node_modules/stf/bin
#后台启动
nohup stf local --public-ip 192.168.6.49 --allow-remote &

13.在公司局域网内电脑访问http://192.168.6.49:7100
在这里插入图片描述
在这里插入图片描述

本文搭建stf环境心得来源于:https://www.jianshu.com/p/539ee1053da3 该作者总结

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐