Docker+STF在ubuntu下測試環境搭建(詳細搭建步驟及踩坑記錄)


一、什么是OpenSTF?

STF又稱OpenSTF,它是一個手機設備管理平台,可以對手機進行遠程管理、調試、遠程手機桌面監控等操作。這個系統類似於目前很流行的雲測服務比如Testin,雖然網頁上提供的設備很像模擬器中的設備,但是實際上都是真機。

OpenSTF是使用nodejs和angularjs開發,遵循apache licene2.0開源協議,用戶可以對源碼進行修改發布。(源碼地址:https://github.com/openstf)

二、STF的功能

       1、 在Web上支持管理上百個android設備。
       2、 支持Android多個版本(2.3.3 ~ 9.0),而且不需要root。
       3、 實時屏幕操作和顯示。
       4、 支持adb connnect遠程連接調試。
       5、 可以從PC機鍵盤輸入到遠程的android設備中。
       6、 安裝卸載APK。
       7、 android設備信息的展示(如:網絡狀態、MIME、android版本、手機型號等等)。
       8、 遠程開關機、遠程開關WIFI、截屏、LogCat等等。

三、STF環境搭建

1.搭建准備

VMware workstation、Ubuntu鏡像文件(http://mirrors.melbourne.co.uk/ubuntu-releases/)目前作者選擇的是18.10的ubuntu-18.10-desktop-amd64.iso

2.環境搭建

①詳細搭建ubuntu虛擬環境作者不在這里詳細介紹,當然還有Linux搭建JDK、Android SDK環境,此處給出國內下載地址,讀者可以自行下載安裝配置(http://tools.android-studio.org/index.php/sdk/)。

②安裝docker

默認ubuntu虛擬環境已經搭建好:

命令行如下:

更新軟件:sudo apt-get update

安裝:sudo apt-get install docker(這里可能會報各種依賴的錯誤,按照提示apt install -f 依賴包、或者按照提示解決--fix-missing即可)

安裝:sudo apt-get install docker.io

查看docker 鏡像 :sudo docker images(這邊由於還沒安裝任何鏡像,列表暫時為空)

③從docker上拉取STF相關的鏡像

備注:拉取鏡像時,由於國內某些原因可能拉取的比較慢,作者推薦使用aliyun鏡像加速器(又快還不要錢,好產品廣告一波),可登陸阿里雲官網(https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors)根據詳細說明配置加速器。

 

STF鏡像:sudo docker pull openstf/stf:latest

android adb 鏡像:sudo docker pull sorccu/adb:latest 

rethinkdb鏡像:sudo docker pull rethinkdb:latest

openstf鏡像:sudo docker pull openstf/ambassador:latest

nginx 代理鏡像:sudo docker pull nginx:latest 

查看已經拉取的docker鏡像:sudo docker images

④修改虛擬機網絡設置

虛擬機頂部點擊“編輯”——“虛擬網絡編輯器”

選擇VMnet0 選擇橋接模式

虛擬機頂部點擊“虛擬機”——“設置”

選擇橋接模式

 更改ip:sudo  vi  /etc/network/interfaces

設置DNS文件:vi /etc/resolv.conf 輸入192.168.43.XXX,網關要和上圖一樣,由於這是一次性的,也就是重啟之后就會失效,所以我們要去修改下啟動文件

修改啟動腳本: vi /etc/rc.local 輸入 echo  "nameserver 192.168.43.XXX"  >> /etc/resolv.conf,網關要一致

啟動配置文件:/etc/init.d/networking restart

這里可能會報錯:

 root@michael-virtual-machine:/home/michael# /etc/init.d/networking start

[....] Starting networking (via systemctl): networking.serviceJob for networking.service failed because the control process exited with error code.
See "systemctl status networking.service" and "journalctl -xe" for details.
failed!

這里我們使用這個嘗試:

sudo service network-manager restart

檢驗:

ping 物理機IP地址,可以ping通

⑤啟動鏡像(注意有先后順序)

先啟動一個數據庫:

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 啟動的時配置的IP地址為你虛擬機橋接的網址:

docker run -d --name stf --net host openstf/stf stf local --public-ip   192.168.43.55

查看 啟動的docker鏡像 命令:

sudo docker ps -a

⑥大功告成:

虛擬機中輸入:192.168.43.23:7100

用戶名:隨意輸入

郵箱:符合郵箱格式即可

 

四、尾聲

如果重啟完虛擬機發現無法聯網:

一、網絡重新設置

1.在VMWare中的編輯菜單中,選擇“虛擬網絡編輯器”,還原設置,然后選中VMnet0,將其設為橋接

2.接下來設置剛安裝好的Ubuntu虛擬機,將網絡適配器選為自定義VMnet0

3.啟動虛擬機系統Ubuntu,在系統圖形界面中,選擇網絡設置,指定IP4的網絡地址及DNS

二、重啟docker 

1.切換到root用戶: su root

2.設置開機自動啟動docker服務:systemctl enable docker

3.啟動docker:systemctl start docker

4.此時重啟docker后images會全部退出(sudo docker ps -a  鏡像的STATUS應該全部是EXITED),需要重啟所有鏡像(stf、adbd、rethinkdb)

5.啟動stf :sudo docker start stf

6.啟動adbd:sudo docker start adbd

7.啟動rethinkdb:sudo docker start rethinkdb


免責聲明!

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



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