一、STF簡(jiǎn)介
STF(Smartphone Test Farm)是一個(gè)手機(jī)設(shè)備管理平臺(tái),可以對(duì)手機(jī)進(jìn)行遠(yuǎn)程管理猎醇、調(diào)試、遠(yuǎn)程手機(jī)桌面監(jiān)控等操作努溃。
二硫嘶、安裝docker環(huán)境
參考docker官方文檔,這里就不再贅述:
https://docs.docker.com/install/linux/docker-ce/centos/
三梧税、拉取相關(guān)鏡像
STF鏡像
# sudo docker pull devicefarmer/stf:latest
Android adb鏡像
# sudo docker pull sorccu/adb:latest
rethinkdb鏡像
# sudo docker pull rethinkdb:latest
ambassador鏡像
# sudo docker pull openstf/ambassador:latest
nginx代理鏡像
# sudo docker pull nginx:latest
四沦疾、創(chuàng)建容器實(shí)例
在CentOS7中運(yùn)行docker容器,掛載的本地目錄在容器中沒有執(zhí)行權(quán)限第队,原因是CentOS7中的安全模塊selinux禁用了相關(guān)權(quán)限哮塞。
關(guān)閉selinux
# su -c "setenforce 0"
啟動(dòng)容器
啟動(dòng)rethinkdb數(shù)據(jù)庫(kù)
# sudo docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090
啟動(dòng)adb service
# sudo docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest
啟動(dòng)stf(最后的ip地址參數(shù)為本機(jī)的局域網(wǎng)ip地址)
# sudo docker run -d --name stf --net host openstf/stf stf local --public-ip 192.168.1.100(本機(jī)IP)
查看啟動(dòng)的docker容器
# sudo docker ps -a
五、關(guān)閉防火墻 查看stf服務(wù)
關(guān)閉系統(tǒng)防火墻
# systemctl stop firewalld.service
打開瀏覽器輸入 192.168.1.100:7100(本機(jī)IP+host)訪問stf服務(wù)
六凳谦、ADB connect
安裝adbkit
$ sudo npm i-g adbkit
啟動(dòng)usb轉(zhuǎn)tcp服務(wù)
$ adbkit usb-device-to-tcp-p$port$serial
在另一臺(tái)裝有adb的機(jī)器上進(jìn)行設(shè)備的連接(假設(shè)啟動(dòng)adbkit服務(wù)的機(jī)器ip是10.0.0.1 端口是15555)
$ adb connect10.0.0.1:15555
七忆畅、遠(yuǎn)程接入設(shè)備
PS:目前接入win10連接的手機(jī)設(shè)備還未調(diào)通,接入Linux連接的手機(jī)設(shè)備還未嘗試尸执,后面有空再研究
進(jìn)入docker容器內(nèi)
# docker exec -it 2ddadc259cb2 /bin/sh
啟動(dòng) adb server 并對(duì)外暴露 5037 端口執(zhí)行(目標(biāo)電腦執(zhí)行):
# adb -a -P 5037 fork-server server
但是如果adb版本比較高的話家凯,就會(huì)提示reply fd for adb server to client communication not specified.用如下命令替換:
# adb nodaemon server -a
執(zhí)行遠(yuǎn)程連接命令
#?stf provider --name test --min-port 7400 --max-port 7700 --connect-sub tcp://10.200.130.101:7114 --connect-push tcp://10.200.130.101:7116 --group-timeout 20000 --public-ip http://10.200.130.101 --storage-url http://10.200.130.101:7100/ --adb-host 10.200.130.55 --adb-port 5037 --vnc-initial-size 600x800 --allow-remote --screen-ws-url-pattern "ws://10.200.130.101:<%= publicPort %>/" (adb-host :目標(biāo)電腦的IP)