IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

OpenStf的搭建以及分布式部署的实现

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

一、OpenStf是什么?

OpenStf是一个可以通过网页管理和使用移动设备的平台,支持远程调试、远程使用手机浏览器打开链接、远程执行shell脚本、远程拖拽安装App、远程查看日志、远程截屏等功能。

104_1.png

二、OpenStf的搭建以及无缝接入Ldap

(1)MAC环境安装

MAC上安装建议使用npm的方式安装,这种方式很简单,唯一的要求就是Node版本一定要是8的版本,我采用的是8.9.3版本。如果你的电脑中已经有Node其他版本,则建议使用NVM切换版本。

安装步骤如下:
nvm use 8.9.3 

npm install -g stf

brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config

启动脚本如下: runOpenStf.sh
. ~/.nvm/nvm.sh
nvm use 8.9.3 
rethinkdb & stf local --public-ip 192.168.27.180

上面的脚本里192.168.27.180是我本机的IP,则我对外暴露我的IP地址,其他机器则可以直接通过http://192.168.27.180:7100访问STF平台。 平台启动完成,直接把设备插入电脑USB及可以自动识别。

Ldap的无缝接入

接入Ldap,只需要在STF启动脚本加入Ldap参数即可。

#!/bin/sh
. ~/.nvm/nvm.sh
nvm use 8.9.3
rethinkdb & stf local --public-ip 192.168.27.180 --auth-type ldap \
--auth-options '["--ldap-url","ldap://192.168.xx.xxx","--ldap-bind-dn","cn=ldapuser,cn=xxxx,dc=xxxxx,dc=xxxx","--ldap-search-dn","cn=xxx,dc=xxx,dc=xxx","--ldap-bind-credentials","xxxxxx","--ldap-search-class","user","--ldap-search-field","mail"]' 

具体Ldap参数定义参照:testerhome.com/topics/3906

(2)Linux环境的安装

Linux上则可以直接通过Docker的方式安装

拉取相关镜像
   $  docker pull openstf/stf:latest         拉取STF镜像
   $  docker pull sorccu/adb:latest     拉取adb 镜像
   $  docker pull rethinkdb:latest      拉取rethinkdb 镜像

启动相关镜像
$ docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090

$ docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest

$ docker run -d --name stf --net host openstf/stf stf local --public-ip 192.168.27.200

所有容器启动完成之后,即可通过 http://192.168.27.200:7100访问平台,插上设备即可使用访问。

三、STF平台的分布式部署

STF分布式有2种方案,方案如下:

  • 主节点部署STF服务并允许远程访问API,子节点只需部署ADB,保证ADB 5037端口对外暴露即可。这种方案的优点是部署简单,而且子节点无需部署STF服务。缺点就是子节点新增机器需要在主节点重新运行STF命令以识别子节点上新增的机器。
  • 主节点部署STF服务并允许远程访问API,子节点也部署STF服务并允许远程访问API。然后主节点连接子节点。这种方案的优点是子节点新增设备可以自动识别。缺点就是子节点也需要部署STF服务。 104_2.png
第一种情况,以Window子节点为例

(1)开启ADB,并对外暴露5037端口

adb nodaemon server -a -P 5037

如果出现adb端口被占用的情况,则通过命令查找5037端口占用进程并杀死进程即可。

netstat -aon|findstr 5037

taskkill /pid 5008 /f

(2)到MAC Master主节点运行stf provider命令连接Window子节点

Window的IP为:192.168.27.247,MAC机器IP为:192.168.27.180

stf provider --name GHL.local --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.27.180 \
--storage-url http://localhost:7100/ \
--adb-host 192.168.27.247 --adb-port 5037 \
--vnc-initial-size 600x800 --mute-master never --allow-remote

上面这么多参数,可以查看Master主节点STF启动日志即可查到,这里主要就是通过新增

--adb-host 192.168.27.247 --adb-port 5037 \

来连接Window机器。

第二种情况,以Linux子节点为例

Linux上部署一个STF服务并运行远程访问API,Linux的IP为:192.168.27.200,MAC机器IP为:192.168.27.180 那么我们只需在Linux上运行stf provider连接Master节点即可,命令如下:

stf provider --name centerOs.local --min-port 7400 --max-port 7700 \ 
--connect-sub tcp://192.168.27.180:7114 --connect-push tcp://192.168.27.180:7116 \
--group-timeout 20000 --public-ip 192.168.27.180 --storage-url http://192.168.27.180:7100/ \ 
--vnc-initial-size 600x800 --allow-remote

这里可以看到无需输入adb远程端口,此时Linux节点上插入机器,Master节点就可以实时的查看到Linux上挂载的机器。而无需在Master节点重新输入stf provider命令。

文章永久链接:https://tech.souyunku.com/?p=44761

赞(91) 打赏



未经允许不得转载:搜云库技术团队 » OpenStf的搭建以及分布式部署的实现

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码
IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

评论 抢沙发

大前端WP主题 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏


Fatal error: Uncaught Exception: Cache directory not writable. Comet Cache needs this directory please: `/data/wangzhan/tech.souyunku.com.wp/wp-content/cache/comet-cache/cache/https/tech-souyunku-com/index.q`. Set permissions to `755` or higher; `777` might be needed in some cases. in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php:367 Stack trace: #0 [internal function]: WebSharks\CometCache\Classes\AdvancedCache->outputBufferCallbackHandler() #1 /data/wangzhan/tech.souyunku.com.wp/wp-includes/functions.php(5109): ob_end_flush() #2 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(303): wp_ob_end_flush_all() #3 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /data/wangzhan/tech.souyunku.com.wp/wp-includes/plugin.php(470): WP_Hook->do_action() #5 /data/wangzhan/tech.souyunku.com.wp/wp-includes/load.php(1097): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php on line 367