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端部署

前提:

  1. 已部署好Sonic的Server端与Client端
  2. 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
  1. 安卓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
  1. 配置与Agent本机谷歌浏览器 版本对应 的chromedriver
$ which chromedriver
/usr/local/bin/chromedriver

这些前提条件我之前已经配置好了,可参考我之前的文章来配置,这里仅做一下配置检查

  1. 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

sonic官方iOS设备接入指导

效果

扩展阅读