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

  • 相关阅读:
    MongoDB +JSON+JQuery.Pagination+Linq 实现无刷新分页
    DBHelper
    C# .Net动态调用webService
    .net 将图片文件转换成流输出到浏览器
    将mongodb作为服务
    .net 最简单文件上传支持跨服务器
    Windows Phone 7
    javascript中对Date类型的常用操作
    DataTable 转换JSON
    C# 实现 MemCache 监控管理工具
  • 原文地址:https://www.cnblogs.com/zhoumiao/p/10681884.html
Copyright © 2011-2022 走看看