centos docker部署openstf

一、简介

OpenSTF(Smartphone Test Farm)是一个web端移动设备管理平台,可以从浏览器端远程调试、远程管理设备。其实有点类似于我们现在很火热的云测平台,如:testin、百度MTC等等。并且这个项目在Github上开源:https://github.com/openstf/stf 遵循Apache License 2.0开源协议。很多公司内部团队现在都开始通过STF建设自己的平台。

二、docker部署stf

1、依赖

2、拉取docker镜像

$ docker pull openstf/stf:latest # STF镜像
$ docker pull sorccu/adb:latest # adb 镜像
$ docker pull rethinkdb:latest # rethinkdb 镜像
$ docker pull openstf/ambassador:latest # ambassador 镜像

3、运行docker容器

  • 启动数据库
docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090
  • 启动adb service

docker 启动的时候增加参数--privileged ,开启特权,可以设置容器里的内核参数

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 192.168.31.55 --allow-remote

一定要注意启动顺序,STF 依赖 rethinkdb,所以要先启动 rethinkdb,启动完成后使用: docker ps -a 查看是否启动成功

4、访问stf管理页面

http://192.168.31.55:7100/#!/devices

三、连接设备

1、adb架构

2、adb host 方式连 windows 上的设备

  • windows设备端(192.168.31.5)

首先保证其他电脑可以和安装STF 的系统通信,在未安装STF 的电脑上暴露adb端口,建议采用默认端口:5037,adb 如果是1.0.32版本以下的,使用如下命令:

adb -a -P 5037 fork-server server

若adb在1.0.32以上的,如adb 1.0.39版本下,使用如下命名:

adb nodaemon server -a -P 5037

Linux 上启动adb server并对外暴露5037端口

adb -a -P 5037 fork-server server

另行,打开一个命令窗口,然后添加设备

adb connect 127.0.0.1:62001

监听的5037,也已经提示连接设备

  • stf服务器端(192.168.31.55)

当不知道命令如何写的时候,从上面运行STF服务里查找日志里面有provider的一行,可以比照出内容怎么写。

[root@localhost ~]# docker logs -f stf

进入stf服务器

[root@localhost ~]# docker exec -it stf /bin/bash

远程windows主机,执行下述命令【其中--adb-host 127.0.0.1可换成实际(windows主机)--adb-host 192.168.31.43】

stf provider --name localhost.localdomain --min-port 7400 --max-port 7700 --connect-sub tcp://127.0.0.1:7114 --connect-push tcp://127.0.0.1:7116 --group-timeout 900 --public-ip 192.168.31.55 --storage-url http://localhost:7100/ --adb-host 192.168.31.43 --adb-port 5037 --vnc-initial-size 600x800 --mute-master never --allow-remote

本地主机,执行下述命令【其中--adb-host 127.0.0.1可换成实际(windows主机)--adb-host 192.168.31.30】

stf provider --name localhost.localdomain --min-port 7400 --max-port 7700 --connect-sub tcp://127.0.0.1:7114 --connect-push tcp://127.0.0.1:7116 --group-timeout 900 --public-ip 192.168.31.55 --storage-url http://localhost:7100/ --adb-host 192.168.31.30 --adb-port 5037 --vnc-initial-size 600x800 --mute-master never --allow-remote

stf服务器,显示连接成功

四、存在问题

1、关闭linux防火墙

关闭linux防火墙,避免socket连接错误,或者stf显示设备画面异常。centos命令如下:

  • 查看防火墙状态: 绿的running表示防火墙开启
systemctl status firewalld.service
  • 执行关闭命令:
systemctl stop firewalld.service
  • 再次执行查看防火墙命令:
systemctl status firewalld.service
  • 执行开机禁用防火墙自启命令 :
systemctl disable firewalld.service

2、could not install

找到占用的端口并将程序杀掉

netstat -ano | findstr 5037

杀掉后,再重新查看端口是否被占用,然后重新执行命令

adb nodaemon server -a -P 5037

五、参考

1、shell:https://blog.csdn.net/FloatDreamed/article/details/103809814

2、更改运行adb服务器的默认端口:http://www.cocoachina.com/articles/52086

3、adb命令大全:https://www.jianshu.com/p/3bacaeab06b2

4、官方:https://github.com/openstf/stf

5、部署脚本:https://github.com/thinkhy/deploy-stf-docker/blob/master/deploy_stf.sh

6、STF 使用系列心得:https://testerhome.com/topics/6112

7、STF 集成 iOS 之 开源了:https://testerhome.com/topics/19548

posted @ 2020-04-12 13:48  xyztank  阅读(500)  评论(0编辑  收藏  举报