在Centos和Docker上安裝STF 遇到的若干問題總結
1. 概述
剛開始接觸 STF 是看了testhome上思寒講的關於Appium的一些教程,知道了遠端管理裝置這回事,自己也在使用Appium框架做App自動化測試,已經通過整合到了jenkins伺服器上,由於伺服器不在不在自己工位上,每次檢視手機狀態或者想看下執行情況,就要跑到伺服器所在的位置檢視,很是麻煩,於是自己想著也搭建一臺STF伺服器,遠端管理裝置。網上這方面的教程很多,也有關於各種坑的解決辦法,總體安裝下來沒有想象的那麼複雜,但也卡在了不少小問題上,特別是防火牆和許可權的問題。建議剛接觸STF 的同學先從安裝,能夠正常使用起來開始,然後慢慢擴充,比如二次改造,製作Docker映象。
2. 直接在Centos中安裝STF環境
2.1 安裝篇
網上很多此類的安裝文件,可參考以下幾篇,很是詳細
centos7下stf安裝介紹(一)—-環境搭建
Centos 搭建STF
SDK環境配置1
SDK環境配置2
2.2 遇到的問題
安裝完成後,遠端不能訪問
關閉 Centos 防火牆可遠端訪問STF,登入可顯示連線的裝置。但點進去裝置卻不能顯示介面,如下圖:
Centos 防火牆未關閉引起的,不止是7100,還有其他許多埠和外界訪問。建議關閉centos防火牆。
3. 使用Docker映象安裝
3.1 安裝步驟
- 在centos上安裝Docker,很簡單,直接 yum install docker 即可
- 開啟docker服務
在centos中開啟服務可以使用systemctl start serviceName.service,比如開啟docker,systemctl start docker.service - 拉取docker映象檔案
使用docker安裝 STF 很簡單,只需拉取以下5個映象即可:
docker pull openstf/stf:latest
docker pull sorccu/adb:latest
docker pull rethinkdb:latest
docker pull openstf/ambassador:latest
docker pull nginx:latest - 啟動容器
先啟動一個資料庫
docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090
再啟動adb service
docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest
再啟動stf
docker run -d --name stf --net host openstf/stf stf local --public-ip 宿主機IP地址
一定要注意啟動順序,STF 依賴 rethinkdb,所以要先啟動 rethinkdb,啟動完成後使用: docker ps -a 檢視是否啟動成功
3.2 遇到的問題
如果未成功啟動,可能是許可權問題,加 –privileged=true 即可。
啟動 rethinkdb
docker run -d --name rethinkdb --privileged=true -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 2048 --http-port 8090
啟動STF
docker run -d provider --name stf --privileged=true --net host openstf/stf stf local --public-ip 192.168.116.128
4. 連線未安裝STF 的電腦上的裝置
首先保證其他電腦可以和安裝STF 的系統通訊,在未安裝STF 的電腦上暴露adb埠,建議採用預設埠:5037,
adb -a -P 5037 fork-server server
如果出現以下錯誤:
在工作管理員中關掉adb.exe,重新執行上述命令。
如果出現下面報錯,建議換成低版本adb
reply fd for adb server to client communication not specified.
或者使用命令:adb nodaemon server -a
在docker中刪除原來的stf映象,重新執行(15.2.23.38 是宿主機IP,5037 是宿主機暴露的adb埠):
docker run -d --name stf --privileged=true --net host openstf/stf stf local --public-ip 15.2.23.203 --adb-host 15.2.23.38 --adb-port 5037 --allow-remote
更詳細教程可參考:stf使用經驗--在windows平臺連線Mac上stf的過程
5. 備註:過程中可能用到的一些命令以及可能遇到的問題
1 docker start 容器名 啟動某個容器
2 docker stop 容器名 停止某個容器
3 docker rm 容器名 刪除某個容器
4 sudo ufw status 檢視ubuntu的防火牆狀態
5 過程中可能會無法ping虛擬機器,改成橋接。同時關閉掉機器的防火牆(這個看自己,或者自己加規則,准許哪些IP訪問)。
還不可以的話,配置一個跟主機相同IP段的IP地址
一般都能解決。。。
相關文章
- CentOS7安裝Docker遇到的問題筆記CentOSDocker筆記
- 在CentOS上安裝dockerCentOSDocker
- Windows安裝Filebeat遇到問題總結Windows
- 在CentOS 8.1上安裝 DockerCentOSDocker
- 在騰訊雲上安裝mysql遇到的問題MySql
- Centos7安裝greenplum遇到的問題CentOS
- 在Centos7上安裝DockerCentOSDocker
- playwright 在 Centos 的安裝和問題處理CentOS
- CentOS7使用Docker安裝STF安卓裝置管理平臺CentOSDocker安卓
- 在 Debian 64 位上安裝 wkhtmltopdf 時遇到的問題HTML
- RedHat7.4安裝在個人電腦(筆記本)中安裝遇到的問題總結Redhat筆記
- Elasticsearch 在 docker 和 CentOS 下的安裝教程ElasticsearchDockerCentOS
- CentOS7上安裝和使用DockerCentOSDocker
- Docker架構及在Centos7上安裝dockerDocker架構CentOS
- centos 線上安裝 dockerCentOSDocker
- flutter安裝問題總結Flutter
- Laravel 安裝遇到的問題Laravel
- 安裝kylin遇到的問題
- Centos7上安裝dockerCentOSDocker
- 在CentOS 7.5上安裝和配置ProFTPDCentOSFTP
- 在Red Hat和Centos上安裝MongoDBCentOSMongoDB
- docker安裝和常見問題Docker
- 在rhel和CentOS上安裝SQL Server的方法CentOSSQLServer
- 在CentOS上安裝GitCentOSGit
- 在centos上安裝molochCentOS
- PaddleOCR 安裝使用遇到的問題
- 安裝部署hzero遇到的問題
- 在Centos8上安裝和使用curlCentOS
- Centos7.9安裝Docker和Docker composeCentOSDocker
- Linux CentOS 安裝 docker 和 docker-composeLinuxCentOSDocker
- 在docker上安裝AWVSDocker
- Centos 7 上安裝 jdk 及問題小記CentOSJDK
- lumen安裝orangehill/iseed遇到的問題
- 安裝 Laravel Mix 中遇到的問題Laravel
- CentOS 安裝 dockerCentOSDocker
- CentOS Docker 安裝CentOSDocker
- CentOS上安裝Docker Compose-記錄CentOSDocker
- laravel 8 分別安裝Vue和tailwindcss遇到的問題LaravelVueAICSS