zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    BestCoder6 1002 Goffi and Squary Partition(hdu 4982) 解题报告
    codeforces 31C Schedule 解题报告
    codeforces 462C Appleman and Toastman 解题报告
    codeforces 460C. Present 解题报告
    BestCoder3 1002 BestCoder Sequence(hdu 4908) 解题报告
    BestCoder3 1001 Task schedule(hdu 4907) 解题报告
    poj 1195 Mobile phones 解题报告
    二维树状数组 探索进行中
    codeforces 460B Little Dima and Equation 解题报告
    通过Sql语句控制SQLite数据库增删改查
  • 原文地址:https://www.cnblogs.com/zhoumiao/p/10681884.html
Copyright © 2011-2022 走看看