通过长时间的爆肝,Sonic 迎来了第一个版本!
如今,自动化测试、远程控制等技术已经逐渐成熟。其中 Appium 在自动化领域可以说是领头者,STF 则是远程控制的始祖。很久前就开始有了一个想法,是否可以在一个平台上,提供解决所有客户端(Android、iOS、Windows、Mac、Web 应用)的测试方案,于是,Sonic 云真机测试平台由此诞生。
Sonic 当前的愿景是能帮助中小型企业解决在客户端自动化或远控方面缺少工具和测试手段的问题。
如果你想参与其中,欢迎加入!💪
如果你想支持,可以给我一个 star。⭐
如果你想使用 Sonic 平台,可以加群咨询相关内容
通过架构图可以看到,用户可以通过 Sonic 平台,轻松访问跨网段的 Agent 下的设备,执行远控或测试,如果公司资金充足的情况下,全球分布多个机房是 ok 的,这样可以满足部分公司有海外业务测试的需求。
为了应付中小企业有可能扩大使用的场景,后端选用了 Springcloud 作为分布式集群基础,使用了 redis、rabbitmq、mysql 作为中间件。
上图忽略了部分线,不然看起来太乱了。
所用框架比较多,不一一列举了。
Vue 推出 3.0 版本啦!Element 也随之推出 Element-plus,我怎么能放过呢?马上使用起来!
在我这边,用户的交互与体验大于一切,因此我会花比较多时间在前端的 UI 与交互的打磨,前端会持续更新以及听取大家的建议(当然功能也很重要,但是前端的功能与 Bug 会优先处理)
从基础通信架构图我们得知,所有 Agent 端都是需要跟 sonic-server 通信的,往下是跟连接的设备进行通信的。所以 Agent 端可以说是执行机。
Agent 通过图中的方式与设备进行交互,同时自身加入了图像算法与 webSocket 服务。
过去,我们部署 UI 自动化是一件非常困难的事情,现在,sonic 平台整套都可以使用 Docker 一键部署!
大家可以直接去开源项目链接,拷贝 docker-compose 文件
Windows、Linux 或 Mac 都一样,下面 Windows 举例:
准备:Docker 环境、docker-compose
1、在 D 盘新建 sonic 文件夹
2、创建 logs、keepFiles、imageFiles、recordFiles 文件夹
3、从这里将示例的配置文件拉到本地,这里为止,你的项目目录应该是这样的
4、进入 config 文件夹,修改 jdbc-prod.yml 的 mysql 配置(host,账密、数据库名)
5、修改 redis-prod.yml 的 redis 配置(host,数据库)
6、修改 rabbitmq.yml 的配置(host,账密,vhost)
7、返回上一级目录
8、新建 docker-compose.yml 文件,文件内容复制这里的
8、在 当前目录(sonic/)下执行
docker-compose pull
检查镜像都下载好了,就可以执行
docker-compose up -d
9、首次启动只有 eureka 或 bus 启动完成,大概一分钟后再次执行步骤 8 的指令就可以了,启动完后因为 eureka 的机制,服务发现需要一段时间,大概五分钟后就能互相发现服务了,未启动完接口我做了熔断机制,可以不用太担心。
docker pull zhouyixun/sonic-client-web
docker run --name sonic-client-web -d -p 3000:80 sonic-client-web:latest
如果 sonic-server 已经部署好了,那么访问 localhost:3000 就可以看到前端页面了。(不推荐 Docker 部署是因为镜像包含 nginx 服务在里面,如果公司内部已经有 nginx 服务,那么推荐您使用以下方式)
1、去这里将前端项目 clone 下来
2、执行
npm install
npm run build
3、打包完毕后会生成一个 dist 文件夹,将 dist 文件夹丢到 nginx 的目录就可以啦,一般可以给运维或者开发小哥处理,nginx 的配置也可以在项目根目录的 xginx.conf 有示例
4、如果你希望自己打包一个镜像,可以将 Dockerfile 和 nginx.conf 文件复制到 dist 目录下,执行
docker build -t 镜像名 .
记得最后面有个.
然后再用 Docker 的方式运行即可。
提示 一般后端 api 暴露在 8094 端口,如果前端想更改,在 src/http/axios.js 更改 baseUrl 即可
部署前,需要前去前端页面【设备中心】的【Agent 中心】添加 Agent。
记住下面的 AgentKey,后续部署会使用到。
注意 因为测试设备有限,Docker 版没有经过完全测试,出现 Bug 的话大家记得提 Bug
Windows、Linux 或 Mac 都一样,下面 Windows 举例:
1、环境准备:
2、在 D 盘新建 sonic-agent 文件夹
3、去这里 拉下项目,将 mini、language、chromeDriver 三个文件夹复制到第二步的文件夹内
4、去这里 找到符合你部署平台的 jar 包下载,然后复制到第二步的文件夹内,此时,你的文件夹应该是这样的
5、在当前目录执行
java -jar -D{变量1} -D{变量2} sonic-agent-windows-x86_64.jar
需要什么变量 点击这里 查看,SONIC_AGENT_KEY 就是部署前在前端生成的 key,填入即可。局域网部署的话,SONIC_AGENT_HOST 记得修改为内网 ipv4 地址。
因为国内部分厂商安装 apk 时,需要输入密码,因此我这边做了一个安卓服务,需要输入密码时会自动输入前端设置的密码。
点击这里 下载安装即可,然后在辅助功能开启,不杀掉就行,如果您发现您的系统不可用,欢迎反馈
欢迎大家进群讨论,但是记得小小支持,star 一下哦,这将是我前进的动力
群二维码
个人微信号
非常好用 更新速度也挺快
赞
已经开始在公司进行环境搭建,准备自己摸索一下。感谢开源!
亲身体验 效果不错.
这里回不了帖
请教楼主,是否支持 flutter App?
看了一下单机版的代码,不太理解 DAO 层是如何操作数据库的,有没有大佬帮忙解释一下
收藏,学习,想落地
就是连本地的
这个 UI 自动化可以连接本地的手机吗?对本地手机做远程管理吗?
学习一下
佩服楼主倾注的热情
先收藏在学习