前言
大致分为以下步骤:
• 安装docker、docker-compose
• 安装MySQL,创建sonic数据库
• 安装jdk及Android SDK
• 部署sonic,注册agent
• 部署agent,连接使用手机
一、安装docker和docker-compose(已安装请自行跳过)
1.手动下载安装
下载地址:https://docs.docker.com/desktop/install/mac-install/
安装参考:https://yeasy.gitbook.io/docker_practice/install/mac
如同 macOS 其它软件一样,安装也非常简单,双击下载的 .dmg
文件,然后将那只鲸鱼图标拖拽到 Application
文件夹即可(其间需要输入用户密码)。
2.运行
从应用中找到 Docker 图标并点击运行。
运行之后,会在右上角菜单栏看到多了一个鲸鱼图标,这个图标表明了 Docker 的运行状态。
每次点击鲸鱼图标会弹出操作菜单。
之后,你可以在终端通过命令检查安装后的 Docker 版本。
$ docker --version
Docker version 20.10.0, build 7287ab3
如果 docker version
、docker info
都正常的话,可以尝试运行一个 Nginx 服务器
$ docker run -d -p 80:80 --name webserver nginx
服务运行后,可以访问 http://localhost,如果看到了 "Welcome to nginx!",就说明 Docker Desktop for Mac 安装成功了。
要停止 Nginx 服务器并删除执行下面的命令:
$ docker stop webserver
$ docker rm webserver
docker Desktop for Mac/Windows 自带 docker-compose 二进制文件,安装 Docker 之后可以直接使用。
$ docker-compose --version
docker-compose version 1.27.4, build 40524192
二、安装mysql数据库
1.安装
docker pull mysql:5.7.33
2.安装完成后启动
docker run -d --name sonic -e MYSQL_ROOT_PASSWORD=Sonic123 -p 3306:3306 mysql:5.7.33
3.创建数据库
# 进入mysql容器内
docker exec -it sonic sh
# 容器内登录mysql
mysql -uroot -pSonic123
# mysql命令行操作
mysql> create database sonic character set utf8 collate utf8_general_ci;
三、安装jdk和Android-sdk
比较简单,请自行百度安装,跳过
四、部署sonic
1.下载zip包:
https://github.com/SonicCloudOrg/sonic-server/releases/tag/v2.3.1
2.修改.env部署文件
解压zip,更改.env中的信息,修改的结果参考如下,
注意!!!IP都换成自己的IP
################################################
# Do you need any help? #
# Visit https://sonic-cloud.gitee.io/#/Deploy #
################################################
##################
# Service Config #
##################
SONIC_SERVER_HOST=192.168.0.3
SONIC_SERVER_PORT=3000
SONIC_EUREKA_USERNAME=sonic
SONIC_EUREKA_PASSWORD=sonic
SONIC_EUREKA_PORT=9090
################
# MySQL Config #
################
MYSQL_HOST=192.168.0.3
MYSQL_PORT=3306
MYSQL_DATABASE=sonic
MYSQL_USERNAME=root
MYSQL_PASSWORD=Sonic123
################
# User Config #
################
SECRET_KEY=sonic
EXPIRE_DAY=14
PERMISSION_ENABLE=true
PERMISSION_SUPER_ADMIN=sonic
REGISTER_ENABLE=true
NORMAL_USER_ENABLE=true
LDAP_USER_ENABLE=false
LDAP_USER_ID=cn
LDAP_BASE_DN=ou=users
LDAP_BASE=ou=system
LDAP_USERNAME=uid=admin,ou=system
LDAP_PASSWORD=sonic
LDAP_URL=ldap://192.168.0.3:10389
LDAP_OBJECT_CLASS=person
若看不到.env文件,执行如下命令
defaults write com.apple.finder AppleShowAllFiles TRUE; killall Finder
sonic-server-v2.3.1目录下执行以下指令
docker-compose up -d
如果您为中国大陆用户,出现访问DockerHub较慢的情况,我们可以
1.配置国内加速镜像源(推荐)
2.执行以下指令直接使用加速镜像(不推荐,加速源可能出现不稳定或网络波动,后续down的时候需要docker-compose -f docker-compose-zh.yml down)
docker-compose -f docker-compose-zh.yml up -d
前后端部署完毕!(因Eureka心跳机制,刚启动完毕微服务间互相访问需要3~5分钟,请耐心等候)打开浏览器访问 http://localhost:3000,然后可 直接前往 Agent端部署。(此处localhost可替换为IP地址)
3.注册登录
附)如果您是经验丰富的运维人员,也可以前往Eureka页面查看各微服务状态。
访问地址:http://192.168.0.3:3000,(注意换成自己的IP)进行账号注册,并登录。
五、部署agent
1.下载openjdk
brew install openjdk
安装完成后,在你的环境变量配置文件中进行环境变量配置
export JAVA_HOME='/usr/local/opt/openjdk/libexec/openjdk.jdk/Contents/Home'
2.下载agent压缩包
https://github.com/SonicCloudOrg/sonic-agent/releases/tag/v2.3.1,下载完成后解压
3.创建agent
登录成功后,需要创建一个agent
创建完成后,点击复制Agent Key,后面会用到
进入agent解压缩后的文件夹路径下
cd sonic-agent-v2.1.2-macosx_x86_64
# 给予当前目录下全部文件的执行属性,避免报错“无法验证开发者”
$ sudo xattr -r -d com.apple.quarantine .
修改 config/application-sonic-agent.yml 配置文件(注意修改agent的key、host和wda-bundle-id为自己的),如下:
iOS端WDA的安装可参考:https://cloud.tencent.com/developer/article/1864001
sonic:
agent:
# 替换为部署Agent机器的ipv4
host: host.docker.internal
# 替换为Agent服务的端口,可以自行更改
port: 7777
# 替换为前端新增Agent生成的key
key: 5aa13292-b9a8-408c-a091-d784d1f37472
server:
# 改成server的SONIC_SERVER_HOST
host: host.docker.internal
# 改成server的SONIC_SERVER_PORT
port: 3000
modules:
android:
# 是否开启安卓模块
enable: true
# 是否开启sonic-android-supply远程adb调试功能
use-sas: true
ios:
# 如果不需要连接iOS设备,请将true改为false。开启的windows用户请确保本机已安装iTunes
enable: true
# 替换为你自己使用的wda的bundleId,如果没有.xctrunner后缀会自动补全,建议使用公司的开发者证书
wda-bundle-id: com.sonic.WebDriverAgentRunner
sgm:
# 是否开启sonic-go-mitmproxy网络抓包功能
enable: true
启动服务,如下:
java -Dfile.encoding=utf-8 -jar sonic-agent-macosx-x86_64.jar
启动完成后连接手机,就可以在前端平台上对手机进行操作了!
参考文档:
https://www.mobibrw.com/2023/35906
https://developer.aliyun.com/article/1051081