Docker搭建STF私有移动测试云平台

一. STF介绍

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

二.STF的功能

  • 支持安卓2.3-10.0系统,无需root(10.0系统为目前最新)
  • 最多支持管理上百个android设备
  • 实时屏幕操作和显示
  • 通过浏览器远程控制,支持远程鼠标键盘对真机进行操作
  • 远程复制粘贴功能
  • 快照截图
  • 应用包及文件的上传/下载功能
  • 支持远程端浏览器进行真机访问操作
  • 日志输出及错误日志输出打印
  • 支持adb connnect远程连接调试、adb shell脚本运行
  • 开发人员进行远程debug功能
  • android设备信息的展示(如:网络状态、MIME、android版本、手机型号等
  • 提供设备机的CPU,内存,电量等性能的监测
  • 固化测试机器的系统版本,系统设置,不被篡改

三、STF的作用

  • 利用多设备管理,可以实现移动 APP兼容性测试
  • 借助adb shell脚本可实现 monkey交叉事件测试,测试APP稳定性
  • 结合python/Java+appium/uiautomator2,可实现 *APP自动化回归测试

四、STF的架构

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

Docker搭建STF私有移动测试云平台

1.设备端

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

2.服务端

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

3.Provider

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

4.Application

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

5.Client 层

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

五、STF环境搭建

安装方式有两种,一种是普通方式安装,一种是通过docker方式安装,两种安装方式各有利弊。普通安装方式要安装的插件非常多,安装起来很麻烦,但一旦安装成功则非常有利于后期的维护,无论哪个部分出了问题,都能通过日志很快定位到;而通过docker方式安装,前期安装时非常便捷,只需要几行命令即可,但这种方式对于对docker了解不是特别深的用户来说,后期一旦某个部件出了问题,则很难定位到或很难解决(别问我怎么知道的,就是通过搭建gitlab总结出来的,哈哈)。为了节约时间,本次搭建以docker方式为例:

1.docker拉取STF相关镜像

docker pull openstf/stf:latest
docker pull sorccu/adb:latest
docker pull rethinkdb:latest
docker pull openstf/ambassador:latest
docker pull nginx:latest

2.启动容器

① 启动RethinkDB数据库容器

docker run -d --name rethinkdb -v /home/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8070  //注意端口冲突

② 启动adb容器

docker run -d --name adbd --privileged -v /home/adb:/dev/bus/usb --net host sorccu/adb:latest  //--privileged参数赋予容器内的root用户root权限,若服务器已安装adb命令行工具,也可以使用既有的

③ 启动stf容器

docker run -d --name stf --net host openstf/stf stf local --public-ip 192.168.1.122  //带上自己的IP地址即可

④ 查看docker容器运行状态

docker ps -a

docker运行状态如图,up表示处于正在健康运行状态:

Docker搭建STF私有移动测试云平台

3.访问STF管理后台

STF管理页面:
http://192.168.1.122:7100

,使用任意账号+邮箱即可登录

Docker搭建STF私有移动测试云平台

RethinkDB管理页面:
http://192.168.1.122:;8070

工具善其事,必先利其器。至此,STF平台搭建完成。当连接一定数量的设备后,就基本具备私有移动测试云平台的雏形了。如上文提到的可供测试团队用于兼容性测试、自动化回归测试、monkey稳定性测试…下一篇介绍STF平台连接设备和具体使用。

Original: https://www.cnblogs.com/dagangtest/p/15528403.html
Author: 大刚测试开发实战
Title: Docker搭建STF私有移动测试云平台

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/713522/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球