一、簡介
由于公司研發體系人員衆多而且業務方面又涉及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操控運作原理
- 手機打開開發者模式,打開USB調試功能,stf會自動檢測到手機并安裝stf應用軟體
- 伺服器自動加載stream.js檔案,初始化一個websocket server會話執行個體,建立與web端的資訊通訊
- 若手機截圖同步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 該作者總結