一. STF介绍

Smartphone Test Farm(简称STF)是一个web应用程序,主要用于从指定的浏览器中远程调试智能手机、智能手表等,可远程调试超过160多台设备。STF可以便捷的管理移动测试设备,提高测试机的高效使用、便捷移动测试。

二.STF的功能

  • 支持安卓2.3-10.0系统(10.0系统为目前最新)
  • 通过浏览器远程控制,支持远程鼠标键盘对真机进行操作
  • 远程复制粘贴功能
  • 快照截图
  • 应用包及文件的上传/下载功能
  • 支持远程端浏览器进行真机访问操作
  • 日志输出及错误日志输出打印
  • 脚本运行(可实现后续的自动化测试)
  • 开发人员进行远程debug功能
  • 提供设备机的CPU,内存,电量等性能的监测
  • 固化测试机器的系统版本,系统设置,不被篡改

三.架构介绍

STF的核心功能可以理解为:“同步图像” + “点击”。前者使用minicap完成,后者依赖minitouch。

设备端

  • STF在会在android设备上安装minicap和minitouch。使用minicap来捕获屏幕,使用minitouch来触发多点触控事件,并通过adb使用socket在服务端和设备端进行数据传输。
  • STF还会在android设备上安装STFService.apk,它在设备后台运行,提供了一组socket api可以用来监控和执行不同的action。 同理,它也是通过adb和服务端通信,不过它使用的是protocal buffer数据格式。
  • minirev,直接从Android设备的端口转发本地服务,即便不在一个网段。

服务端

  • STF的服务端由多个不同的独立的,基于nodejs的微服务组成,这些服务之间是通过ZeroMQ通信。服务端可以进一步分成Provider 层和Application层。

Provider

  • Provider层(stf-provider)主要负责和设备之间进行通信。
  • 通过adb来监控设备状态,当有新的设备连接,或者有设备断开则会立刻监控到。
  • 如果是新的connect设备,则provider会folck一个新的nodejs进程(stf-device), 这个进程主要负责与该设备的所有通信。
  • stf由两个部分组成,分别是stf-provider和adb。
  • 需要注意的是,provider层的服务需要跑在物理机上,所有的设备需要连着这台物理机。

Application

  • Application层则是由stf -api、stf -app和stf -auth等微服务组成,这些微服务组成了一个完整的STF。
  • 从部署的角度来看,这些服务可以跑在任意地方,唯一的要求就是,这些服务能够通过网络和provider通信,这也就是意味着他们需要在同一个网段上。

Client 层

  • 使用Angular JS实现
  • 通过websocket与服务进行通信

四.环境搭建

(1)安装docker服务

  • 进入docker官网下载对应docker安装包进行安装
  • 命令行执行docker version检查是否安装成功

(2)利用docker拉取镜像文件

  • 开启docker服务
  • 拉取docker镜像文件
docker pull devicefarmer/stf:latest
docker pull sorccu/adb:latest
docker pull rethinkdb:latest
docker pull openstf/ambassador:latest
docker pull nginx:latest

(3) 启动容器

  • 先启动一个数据库
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
docker run -d --name stf --net host openstf/stf stf local --public-ip 宿主机IP地址

(4) 启动STF程序

  • 首先进入stf镜像目录
docker exec -it stf的containerID /bin/sh
  • 启动stf命令
stf local --public-ip 宿主机IP地址 --allow-remote  

启动之后,局域网浏览器输入 http://宿主机IP地址:7100 可以打开STF登录界面,随意输入帐号邮箱后登录

STF移动测试云平台搭建相关推荐

  1. 物联网iot私有云平台搭建

    物联网iot私有云平台搭建 物联网的平台有多种,把其中的一些列出一个开源平台比照表. IoT 软件平台 设备管理? 集成 安全 数据收集协议 分析 支持可视化? 数据库 Kaa IoT Platfor ...

  2. OpenStack云平台搭建(3) | 部署Glance

    目录 1.登录数据库授权 2.安装glance 3.测试一下 安装部署Glance镜像服务 Image Service  镜像服务: 代号:Glance: 为云平台虚拟机提供镜像服务,例如:上传镜像. ...

  3. Jmeter性能测试云平台搭建

    本篇文章主要讲解Jmeter性能测试云平台搭建,这是我们在进行DevOps云平台中性能测试一部分,后期结合docker容器技术进行集群的动态扩展.

  4. 云安全:Cloudstack云平台搭建详解及经验总结

    前言: 正在学习云安全,不搭建云平台,总感觉学的有些虚,没落到实处.在网上查资料了解到,Cloudstack产品比较成熟,已经有成熟的企业应用.而且相对OpenStack配置没那么复杂,所以就先从简单 ...

  5. 云计算 openstack 云平台搭建详细教程(基于 Vmware 虚拟机搭建)

    OpenStack 和 云计算 1.OpenStack 基本概述 早在1988年,类似云计算概念的"网络就是计算机"概念就被 SUN 微系统公司 的合作创建者约翰 · 盖奇首次提出 ...

  6. ChinaSkills-网络系统管理003(VMware ESXI云平台搭建)

    ChinaSkills-网络系统管理003(VMware ESXI云平台搭建) 2022年全国职业技能大赛网络系统管理赛项相较2021年再次做出改动,Linux部分从之前的Debian又换回了Cent ...

  7. 免费的云端软件测试平台-快意测试云平台介绍

    快意测试云是什么?--提供丰富的软件测试功能和测试管理服务的云测试平台. 适合谁用?--对目前的软件测试现状不满意的企业和个人,软件太贵?使用复杂?资源不足?测试周期太长?管理不便? 怎么用?--无需 ...

  8. 先电Openstack云平台搭建【超级详细】【附带镜像】

    前言 大二上学期学习Openstack,苦于百度与CSDN上没有对应版本的教程,学的十分艰难,在此,将我的Openstack云平台搭建过程写出,留给新手学习 准备工作: VMware Workstat ...

  9. 云计算、PaaS开发、企业云平台搭建

    传统模式(单机纵向扩展):CPU.内存.硬盘 云计算特点: 通过增加节点来扩展 自下而上管理模式(自治.自动化) 适合自动化大数据处理 虚拟化 动态迁移 云计算思想: 解耦:打破串行执行,变成一环节一 ...

最新文章

  1. asp.net oracle参数传递,asp.net – Oracle参数问题中的链接数据库
  2. 网页中获取微信用户是否关注订阅号的思路
  3. Python基础教程(十一):多线程、XML解析
  4. 在Word中插入条形码又一法
  5. 验证DetailsView插入数据不为空
  6. vue学习笔记-01-前端的发展历史(从后端到前端,再到前后端分离,再到全栈)
  7. VC++ WIN32 sdk实现按钮自绘详解.
  8. android开发中eclipse里xml开发的自动提示和使用帮助快捷键提示
  9. dart参数传方法_Flutter必备Dart语言快速入门
  10. 利用HUtool读取Excel内容
  11. 什么是联表查询?(深度刨析,建议收藏)
  12. 中英文对照 —— 航空航天航海、交通运输工具
  13. matlab 正态分布相关 API
  14. CentOS操作系统的22个log日志
  15. Ubuntu系统清理瘦身
  16. window10华硕计算机主板VT,华硕主板怎么开启vt 【设置步骤】
  17. 移动开发必知必会的六大数据统计平台(入门篇)
  18. 集成平台即服务,云和……独角兽
  19. 中国睫毛生长液行业市场供需与战略研究报告
  20. 浏览器插件:脚本注入插件Tampermonkey(油猴)

热门文章

  1. QQ音乐页面效果模仿制作
  2. 如何防守住企业的生死大门?
  3. HTML Input标签输入限制
  4. Kubernetes系列-OCI、CRI、CNI、CSI、CRD、CNM介绍
  5. php 支付宝用户信息授权,h5端支付宝第三方用户信息接口demo
  6. CF专题(长安大学)
  7. 人力资源管理中的大数据应用之道
  8. 从“化学家”到开发者,从甲骨文到TDengine,我人生的两次重要抉择
  9. NYIST 113 字符串替换
  10. 参加ACM比赛所需的基础知识(转)