【转】Smartphone--Android真机管理平台
背景
最近在工作中发现几个问题:
- 作为测试人员,在做产品兼容性测试时,发现手上的测试设备总是不够用,但是可能其他同事的设备在闲置着;
- 作为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真机管理平台的更多相关文章
- Unity Profiler连接Android真机调试
Profiler在Editor模式就可以观看性能消耗,但是毕竟电脑配置高,跟手机真机环境还是有区别.实际开发中的优化还是推荐用真机测试. 因为IOS一般比Android手机的配置高,在Android平 ...
- 在Mac系统上配置Android真机调试环境
在Mac系统上配置Android真机调试环境 mac上配置安卓环境还说挺方便的,真机调试也比win上要好一些.win上被各种软件强行安装了xxx助手. 在mac上就了一个干净的感觉. 下载Androi ...
- android真机自动化测试
appium执行用例时报错问题: 问题解析: 一般该种情况都是因为来连接了多个设备,验证办法:cmd->执行adb devices 看结果是否是多个devices ,如果是这个问题,停掉多余设 ...
- Android真机测试,连接到本地服务器的方法
1. 前言 作为一名Android开发者,不管怎么说,都会经历使用Android真机来测试连接本地服务器这样的事情.这里所说的“本地服务器”大多数时候指的是:搭载有某种服务器软件的PC,例如搭载有To ...
- Android 真机投影到PC端,真机投影工具;Vysor
Vysor可以把Android真机投影到PC端,也就是电脑上:手机端和PC端课同步操作: Vysor是Chrome浏览器的插件,我们想要添加这个插件需要FQ: 从这里可以直接下载:Vysor
- Unity Frame Debugger连接Android真机调试
当用Profiler分析到不是代码导致的性能问题,当前场景最大的性能瓶颈是渲染时,或者自己写的Shader要调试时,都可以用Frame Debugger进行调试. 按下列步骤设置打包,既可以用Prof ...
- 使用ADB无线连接Android真机进行调试
使用ADB无线连接Android真机进行调试 其实这已经是一个很古老的知识了,记录一下备忘. 准备工作 手机和电脑需要在同一个局域网内 电脑上已经安装好ADB工具,可以是Mac或者Windows ...
- 通过adb shell操作android真机的SQLite数据库
要通过命令行直接操作android真机上的SQLite数据库,可以直接通过adb shell来完成,不过,前提是必须获得root权限. 另外,android系统其实就是linux的shell,这个应该 ...
- Android真机调试手动添加程序包的LogCat
android真机调试有时候看LogCat 时,有时候那个跑的本程序的LogCat 没有出现而是 出现的是" All messages (no filters) " .此时 的Lo ...
随机推荐
- 有关 Windows 10 中“适用于 Linux 的 Windows 子系统(Beta)”
1.如何启用?(未来应该可从应用商店中直接安装) 在"控制面板"的"启用或关闭 Windows 功能"中进行勾选安装.(安装完成后需要重新启动) 2.然后呢? ...
- golang 解决 TCP 粘包问题
什么是 TCP 粘包问题以及为什么会产生 TCP 粘包,本文不加讨论.本文使用 golang 的 bufio.Scanner 来实现自定义协议解包. 协议数据包定义 本文模拟一个日志服务器,该服务器接 ...
- Angular 4.0从入门到实战
AngularJS 优点 模板功能强大丰富,并且是声明式的,自带了丰富的Angular指令: 是一个比较完善的前端MVC框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能: ...
- morgan日志分割
var FileStreamRotator = require('file-stream-rotator') var express = require('express') var fs = req ...
- win10+VS2015+boost_1.60.0
安装boost库的初衷boost库是一个C++'准'标准库,对于一个C++程序员来说,了解强大的boost库是很有必要的.当然,在学习使用这样一个强大的库之前,首先要学会安装.本文讲述了boost_1 ...
- linux系统卡解决方案
1.查看内存使用率 free -g 运行结果: 2.查看磁盘使用率 df -h 运行结果: 3.查看磁盘IO iostat -x 1 运行结果: 60表示60秒钟刷新一次 4.查看CPU使用情况 to ...
- 【DIOCP开源项目】实际应用案例
案例1 DIOCP是Delphi下进行IOCP服务端通讯开发的一个非常好的开源框架,稳定.高效并且使用起来十分简单. 自己两个多月之前因为需要使用Delphi开发一个TCP服务端,当时也是到处爬文,希 ...
- Unity编辑器下,界面替换NGUI字体以及字号
项目中有需要批量替换字体以及字号的需求,一般也就是多语言处理吧. 提供界面如下: 手机拍图,就这样凑合看吧.但是代码不打折. 紧急避让,我只提供修改UILabel以及UIPopupList 下的字体, ...
- adb install使用说明
[时间:2016-08] [状态:Open] [关键词:android, apk,adb install] 将apk安装到模拟器或者手机上. Pushes an Android application ...
- signal.h中的宏定义SIG_DFL及SIG_IGN
SIG_DFL,SIG_IGN 分别表示无返回值的函数指针,指针值分别是0和1,这两个指针值逻辑上讲是实际程序中不可能出现的函数地址值.SIG_DFL:默认信号处理程序SIG_IGN:忽略信号的处理程 ...