sonic 云真机平台部署(mac)
本文以mac部署为例,其他系统请参考官方文档
相关文档
前后端部署
数据库安装
- docker安装mariadb
$ docker pull mariadb
$ docker run --name monkey_mariadb -v ~/Documents/mariadb:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=monkey_jerry -p 3306:3306 -d mariadb
- 新建数据库sonic,并设置字符集为utf8,排序规则为utf8_general_ci
部署Sonic的Server端与Client端
- 下载官方部署zip文件,并解压到任意目录
- 修改
.env
文件内容,如我的如下:
################################################
# Do you need any help? #
# Visit https://sonic-cloud.gitee.io/#/Deploy #
################################################
##################
# Service Config #
##################
SERVER_HOST=192.168.109.220
SERVER_PORT=3000
SONIC_EUREKA_USERNAME=sonic
SONIC_EUREKA_PASSWORD=sonic
SONIC_EUREKA_PORT=9090
################
# MySQL Config #
################
MYSQL_HOST=192.168.109.220
MYSQL_PORT=3306
MYSQL_DATABASE=sonic
MYSQL_USERNAME=root
MYSQL_PASSWORD=monkey_jerry
################
# 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!@#123
LDAP_URL=ldap://192.168.1.1:10389
- 进入解压后的目录执行以下指令
docker-compose up -d
- 浏览器访问 http://localhost:3000,然后可 直接前往 Agent端部署
Agent端部署
前提:
- 已部署好Sonic的Server端与Client端
- jdk环境,需要jdk15或以上,并设置好了JAVA_HOME
$ java -version
java version "18.0.1" 2022-04-19
Java(TM) SE Runtime Environment (build 18.0.1+10-24)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.1+10-24, mixed mode, sharing)
$ echo $JAVA_HOME
/Users/xmly/.sdkman/candidates/java/current
- 安卓SDK并设置环境变量
$ echo $ANDROID_HOME
/Users/xmly/Library/Android/sdk
$ which adb
/Users/xmly/Library/Android/sdk/platform-tools/adb
$ adb version
Android Debug Bridge version 1.0.41
Version 33.0.2-8557947
Installed as /Users/xmly/Library/Android/sdk/platform-tools/adb
- 配置与Agent本机谷歌浏览器 版本对应 的chromedriver
$ which chromedriver
/usr/local/bin/chromedriver
这些前提条件我之前已经配置好了,可参考我之前的文章来配置,这里仅做一下配置检查
- appium
$ appium -v
1.20.2
- 从部署好的前端界面【设备中心】的【Agent中心】新增Agent,记录Agent的Key
- 下载官方部署mac zip文件并解压到任意目录
- 进入解压目录的上级目录,这里为sonic-agent-v1.4.1-beta-macosx_x86_64,并赋予所有权限
$ sudo chmod -R 777 sonic-agent-v1.4.1-beta-macosx_x86_64
- 修改config文件夹中 application-sonic-agent.yml 的配置信息,如我的配置信息如下
sonic:
agent:
# 替换为部署Agent机器的ipv4
host: 192.168.109.220
# 替换为Agent服务的端口,可以自行更改
port: 7777
# 替换为前端新增Agent生成的key
key: 85cfb83e-5af8-442b-9b5e-71b2412690a5
server:
# 改成server的SERVER_HOST
host: 192.168.109.220
# 改成server的SERVER_PORT
port: 3000
modules:
android:
# 是否开启安卓模块
enable: true
# 是否开启远程adb调试功能
use-adbkit: true
ios:
# 如果不需要连接iOS设备,请将true改为false。开启的windows用户请确保本机已安装iTunes
enable: true
# 替换为你自己使用的wda的bundleId,如果没有.xctrunner后缀会自动补全,建议使用公司的开发者证书
# 我这里使用的是bytedance的fastbot定制的wda
wda-bundle-id: bytedance.FastbotRunnerTestxmly.xctrunner
appium:
# 是否开启Appium功能
enable: true
webview:
# 是否开启在线webView调试功能
enable: true
# 谷歌调试端口,一般不需要修改(默认0使用随机端口,如果需要开启防火墙给外部使用,请设置固定端口如7778)
chrome-driver-debug-port: 0
# 替换为Agent机器上的chrome浏览器的driver路径,可以去http://npm.taobao.org/mirrors/chromedriver/下载
chrome-driver-path: "/usr/local/bin/chromedriver"
sgm:
enable: true
- 启动agent
$ java -Dfile.encoding=utf-8 -jar sonic-agent-macosx-x86_64.jar
...
...
Check adbkit env (Next version deprecated) Fail ❌
提示:可使用[npm i -g adbkit]安装
报错,根据提示执行
npm i -g adbkit
安装即可
设备接入
安卓
连接即可,各品牌定制rom可能有些许区别,可参考官方文档
iOS
想连接iOS,当然还是逃不过WDA,因此需要构建wda到你的iOS设备中(成功后即可脱离mac)
这里直接使用之前在手机上安装的Fastbot_iOS,可参考其配置指导Fastbot_iOS handbook-cn.md