开源云真机平台sonic-1.5.0版本部署实践

简介: 介绍演示部署的全过程:● 安装docker、docker-compose● 安装MySQL,创建sonic数据库● 安装jdk及Android SDK● 部署sonic,注册agent● 部署agent,连接使用手机

前言

之前发过一篇《开源云真机平台-Sonic应用实践》,是用1.0版本搭建的,版本比较老。现在最新版已经迭代到了1.5版本。我采用的是在另一台服务器上重新部署一套的形式,当然你也可以在原有的sonic版本上进行更新。这样也方便介绍演示部署的全过程。大致分为以下步骤:

  • 安装docker、docker-compose
  • 安装MySQL,创建sonic数据库
  • 安装jdk及Android SDK
  • 部署sonic,注册agent
  • 部署agent,连接使用手机

一、安装docker和docker-compose

1.安装docker

# 安装yum-tools工具包yum install -y yum-utils
# 指定Docker下载源(可选,适用于首次安装)yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker(默认安装最新版本)yum install -y docker-ce docker-ce-cli containerd.io
# 验证是否安装成功docker version
# 启动服务systemctl start docker

2.安装docker-compose

curl-L"https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)"-o /usr/local/bin/docker-compose
chmod+x /usr/local/bin/docker-compose
docker-compose --version

二、安装mysql数据库

1.安装数据库

通过docker安装数据库

docker pull mysql:5.7.33
docker run -d--restart always --name mysql -eMYSQL_ROOT_PASSWORD=Sonic123!@# -p 3307:3306 mysql:5.7.33

2.创建数据库

# 进入mysql容器内docker exec -it mysql sh# 容器内登录mysqlmysql -uroot-p123456# mysql命令行操作mysql> create database sonic character set utf8 collate utf8_general_ci;

三、安装jdk及Android-sdk

可以参考前面的一篇文章《如何在Linux快速搭建一套ADB环境

四、部署sonic

1.修改.env部署文件

#################################################         Do you need any help?                ## Visit https://sonic-cloud.gitee.io/#/Deploy  #################################################################### Service Config ###################SONIC_SERVER_HOST=192.168.1.20
SONIC_SERVER_PORT=3000SONIC_EUREKA_USERNAME=sonic
SONIC_EUREKA_PASSWORD=sonic
SONIC_EUREKA_PORT=9090################# MySQL Config #################MYSQL_HOST=192.168.1.20
MYSQL_PORT=3307MYSQL_DATABASE=sonic
MYSQL_USERNAME=root
MYSQL_PASSWORD=Sonic!@123
################# User Config  #################SECRET_KEY=sonic
EXPIRE_DAY=14PERMISSION_ENABLE=truePERMISSION_SUPER_ADMIN=sonic
REGISTER_ENABLE=trueNORMAL_USER_ENABLE=trueLDAP_USER_ENABLE=falseLDAP_USER_ID=cn
LDAP_BASE_DN=ou=users
LDAP_BASE=ou=system
LDAP_USERNAME=uid=admin,ou=system
LDAP_PASSWORD=Sonic!@#123LDAP_URL=ldap://192.168.1.20:10389

2.创建并启动容器

docker-compose up -d

3.前端访问&注册账号

访问地址:http://192.168.1.20:3000/,进行账号注册,并登录。

五、部署agent

1.创建agent

登录成功后,需要创建一个agent

创建完成后,点击复制Agent Key,后面会用到

2.修改docker-compose.yml文件

version: '3'services:
  sonic-agent:
    image: "registry.cn-hangzhou.aliyuncs.com/sonic-cloud/sonic-agent-linux:v1.5.0-release"    environment:
# 对应server的env配置,注意防火墙关闭对应端口-SONIC_SERVER_HOST=192.168.1.20
-SONIC_SERVER_PORT=3000# 替换为部署Agent机器的ipv4-AGENT_HOST=192.168.1.20
# 替换为Agent服务的端口,可以自行更改-AGENT_PORT=7777# 替换为前面复制的Agent key-AGENT_KEY=e3dd4622-834a-4f53-914d-73b64b5606e1
# 是否使用安卓模块-ANDROID_ENABLE=true# 是否开启远程adb调试功能-USE_ADBKIT=true# 是否使用iOS模块-IOS_ENABLE=true# 替换为你自己使用的wda的bundleId,如果没有.xctrunner后缀会自动补全,建议使用公司的开发者证书-WDA_BUNDLE_ID=com.facebook.WebDriverAgentRunner.xctrunner
# 是否启用Appium-APPIUM_ENABLE=true# 是否启用webview调试功能-WEBVIEW_ENABLE=true# 谷歌调试端口,一般不需要修改(默认0使用随机端口,如果需要开启防火墙给外部使用,请设置固定端口如7778)-CHROME_DRIVER_PORT=0# 是否开启sonic-go-mitmproxy代理功能-SGM_ENABLE=true    network_mode: "host"    privileged: true    volumes:
- /dev/bus/usb:/dev/bus/usb
- /var/run/usbmuxd:/var/run/usbmuxd

3.创建并启动容器

docker-compose up -d

查看日志会发现,sonic-agent_sonic-agent_1 容器会自动检查相关依赖环境,并与sonic server进行连接认证。

六、连接手机

需要在手机设置-开发者选项中开启USB调试模式,个别手机如小米可能还需要勾选允许USB模拟点击。

手机通过USB数据线连接服务器后,会弹出是否允许计算机调试本台设备,勾选允许。此时可以通过adb devices命令查看是否已成功连接:

[root@sonic sonic-agent]# adb devicesList of devices attached
66J5T19614010786        device
GDB6R19813000723        device
tkqkssgirgaipblj        device

刷新sonic前台页面,即可看到已连接的手机

七、常见问题及解决办法

1.sonic_sonic-server-controller_1容器一直处于重启状态

查看容器状态:

docker ps-a

容器状态正常,但前端页面提示系统错误。此时需要检查controller容器日志,检查数据库是否连接成功、数据表是否成功:

docker logs -f sonic_sonic-server-controller_1

通过查看sonic_sonic-server-controller_1容器日志发现错误原因为mysql连接不上导致:

检查发现原来是系统开启了防火墙,防火墙未放开3307端口(前面创建的mysql容器的3306映射到本机的3307端口),开启防火墙3307端口即可,另外eureka的9090端口也要开放出来:

firewall-cmd --permanent--add-port=3307/tcp  # 添加3307端口firewall-cmd --permanent--add-port=9090/tcp  # 添加9090端口firewall-cmd --reload# 重新加载防火墙配置firewall-cmd --list-all# 查看开放端口列表

重启运行docker-compose.yml

docker-compose down
docker-compose up -d

此时数据库正常连接并创建相关数据表:

2.进入手机详情页面,一直处于“准备图像中”

查看防火墙状态,防火墙开放agent的7777端口。当然直接关闭防火墙服务也可以,不过这样会增加很多安全隐患。

firewall-cmd --permanent--add-port=7777/tcp  # 添加3307端口firewall-cmd --reload# 重新加载防火墙配置

再次刷新前台页面,重新进入手机即恢复正常:

小结

总体来说,部署过程比较简单,就是一堆的基础环境搭建及配置:JDK、ADB、Docker、MySQL。尤其需要注意防火墙端口问题,最简单粗暴的办法就是关闭防火墙。以及若部署在云服务器上,还需要在安全组中开放相关端口。比较难的地方在于出现问题后的问题排查,有时候一个问题会卡壳很久,这个时候需要学会查看日志来定位问题,不能只看容器状态,容器状态只是表象。

相关文章
|
前端开发 关系型数据库 MySQL
开源云真机平台-Sonic应用实践
Sonic,一站式开源分布式集群云真机测试平台,致力服务于中小企业的客户端UI测试。 Sonic当前的愿景是能帮助中小型企业解决在客户端自动化或远控方面缺少工具和测试手段的问题。
开源云真机平台-Sonic应用实践
|
Unix 网络安全 iOS开发
Mac 电脑如何安装Wireshark?
Mac 电脑如何安装Wireshark?
2465 0
Mac 电脑如何安装Wireshark?
|
12月前
|
人工智能 前端开发 测试技术
如何让AI帮你做前端自动化测试?我们这样落地了
本文介绍了一个基于AI的UI自动化测试框架在专有云质量保障中的工程化实践。
4543 24
如何让AI帮你做前端自动化测试?我们这样落地了
|
11月前
|
人工智能 算法 安全
算法备案新手攻略——2025全网最新最详细解读版
本文介绍了算法备案的背景、法规依据、备案类型及流程,涵盖生成合成、个性化推送等五大算法类型,并详细说明所需材料与备案周期,强调未备案将面临行政处罚甚至刑事追责,助力企业合规运营。
|
12月前
|
开发框架 JavaScript 前端开发
精选HTML、JavaScript、ASP代码片段集锦
这些代码片段代表了HTML, JavaScript和ASP的基本应用,可被集成到更复杂的项目中。它们注重实用性,并且易于理解,旨在帮助开发者快速开始项目构建或进行学习。尽管ASP不如其他服务器端技术(如Node.js, PHP, Ruby等)现代,但它在遗留系统中仍非常普遍,了解基础仍具有价值。
391 14
|
机器学习/深度学习 人工智能 自然语言处理
探索软件测试的未来:AI 驱动的自动化测试方法
【5月更文挑战第29天】随着人工智能(AI)技术的不断发展和成熟,其在软件测试领域的应用也日益广泛。本文旨在探讨 AI 如何改变软件测试的面貌,特别是自动化测试方法。我们将分析当前自动化测试的挑战,并介绍 AI 如何提供解决方案,包括智能化测试用例生成、测试执行优化、以及结果分析等。通过实际案例研究,我们还将讨论 AI 在提高测试效率、减少错误和提升软件质量保障中的作用。最后,文章将预测 AI 在自动化测试领域的未来趋势,并提出对测试工程师的建议。
|
XML 人工智能 文字识别
Mobile-Agent:通过视觉感知实现自动化手机操作,支持多应用跨平台
Mobile-Agent 是一款基于多模态大语言模型的智能代理,能够通过视觉感知自主完成复杂的移动设备操作任务,支持跨应用操作和纯视觉解决方案。
7094 10
Mobile-Agent:通过视觉感知实现自动化手机操作,支持多应用跨平台
|
负载均衡 算法 Linux
LVS+Keepalived:实现高效软负载均衡的利器
本文介绍了如何使用LVS(Linux Virtual Server)和Keepalived搭建高可用负载均衡集群。LVS通过不同调度算法将请求转发给后端服务器,而Keepalived基于VRRP协议实现服务高可用,避免IP单点故障。具体步骤包括环境准备、安装配置ipvsadm和Keepalived、启动服务及测试。文中还详细解释了配置文件中的关键参数,并提供了故障转移测试方法。最后,文章简要对比了软件、硬件和云负载均衡方案的特点,帮助读者选择合适的负载均衡策略。
2162 4
|
测试技术 开发工具 iOS开发
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
这篇文章是iOS自动化测试方案的第三部分,介绍了在没有MacOS系统条件下,如何使用WDA(WebDriverAgent)结合Python客户端库facebook-wda和tidevice工具,在Windows系统上实现iOS应用的自动化测试,包括环境准备、问题解决和扩展应用的详细步骤。
4419 1
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
|
监控 关系型数据库 MySQL
Sonic 开源移动端云真机测试平台 - windows系统下的sonic快速部署演示
Sonic 开源移动端云真机测试平台 - windows系统下的sonic快速部署演示
1458 0
Sonic 开源移动端云真机测试平台 - windows系统下的sonic快速部署演示

热门文章

最新文章