Sonic框架整体部署
# 介绍
Sonic是一站式开源分布式集群云真机测试平台,致力服务于中小企业的客户端UI测试。近期尝试搭建了下相关的服务试用,整体感觉很不错,这里mark下搭建流程。
# 1.安装Dokcer
推荐在Mac上使用desktop版本,方便可视化的进行管理与使用。
# 2.安装MySQL
# (1)通过doker安装mysql
官方推荐使用的版本为5.7,为了方便集成部署,推荐通过docker进行MySQL的安装。
安装命令:
docker run --name ide-mysql -v /Users/fengbin/Documents/qamysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=XXXXX -p 8888:3306 -d mysql:5.7
需要手动修改的几个重要参数
--name:给相应的docker容器起一个名字,方便后续在Docker的desktop管理端查看;
-v:数据库的挂载地址,:前面填写自己本地电脑的一个完整路径,
-e:MYSQL_ROOT_PASSWORD=XXXXX,XXXXX部分替换为自己设置好的密码,后续部署sonic会使用到。
-p:端口映射规则,这里配置的是8888:3306,后续部署sonic会使用到端口号。
# (2)允许mysql支持远程访问
通过docker ps -a
查看启动的mysql容器,对应的容器id,之后输入命令进入容器:
docker exec -it 容器id /bin/bash
修改访问的权限:
mysql -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'XXXXX' WITH GRANT OPTION;
flush privileges;
2
3
4
5
注意,XXXXX需要替换为之前启动mysql容器时,设置的数据库密码。
# (3)创建sonic数据库
CREATE DATABASE IF NOT EXISTS sonic
DEFAULT CHARACTER SET utf8;
2
输入quit退出mysql的命令行,输入exit退出docker的命令行交互。
# 3.前后端部署
# (1)获取sonic server端最新的安装包
在sonic官方的git下载仓库链接页面 (opens new window),下载最新版本的zip包,并解压缩到特定的部署目录下。
# (2)获取本机的ipv4地址
mac机器上,查看获取自己机器的ipv4地址,该字段非常重要,关系到后续的部署是否可以成功。
# (3)配置修改.env中的信息(重要)
ip地址相关的配置,一共三处,统一修改为步骤2中获取到的本机ipv4地址。
数据库相关的配置,一共两处,统一修改为启动mysql容器时,设置的数据库端口,以及数据库密码。
# (4)通过docker部署服务
在项目的根目录下,执行命令:
docker-compose up -d
之后等待前后端部署完成即可,期间可能需要等待3-5分钟。打开浏览器访问 http://localhost:3000 (opens new window),如果可以成功的看到登录注册页面,即说明相关服务部署成功。
# 4.agent端部署
因为sonci本身的架构是分布式的,类似jenkins的master和slave方式。agent可以部署到不同的电脑上作为分布式节点,一个agent最多可以带50个移动设备。
sonic官方提供了docker部署的模式,但是仅Ubuntu可用,笔者这里是mac环境,因此采用的jar方式进行。
# (1) 安装jdk 15版本
已知部分 JDK 出现不兼容的问题,Sonic 官方推荐使用 JDK15,下载链接地址 (opens new window)。
部分开发者本地可能并不常用JDK15的环境,推荐参考Mac下安装多个版本的JDK并随意切换 (opens new window)的方式,安装多个jdk版本,并通过命令行的方式随意切换:
jdk15 // 切换到15版本
jdk8 // 切换到8版本
2
# (2) 添加安卓SDK设置到系统环境变量
需要安卓SDK设置到系统环境变量,命名为ANDROID_HOME。打开SDKManager,下载platform-tools。确保platform-tools目录存在,adb指令可用。将ANDROID_HOME、ANDROID_HOME/platform-tools添加到系统PATH中。
# (3) 下载agent端jar包
在sonic-agent下载页面 (opens new window)下载最新的客户端。
赋予工作目录所有权限,然后确保解压后的 mini、config、plugins 文件夹与 jar 同级
sudo chmod -R 777 xxxxx
# (4) 配置agent端
在server平台页面,新增加一个agent端:
修改sonic-agent/config/application-sonic-agent.yml
下的配置信息:
重要关注项目:
agent端的ipv4地址,获取方式同部署server端时获取ip地址的方式一致
server端的ip与端口号,要与部署server端时的配置一致。
wda-bundle-id:运行ios设备时,需要自己在测试的ios设备上运行一个wda,修改bundleid,保持一致。
修改完成后,执行启动命令:
java -Dfile.encoding=utf-8 -jar sonic-agent-macosx-x86_64.jar
如果发现端口并占用,可通过如下命令进行重启:
lsof -ti:7777 | xargs kill -9