一、什么是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

Docker+STF在ubuntu下测试环境搭建(详细搭建步骤及踩坑记录)的更多相关文章

  1. Flutter开发环境(Window)配置及踩坑记录

    Flutter 是 Google 用以帮助开发者在 iOS 和 Android 两个平台开发高质量原生 UI 的移动 SDK.Flutter 兼容现有的代码,免费且开源,在全球开发者中广泛被使用. F ...

  2. Ubuntu下hadoop环境的搭建(伪分布模式)

    Ubuntu下hadoop环境的搭建(伪分布模式) 一.必要资源的下载 1.Java jdk(jdk-8u25-linux-x64.tar.gz)的下载 具体链接为: http://www.oracl ...

  3. linux环境下测试环境搭建

    一.linux环境下测试环境搭建过程简述: 1.前端后台代码未分离情况下: 主要步骤为:安装jdk,安装mysql,安装tomcat,将项目代码部署到tomcat/webapps/下. 2.前端后台代 ...

  4. NodeJS项目迁移兼Ubuntu下NodeJS环境部署

    前言 之前做的几个项目都托管在阿里云服务器,但是最近要到期了.想着到底要不要续期,毕竟100/月.后面看着阿里云有个活动,800/三年.果断买下.环境部署折腾了一天,其中也遇到几个坑. 目录 一.安装 ...

  5. ubuntu 下安装docker 踩坑记录

    ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step ...

  6. Ubuntu下设置环境变量

    Ubuntu下设置环境变量有三种方法,一种用于当前终端,一种用于当前用户,一种用于所有用户:   一:用于当前终端: 在当前终端中输入:export PATH=$PATH:<你的要加入的路径&g ...

  7. ubuntu 下添加环境变量

    ubuntu 下添加环境变量 方法1: 第一种临时设置,用 export 指令,如在$PATH中增加JAVA文件夹: $export PATH=$PATH:/usr/local/lib/jdk1.6. ...

  8. 【Cocos2d-X开发学习笔记】第01期:PC开发环境的详细搭建

    本文使用的是cocos2d-x-2.1.4版本 ,截至目前为止是最新稳定版 所谓的开发环境就是制作游戏的地方,打个比方读者就会十分清楚了.比如提到做饭,人们都会想到厨房.这是 因为厨房有炉灶.烟机.水 ...

  9. 踩坑记录:ubuntu下,http代理无法修改的问题

    事情经过: 今天在ubuntu下使用http代理的时候,碰到一个奇怪的现象.就是在当前shell窗口下,输入“env  | grep proxy”,显示的http_proxy一直都存在,即使我修改了本 ...

随机推荐

  1. 前端学习 -- Html&Css -- 表格

    表格在日常生活中使用的非常的多,比如excel就是专门用来创建表格的工具,表格就是用来表示一些格式化的数据的,比如:课程表.银行对账单.在网页中也可以来创建出不同的表格. 在HTML中,使用table ...

  2. 约会 音频mm教你追女孩

    微信吧地址发给他人. 美团提前选好环境然后提前打电话订购一个位置. 微博作用是为:更多的谈资.热搜 ,最近上榜的话题说. 打车软件: 地图: 2.外表: 下澡,指甲,胡子,发型,适合服装.发型和服装搭 ...

  3. gdb调试1--包括反汇编及文件编码设置

    一.编译 gcc的完整编译过程大致为:预处理->编译->汇编->链接 前三个步骤分别对应了-E.-S.-c三个选项. 编译阶段 命令 截断后的产物     C源程序 预处理 gcc ...

  4. 包含jdk和nginx的基础镜像

    目的 制作一个基础镜像,包含jdk和nginx,这样要将java项目或一些前端页面做成容器,可以稍作修改引用该镜像. Dockerfile FROM alpine:3.8 ENV \ LANG=C.U ...

  5. 函数和常用模块【day06】:random模块(三)

    本节内容 1.简述 2.random模块 3.string模块 4.生成随机数 一.简述 我们经常会使用一些随机数,或者需要写一些随机数的代码,今天我们就来整理随机数模块:random模块 二.ran ...

  6. 关于C#的一些小知识

    问题一 :是否可以从一个static方法内部发出对非static方法的调用? 不行,可以这样理解static修饰的方法可以直接用类名调用非static修饰的方法必须用类new出对象才能调用当我们用类名 ...

  7. JVM总结(二):垃圾回收器

    这一节我们来总结一下JVM垃圾收集器方面的东西. 垃圾回收器 判断对象引用是否失效 对象生存判断算法 引用判断过程 垃圾收集算法简介 垃圾收集器 新生代垃圾收集器 老年代垃圾收集器 新生代和老年代垃圾 ...

  8. C#多线程和异步(一)——基本概念和使用方法

    一.多线程相关的基本概念 进程(Process):是系统中的一个基本概念. 一个正在运行的应用程序在操作系统中被视为一个进程,包含着一个运行程序所需要的资源,进程可以包括一个或多个线程 .进程之间是相 ...

  9. UVA - 12487 Midnight Cowboy(LCA+思维)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  10. 拿webshell权限方法(一)

    概念 Webshell就是以asp,php,jsp或cgi等网页文件形式存在的一种命令执行环境,也可以将其称为一种网页后门. Access数据库拿webshell 首先看是否能找到网站漏洞进行网站的后 ...