STF一機多控版(android版)安裝部署手冊


stf簡介:

 

 

環境:mac 電腦

依賴 Python3.6+NodeJS 8

$  brew install node 

NodeJS版本太高了也不行,一定要NodeJS 8,推薦使用nvm管理node版本

1、 安裝adb環境,記得配置環境變量。

正常應該看到如下:

 

 

 nodejs 版本(需要8.X.0版本,是基於8.XX開發的,新的node可能會出現兼容問題): 8.14.0

 

 

在安裝過程中,出現錯誤:npm ERR! code ETARGET,先查看版本是否存在(訪問命令行中地址,下載成功,版本存在),再查看鏡像是否是公司鏡像,如是,請更新鏡像為 https://registry.npmjs.org, 重新安裝成功。

$npm config get registry

$npm config set registry https://registry.npmjs.org

node升降級方法:

$sudo npm install n -g

$sudo n 8.X.0   # X為你想要的版本
安裝匹配版本的npm:
$ cnpm install npm@6.4.1 -g

2、 檢查是否安裝brew(如按步驟1安裝的adb應該已裝brew):brew -v

 

 

 3、Git配置SSH Key:

生成密鑰#ssh-keygen -t rsa -C "git注冊郵箱"

查看密鑰#cat /Users/cdtanghui3/.ssh/id_rsa.pub

Git中填寫密鑰:

 

 

 測試#ssh -T git@github.com,如出現以下提示即配置成功。

 

 

 4、 選擇最新git包(Batch control based on STF support Mac/Linux,基於stf二次開發群控管理平台,支持Mac,Linux部署,一機多控):https://github.com/EasilyTest/stf.git

本地新建stf路徑后進入該文件夾中,

$git clone https://github.com/EasilyTest/stf.git

5、 安裝 brew 以及nodejs后,運行以下命令, 安裝stf依賴包:

$cd /

$ pip3 install -U "tidevice[openssl]"  #如安裝報錯,使用下述命令安裝,使用python3.6+版本下載安裝,如版本小於3.6,brew install python安裝最新版

$pip3 install -U tidevice #阿里內部小組用來做 iOS 自動化用的工具

$brew uninstall --ignore-dependencies XXX #如有安裝老版本,請卸載后安裝

$brew install --HEAD usbmuxd #USBMuxd連接方式不需要做MFI認證,支持iPhone上的App跟外設通過進行通信

$brew unlink XXX #如有安裝老版本,請先去鏈接綁定

$brew link usbmuxd

$brew install --HEAD libimobiledevice #libimobiledevice 是一個跨平台的軟件庫,支持 iPhone®, iPod Touch®, iPad® and Apple TV® 等設備的通訊協議。

$brew install --HEAD ideviceinstaller #管理iOS設備上應用程序的安裝與卸載,以及查看相關信息。 

$brew install carthage #提供OS X平台的pkg安裝文件,管理iOS三方庫。

$brew install socat #實現遠程DEBUG

$brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config #安裝rethinkdb

$brew install --cask android-platform-tools #安裝adb,如步驟1已安裝,此命令不執行。

6、 進入stf路徑下修改文件

 

 

(1)在package.json中,將"node-sass",從"^3.13.1",改為"^4.13.1”。

(2)在bower.json中,將“ ng-context-menu”從“ AdiDahan / ng-context-menu#~1.0.5”更改為“ swimlane/ng-context-menu#~1.0.1”。

7、 進入stf根目錄(安裝依賴)

   $npm install –unsafe-perm

     如果沒報錯繼續下一步。否則跳轉到第10步。

8、更新依賴關聯

    $npm link

9、檢查stf環境

    $stf doctor

 

執行遇見問題:ERR/cli:doctor 80758 [*] Unexpected error checking ZeroMQ: Error: Could not locate the bindings file. Tried:

解決方法:$npm rebuild

再次$stf doctor,成功

 

 

 8、 啟動stf

$stf local

報錯:

2021-04-25T08:30:35.107Z FTL/db 82194 [*] No hosts left to try

2021-04-25T08:30:35.107Z FTL/util:lifecycle 82194 [*] Shutting down due to fatal error

 

/Users/cdtanghui3/Downloads/STF/stf/node_modules/bluebird/js/main/promise.js:680

            throw e;

            ^

ExitError: Exit code "1"

    at ChildProcess.<anonymous> (/Users/cdtanghui3/Downloads/STF/stf/lib/util/procutil.js:49:23)

    at emitTwo (events.js:126:13)

    at ChildProcess.emit (events.js:214:7)

at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)

原因:可能沒有啟動rethinkdb命令。

解決辦法:$rethinkdb& #啟動rethinkdb

 

 再次$ stf local,啟動成功

9、一機多控

 

 

 10、問題處理(終極解決方法)

在stf根目錄下,執行命令:$npm list --depth=0

對比自己的版本和下面的版本是否一致。優先對比紅色字體部分。

步驟為:

$npm uninstall XXX

$npm install XXX@xxx

或npm audit fix

├── @slack/client@3.16.0

├── adbkit@2.11.1

├── adbkit-apkreader@3.2.0

├── adbkit-monkey@1.0.1

├── android-device-list@1.2.3

├── async@2.6.3

├── aws-sdk@2.744.0

├── basic-auth@1.1.0

├── bluebird@2.11.0

├── body-parser@1.19.0

├── bower@1.8.8

├── bplist@0.0.4

├── bufferutil@1.3.0

├── chai@3.5.0

├── chalk@1.1.3

├── compression@1.7.4

├── cookie-session@2.0.0-rc.1

├── css-loader@0.23.1

├── csurf@1.11.0

├── debug@2.6.9

├── del@2.2.2

├── eslint@3.19.0

├── event-stream@3.3.5

├── eventemitter3@1.2.0

├── exports-loader@0.6.4

├── express@4.17.1

├── express-validator@2.21.0

├── extract-text-webpack-plugin@1.0.1

├── file-loader@0.9.0

├── file-saver@1.3.3

├── formidable@1.2.2

├── fs-extra@8.1.0

├── gm@1.23.1

├── gulp@3.9.1

├── gulp-angular-gettext@2.3.0

├── gulp-eslint@3.0.1

├── gulp-jsonlint@1.3.2

├── gulp-protractor@3.0.0

├── gulp-pug@3.3.0

├── gulp-run@1.7.1

├── gulp-util@3.0.8

├── hipchatter@0.3.2

├── html-loader@0.4.5

├── http-https@1.0.0

├── http-proxy@1.18.1

├── images@3.2.3

├── imports-loader@0.6.5

├── in-publish@2.0.1

├── jasmine-core@2.99.1

├── jasmine-reporters@2.3.2

├── jpeg-turbo@0.4.0

├── json-loader@0.5.7

├── jws@3.2.2

├── karma@1.7.1

├── karma-chrome-launcher@2.2.0

├── karma-firefox-launcher@1.3.0

├── karma-ie-launcher@1.0.0

├── karma-jasmine@2.0.1

├── karma-junit-reporter@1.2.0

├── karma-opera-launcher@1.0.0

├── karma-phantomjs-launcher@1.0.4

├── karma-safari-launcher@1.0.0

├── karma-webpack@1.8.1

├── ldapjs@1.0.2

├── less@2.7.3

├── less-loader@2.2.3

├── lodash@4.17.21

├── markdown-serve@0.3.3

├── memory-fs@0.3.0

├── mime@1.6.0

├── minicap-prebuilt-beta@2.4.0

├── minimatch@3.0.4

├── minitouch-prebuilt-beta@1.3.0

├── my-local-ip@1.0.0

├── ng-context-menu@0.1.1

├── node-libs-browser@1.1.1

├── node-sass@4.14.1

├── node-unzip-2@0.2.8

├── openid@2.0.7

├── passport@0.3.2

├── passport-oauth2@1.5.0

├── passport-saml@0.15.0

├── phantomjs-prebuilt@2.1.16

├── please-update-dependencies@2.0.0

├── protobufjs@3.8.2

├── protractor@5.4.4

├── protractor-html-reporter-2@1.0.4

├── proxy-addr@1.1.5

├── pug@2.0.4

├── raw-loader@0.5.1

├── request@2.88.2

├── request-progress@2.0.1

├── request-promise@4.2.6

├── rethinkdb@2.4.2

├── sass-loader@4.1.1

├── script-loader@0.7.2

├── semver@5.7.1

├── serve-favicon@2.5.0

├── serve-static@1.14.1

├── sharp@0.22.1

├── sinon@1.17.7

├── sinon-chai@2.14.0

├── sleep@6.3.0

├── socket.io@2.3.0

├── socket.io-client@1.4.8

├── split@1.0.1

├── stf-appstore-db@1.0.0

├── stf-browser-db@1.0.2

├── stf-device-db@1.2.0

├── stf-syrup@1.0.0

├── stf-wiki@1.0.0

├── style-loader@0.13.2

├── swagger-express-mw@0.7.0

├── swagger-tools@0.10.4

├── teen_process@1.15.0

├── temp@0.8.4

├── template-html-loader@0.0.3

├── then-jade@2.4.4

├── transliteration@1.6.6

├── url-join@1.1.0

├── url-loader@0.5.9

├── utf-8-validate@1.2.2

├── uuid@3.4.0

├── UNMET PEER DEPENDENCY webpack@1.15.0

├── webpack-dev-server@3.11.0

├── ws@3.3.3

├── yargs@6.6.0

└── zmq@2.15.3

11、

ios 不顯示問題

通過查看源代碼發現,這里代碼里面寫死了wda包名。需要修改為手機上安裝的wda的包名。

 

 機上安裝的wda的包名查看方式:先找到webdriveragent app,使用命令:

 %  ideviceinstaller -l|grep 'WebDriverAgentRunner-Runner'

或者在xcode中查看:

 

 

 

12、其他問題

(1)zmq 未綁定

在stf根目錄:

npm install --save zmq

echo 'require("zmq")' | node

cd node_modules/zmq/; node-gyp configure

(2)執行stf 命令,提示權限不足

chmod 777 路徑

(3)移除stf/node_modules

npm install rimraf -g

rimraf node_modules

(4)stf 卸載

npm uninstall -g stf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM