【转】Smartphone–Android真机管理平台[通俗易懂]

【转】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脚本和远程调试等等。。 
这个就不一一讲了,后面有时间再设一个专题详细讲解。

转载于:https://www.cnblogs.com/yanghj010/p/7833126.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107969.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 3D移动 translate3d

    3D移动 translate3d3D转换我们主要学习工作中最常用的3D位移和3D旋转主要知识点3D移动在2D移动的基础上多加了一个可以移动的方向,就是z轴方向。translform:translateX(100px):仅仅是在x轴上移动 translform:translateY(100px):仅仅是在Y轴上移动 translform:translateZ(100px):仅仅是在Z轴上移动(注意:translateZ一般用px作单位) transform:translate3d(x,y,z):其中x、y、z分别指要移动的

    2025年8月9日
    2
  • Android上图片文字识别

    Android上图片文字识别最近做了一款Android应用需要输入大量的数据,为了提高体验我想了很多种输入数据的方式,最终采用了两种:二维码扫描和图片识别。前者顾名思义有个短板,就是需要生成二维码,下面就介绍下图片文字识别实现。本应用是基于是OCR引擎,故需要第三方的jar包tess-two.tesseract3.01-leptonica1.68-LibJPEG6b.jar下载链接:点击打开链接另外tessdat…

    2022年6月12日
    30
  • Ewebeditor最新漏洞及漏洞大全

    Ewebeditor最新漏洞及漏洞大全

    2021年12月7日
    51
  • UFT使用技巧

    UFT使用技巧1 UFT基本功能的使用         UFT的基本功能包括两大部分:一部分是提供给初级用户使用的关键字视图;另一部分是提供给熟悉VBScript脚本编写的自动化测试工程师使用的专家视图。但是,并没有严格的区分,在实际的自动化测试项目中完全可以两者结合着使用。 1.1 UFT自动化测试的基本过程          使用UFT进行自动化测试的基本过程与使用其他自动化测试工具进行自动化功能测试的过…

    2022年5月26日
    192
  • 数论 欧拉函数_数论欧拉函数

    数论 欧拉函数_数论欧拉函数欧拉函数:就是对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n)。欧拉函数的通式:φ(n)=n*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)……(1-1/pn)其中p1,p2……pn为n的所有质因数,n是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。所以,根据通式我们可以打出以下代码:lleular(lln){…

    2022年8月22日
    5
  • Java面对对象编程(超详细)

    Java面对对象编程(超详细)1、成员变量和成员方法成员变量(又叫属性,字段)成员方法2、类和对象的内存分配机制Java内存的结构分析栈:一般存放基本数据类型(局部变量)堆:存放对象(Catcat,数组等)

    2022年7月2日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号