什么是OpenSTF?

OpenSTF(Smartphone Test Farm)是一个web端移动设备管理平台,可以从浏览器端远程调试、远程管理设备。其实有点类似于我们现在很火热的云测平台,如:testin、百度MTC等等。并且这个项目在Github上开源:https://github.com/openstf/stf, 遵循Apache License 2.0开源协议。很多公司内部团队现在都开始通过STF建设自己的平台。

先看看项目的运行效果截图(摘抄自官网)

支持的功能

  • Android 2.3 ~ Android 9.0 (IOS目前不支持)
  • 手机不需要root
  • 实时屏幕演示(刷新速率可达30-40fps)
  • 远程控制(包括点击、输入数据、复制粘贴)
  • 安装、卸载应用
  • 执行shell命令
  • 支持chrome远程调试工具
  • 文件资源管理器访问设备文件系统
  • ......

安装部署(虚拟机+Docker)

官方推荐用Linux系统或者Mac系统来部署STF环境,因为Windows下adb连接不是很稳定。由于我个人PC安装的是Windows,所以只好通过虚拟机来搭建这样一套环境。现在STF支持通过Docker来安装,要比传统安装方式省事很多,所以也推荐大家用Docker安装方式。

虚拟机安装Ubuntu系统

选用Vmware Workstation或者VitualBox都可以,个人选用的是Vmware,安装的Ubuntu版本是16.04 LTS,这一步大家可以从网上搜索到很多教程,就不再赘述。

Vmware设置网络桥接模式

安装Docker

$ sudo apt-get update   # 更新软件包
$ sudo apt-get install docker-ce docker-ce-cli containerd.io # 安装Docker

拉取STF相关镜像

$ sudo docker pull openstf/stf:latest # STF镜像
$ sudo docker pull sorccu/adb:latest # adb 镜像
$ sudo docker pull rethinkdb:latest # rethinkdb 镜像
$ sudo docker pull openstf/ambassador:latest # ambassador 镜像
$ sudo docker pull nginx:latest # nginx 镜像

查看所有的镜像

sudo docker images

启动镜像

$ docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb
--bind all --cache-size 8192 --http-port 8090 # 启动rethinkdb数据库
$ docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb
--net host sorccu/adb:latest # 启动adb
$ docker run -d --name stf --net host openstf/stf stf local
--public-ip 192.168.140.129 # 启动stf 启动的时配置的IP地址通过ifconfig命令查询到的结果

查看运行中的容器

$ sudo docker ps -a

最后在虚拟机里的浏览器或者本地PC端浏览器输入:http://192.168.140.129:7100 即可访问

默认用户名密码用任意字符串即可登录上

OpenSTF 平台搭建的更多相关文章

  1. 【iOS】Jenkins Gitlab持续集成打包平台搭建

    Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...

  2. hadoop伪分布式平台搭建(centos 6.3)

    最近要写一个数据量较大的程序,所以想搭建一个hbase平台试试.搭建hbase伪分布式平台,需要先搭建hadoop平台.本文主要介绍伪分布式平台搭建过程. 目录: 一.前言 二.环境搭建 三.命令测试 ...

  3. LNMP平台搭建---MySQL安装篇

    在前两篇中,安装了一个基本的Web服务器,但是只能提供静态网页查看,要做成动态网站,就必须要数据库或其他编程语言支持了,这里先介绍MySQL数据库的安装. MySQL是一个开源的数据库,在互联网行业应 ...

  4. 基于Moodle的IT课程辅助教育平台搭建

    基于Moodle的IT课程辅助教育平台搭建 Moodle是一个开源课程管理系统(CMS),也被称为学习管理系统(LMS)或虚拟学习环境(VLE).它已成为深受世界各地教育工作者喜爱的一种为学生建立网上 ...

  5. [Openwrt 项目开发笔记]:Openwrt平台搭建(一)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...

  6. LNMP平台搭建---Nginx安装篇

    在上一篇博文<LNMP平台搭建---Linux系统安装篇>中,我们安装了CentOS版本的Linux操作系统,现在,我们来安装一个Web服务器,大标题写着LNMP,其中的N就是Nginx, ...

  7. LNMP平台搭建---Linux系统安装篇

    在互联网网站开发领域,有一个名词,大家一定不陌生,那就是LAMP,经典的Web服务器环境,由Linux+Apache+MySQL+PHP组成,,后来,一个名叫Nginx的Web服务器开源出来了,因其更 ...

  8. Storm on Yarn :原理分析+平台搭建

    Storm on YARN: Storm on YARN被视为大规模Web应用与传统企业应用之间的桥梁.它将Storm事件处理平台与YARN(Yet Another Resource Negotiat ...

  9. LAMP平台搭建菜鸟入门级实验

    LAMP平台搭建(菜鸟入门级) mysql 安装: (1)二进制安装  二进制安装 ,执行解压配置即可.无须执行三布安装. (2)源码编译安装 安装准备工作: (1)查看系统配置:#uname -a/ ...

随机推荐

  1. .net 调用 Python脚本中的代码

    使用工具:IronPython 工具介绍:是一种在 .NET 及 Mono上的 Python 实现,是一个开源的项目,基于微软的 DLR 引擎.(个人理解就是在 .net上面运行Python代码) 使 ...

  2. vue-Element-axios搭建调用api进行数据展示

    1全局安装vue-cli 输入命令:npm install vue-cli -g 2创建项目框架 输入命令:vue init webpack vueapi 3依次按照提示输入,项目名.项目描述.项目作 ...

  3. PIESDKDoNet二次开发配置注意事项

    在安装完PIESDK进行二次开发的过程中会遇到下面几种常见的开发配置问题,就写一个文档总结一下. 1.    新建项目无PIESDK模板问题 关于新建项目时候,找不到下图中的PIEMainApplic ...

  4. Dubbo(一):dubbo-spring-boot-starter

    dubbo-spring-boot-starter English Dubbo Spring Boot Starter.也可以关注dubbo官方的dubbo-spring-boot-project 支 ...

  5. Linux操作:使用grep排除搜索的目录

    使用grep时,当一个目录下有一个包含很多文件的目录,但也不想搜索它,怎么办? 使用 --exclude-dir 选项. 单个目录示例: grep -rni 'http' --exclude-dir= ...

  6. 彻底抛弃 jQuery ,不然还留着过年?

    我以前很喜欢 jQuery,而且说实话,我是先学jQuery,再学 JavaScript 的.所以我写这篇文章有点像是在背叛 jQuery. 我知道,关于为什么不应该用 jQuery 的文章已经汗牛充 ...

  7. RC4弱密码套件检测

    一.漏洞分析 事件起因 2015年3月26日,国外数据安全公司Imperva的研究员Itsik Mantin在BLACK HAT ASIA 2015发表论文<Attacking SSL when ...

  8. Es6学习指南-1-函数变量

    本篇章我们简述的是 es6初级知识点,认识es6,以及es6变量和es5的变量和函数. ECMAScript  6简介 ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代 ...

  9. 【JavaScript】案例一:使用JS完成注册页面表单校验——事件(onsubmit&onfocus&onblur)

    (一)初版:事件(onsubmit) 步骤分析: 第一步:确定事件(onsubmit)并为其绑定一个函数 第二步:书写这个函数(获取用户输入的数据<获取数据时需要在指定位置定义一个 id> ...

  10. websocket 的基本用法

    项目当中使用到了websocket,以前的项目当中使用到了另外一个类似的socket.io,两者的区别和联系在另外一篇文章当中有提及,这里就简单的写下websocket的用法 下面的例子是阮一峰的We ...