背景

最近在工作中发现几个问题:

  • 作为测试人员,在做产品兼容性测试时,发现手上的测试设备总是不够用,但是可能其他同事的设备在闲置着;
  • 作为Android和H5开发人员,如果测试同事发现一个兼容性的bug,要想还原场景,还要把测试设备给开发(如果不在一个楼层,还要来回跑)
  • 作为产品和运营人员,为了体验产品,也要去申请测试设备,但是大部分时间,设备是闲置的。

在这样一个背景下,我在想有没有一个平台,可以把整个公司的线下Android测试设备,通过Web端进行线上远程管理控制,类似于模拟器(当然它是真机),在你的本地电脑进行操作,这样不仅能充分利用测试设备,而且还节省公司购买测试设备的开支。 
基于这个理念,我大量查阅google,baidu,发现真的老外已经开发好了这样一个平台,而且还开源啦。 
官方主页:https://openstf.github.io/ 
github地址:https://github.com/openstf/stf

该平台可以把整个公司的线下Android设备集合在一起,通过Web端进行线上远程管理控制,在你的本地电脑进行操作,不仅提高测试设备的利用率,还节省公司购买测试设备的开支。

展示下官网的效果图: 


平台优点:

  • 大大提高线下设备的利用率,节省公司购买测试设备的开支
  • 线下真机能做的,它都可以做,包括在线拍照,截图
  • 可以进行远程调试

适用人群:

测试工程师 
Android工程师 (真机调试) 
前端H5开发工程师 (真机调试) 
产品和运营 (产品体验)


环境搭建

由于本人的办公电脑是Mac,现在就基于Mac OS X系统搭建环境(Linux环境和Windows环境应该类似)

1. JDK和Android SDK环境安装

JDK下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 
SDK下载:https://developer.android.com/studio/index.html

配置环境变量并保存

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
export ANDROID_HOME=/Users/CharlieChen/Library/Android/sdk
export PATH=$PATH:$JAVA_HOME/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools
  • 1
  • 2
  • 3

2. nodejs安装

因为该平台是通过nodejs语言写的,所以必须安装nodejs的运行环境。 
https://nodejs.org/download/ 下载nodejs安装包,解压并控制台进入目录安装

2. 安装Bower

控制台执行npm命令进行Bower安装并等待完成 
npm install bower -g 
验证安装是否成功:bower -v 如果可以显示版本号 证明成功

3. 安装RethinkDB

rethinkDB为平台的数据库,存储的用户和设备的信息,可能大家只对Mysql 或mangoDB熟悉,但这没关系,先安装再说,至于原理后面有时间再去了解。 
先下载rethinkdb安装包:http://download.rethinkdb.com/osx/ 
双击rethinkdb-2.0.4.dmg 安装.pkg包即可 
验证安装是否成功:rethinkdb -version 如果可以显示版本号 证明成功

4. 安装GraphicsMagick

brew install graphicsmagick

如果发现brew命令不可用,说明你的电脑没有装brew的环境,装一下就可以啦

5. 安装libsodium(zeromq的依赖)

brew install libsodium

6. 安装zeromq

brew install zmq

7. 安装protobuf

brew install protobuf

8. 安装pkg-config

brew install pkgconfig

修改环境变量: 
添加如下信息: 
export PATH=$PATH:/usr/local/Cellar/protobuf/2.6.1/bin/ (请以本地下载路径为准) 
export PKG_CONFIG_PATH=/usr/local/Cellar/protobuf/2.6.1/lib/pkgconfig/ (请以本地下载路径为准)

9. 安装stf

sudo npm install -g stf


Smartphone服务端运行

1. 启动rethinkDB

安装完成后,打开单独的控制台,运行命令等待服务启动完成: 
rethinkdb 

2. 启动stf服务端

打开一个单独的控制台,运行命令等待服务启动完成: 
stf local 
如果要远程登录平台的话,需要增加本地服务器的ip地址 
stf local –public-ip 本机IP 


Smartphone客户端运行

在浏览器中输入地址:http://本机ip:7100/ 访问客户端。 
输入用户名和邮箱登录即可开始使用。 
登录界面: 

设备列表界面: 

设备使用界面: 


Smartphone二次改造

你可以根据公司的需求,进行Smartphone平台的二次开发。可能大家发现了我的平台登录界面换成了我公司的logo,设备使用界面,增加了shell脚本和远程调试等等。。 
这个就不一一讲了,后面有时间再设一个专题详细讲解。

【转】Smartphone--Android真机管理平台的更多相关文章

  1. Unity Profiler连接Android真机调试

    Profiler在Editor模式就可以观看性能消耗,但是毕竟电脑配置高,跟手机真机环境还是有区别.实际开发中的优化还是推荐用真机测试. 因为IOS一般比Android手机的配置高,在Android平 ...

  2. 在Mac系统上配置Android真机调试环境

    在Mac系统上配置Android真机调试环境 mac上配置安卓环境还说挺方便的,真机调试也比win上要好一些.win上被各种软件强行安装了xxx助手. 在mac上就了一个干净的感觉. 下载Androi ...

  3. android真机自动化测试

    appium执行用例时报错问题: 问题解析: 一般该种情况都是因为来连接了多个设备,验证办法:cmd->执行adb devices  看结果是否是多个devices ,如果是这个问题,停掉多余设 ...

  4. Android真机测试,连接到本地服务器的方法

    1. 前言 作为一名Android开发者,不管怎么说,都会经历使用Android真机来测试连接本地服务器这样的事情.这里所说的“本地服务器”大多数时候指的是:搭载有某种服务器软件的PC,例如搭载有To ...

  5. Android 真机投影到PC端,真机投影工具;Vysor

    Vysor可以把Android真机投影到PC端,也就是电脑上:手机端和PC端课同步操作: Vysor是Chrome浏览器的插件,我们想要添加这个插件需要FQ: 从这里可以直接下载:Vysor

  6. Unity Frame Debugger连接Android真机调试

    当用Profiler分析到不是代码导致的性能问题,当前场景最大的性能瓶颈是渲染时,或者自己写的Shader要调试时,都可以用Frame Debugger进行调试. 按下列步骤设置打包,既可以用Prof ...

  7. 使用ADB无线连接Android真机进行调试

    使用ADB无线连接Android真机进行调试   其实这已经是一个很古老的知识了,记录一下备忘. 准备工作 手机和电脑需要在同一个局域网内 电脑上已经安装好ADB工具,可以是Mac或者Windows ...

  8. 通过adb shell操作android真机的SQLite数据库

    要通过命令行直接操作android真机上的SQLite数据库,可以直接通过adb shell来完成,不过,前提是必须获得root权限. 另外,android系统其实就是linux的shell,这个应该 ...

  9. Android真机调试手动添加程序包的LogCat

    android真机调试有时候看LogCat 时,有时候那个跑的本程序的LogCat 没有出现而是 出现的是" All messages (no filters) " .此时 的Lo ...

随机推荐

  1. react-navigation使用技巧

      因为react-navigation之前存在的问题相对较多,本文更新会稍慢,而且,我现在项目使用的是基于它封装的react-native-router-fluxV4版本,现在也推荐给大家使用.在下 ...

  2. 关于的 recorder robotium 的Eclipse插件(URL:http://recorder.robotium.com/updates/或者说不可用)

    最近在学robotium.看到别人说robotium的Eclipse的插件非常好用. 打算安装时.发现死活都无法连接http://recorder.robotium.com/updates/ 过程是  ...

  3. [na]计算机网络性能指标(延迟/吞吐量/RTT等)

    参考 计算机网络性能指标 计算机网络性能指标 带宽.速率.延迟.吞吐量.丢包率(无线验收标准一般-75dbm,del<100ms,丢包率3%) 带宽x延迟 决定着路上的数据的多少. 速率: 连接 ...

  4. 【Unity】6.3 通过 C# 脚本创建和访问游戏对象

    分类:Unity.C#.VS2015 创建日期:2016-04-16 一.简介 在游戏开发过程中,脚本不但需要访问脚本所在的游戏对象的组件,还经常需要访问和控制真他游戏对象.另外,根据项目需求,还可能 ...

  5. js包管理工具-- yarn

    yarn对比npm的优点 根据官方文档yarn具有6大优点 离线模式 yarn会有一个缓存目录,会缓存以前安装过的软件包,再次安装时就不必从网络下载了,大大加速安装速度. 这一点很重要,npm 饱受诟 ...

  6. Android面试、开发之高手 编码规范与细节

    凝视 [规则1]必须用 javadoc 来为类生成文档.不仅由于它是标准.这也是被各种java 编译器都认可的方法. [规则2]在文件的開始部分应该有文件的说明信息,应包括例如以下信息: (1)版权信 ...

  7. 菜鸟译文(一)——Java中的继承和组合

    阅读英文的能力对于程序员来说,是很重要的.这几年也一直在学习英文,今天心血来潮,就在网上找了一篇简短的博文翻译一下.水平一般,能力有限,还请各位看官多多指点. 译文: 本文将会举例说明Java中继承和 ...

  8. 转:Math: Math.atan() 与 Math.atan2() 计算两点间连线的夹角

    我们可以使用正切操作将角度转变为斜率,那么怎样利用斜率来转换为角度呢?可以利用斜率的反正切函数将他转换为相应的角度.as中有两个函数可以计算反正切,我们来看一下. 1.Math.atan() Math ...

  9. [Windows Azure] Windows Azure Execution Models

    Windows Azure Execution Models Windows Azure provides different execution models for running applica ...

  10. (原创)结构体自动化转为char数组的实现

    结构体自动化转换为char数组这个需求,来自于一个最近开发的一个项目,在项目开发过程中遇到一个小问题,需要将各种结构体拷贝到char数组中,这对于一个简单的结构体来说是很简单的事情,比如下面这个只有整 ...