MAC系统本地搭建sonic云真机自动化平台

一、平台介绍

官方网址:Sonic | Sonic - 开源云真机平台

目前是经历过的最好用的一款移动端自动化测试,主要是对代码没要求,部署好可以直接使用,支持手机Android端、IOS端、webView、小程序自动化测试

二、平台搭建

1、硬件环境

  1. mac笔记本电脑
  2. 真实的手机,用于测试

2、Docker安装

(1)安装 Mac 版 Docker,可以通过brew命令行安装

(2)打开命令终端直接输入: brew install --cask --appdir=/Applications docker

         直到看到命令执行安装成功

遇到的问题:安装的时候提示报错信息如下

解决方式:mac电脑上已经安装了3.8的版本,卸载后重新安装3.9(python-3.9.6-macosx10.9)的版本,问题就解决了,。

(3)安装完成后,打开应用文件夹(可能会自动打开)并且双击 Docker 应用图标来启动 Docker。可能需要确认是否运行,因为这是从互联网下载的应用程序。

Docker daemon 进程启动。

一个活动的鲸鱼图标会在屏幕上方状态栏中出现。一旦 Docker 成功运行,鲸鱼图标就静止了。可以单击鲸鱼图标来管理 DfM。

3、安装docker-compose

docker-compose项目是docker官方的开源项目,负责实现对docker容器集群的快速编排。

docker-compose的工程配置文件默认为docker-compose.yml。可以通过环境变量COMPOSE_FILE -f 参数自定义配置文件,其自定义多个有依赖关系的服务及每个人服务运行的容器。

输入命令:

pip3 install docker-compose

出现如下,代表已经可以正常安装了,直到安装成功

4、安装数据库

(1)使用docker方式安装mysql数据,如果有已安装好的mysql数据库可以忽略,但是需要注意mysql的版本是5.7

(2)安装命令如下:

-v: 数据挂载地址

-e: 环境参数,数据库密码

docker run --name some-mysql -v /Users/admin/Documents/qamysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=XXX -p 8888:3306 -d mysql:5.7

最终放在上面的路径中后显示如下:

(3)由于mysql默认不支持远程地址访问,需要手动修改参数,docker客户端已经启动后,进入容器命令:

docker exec -it be16cf2d832a9a54ce42144e25f5ae7cc66bccf0e003837e7b5e /bin/bash

(4)遇到的问题:

一开始没有弄明白上面的字符串,哪里来的,后来才知道上面一长串的字符串是在安装mysql,刚开始的时候自动出来的,如下,复制后执行以上命令

(5)修改访问权限,注意下面的密码要与前面设置的一致:

mysql -p

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '111' WITH GRANT OPTION;

flush privileges;

(6)提前创建需要用到的数据库sonic,避免后面程序启动失败

mysql> CREATE DATABASE IF NOT EXISTS sonic

    -> DEFAULT CHARACTER SET utf8

    -> DEFAULT COLLATE utf8_general_ci;

(7)遇到的问题:

上面执行的时候有的文档语言用的是这个:utf8_chinese_ci,一直报“ERROR 1273 (HY000): Unknown collation: 'utf8_chinese_ci',改成用上面命令中utf8_general_ci;的就不再报错了

5、前后端部署

(1)sonic项目经过不断迭代开发,功能也非常强大,为了考虑到性能、扩展性,也引入了Eureka、gateway等组件,所以部署也相对复杂一些。为了能快速上手部署,在sonic的官网推荐使用docker-compose部署前后端,只需要一行命令就可以完成部署。

(2)首先,下载最新版本的 zip 文件到任意目录。zip包下载地址如下:

https://gh.flyinbug.top/gh/https://github.com/SonicCloudOrg/sonic-server/releases/download/v2.0.5/sonic-server-v2.0.5.zip

解压zip,总共如下文件

无需改动docker-compose.yml文件,如下是docker-compose.yml的部分截图,可以看到已经编排好了容器的启动顺序,请勿修改容器顺序(仅仅查看,无需任何改动),否则会导致启动失败,进入对应的目录,

输入:cat docker-compose.yml,或者进入文件夹以文本编辑方式打开

(3)更改.env中的信息

进入sonic文件夹目录更更改.env中的信息(其实sonic文件夹有个隐藏的文件 env,可以把它给显示出来,怎么显示网上自行百度),需要注意是的ip地址需要改成本地ipv4地址,切勿使用127.0.0.1地址

输入:vim .env出现如下,进行编辑更改

(4)接下来最关键的一步,sonic-server-v2.0.5-2目录下执行以下指令:

docker-compose up -d

docker-compose会先下载镜像到本地,使用的阿里云加速镜像,下载速度还是挺快的

到此,前后端部署完毕!,因Eureka心跳机制,刚启动完毕微服务间互相访问需要3~5分钟,请耐心等候。

(5)访问页面

等待5分钟后,打开浏览器访问: http://localhost:4000,或者自己的IP地址访问,如果能看到如下页面说明前后端部署正常,我们可以注册一个账号去登录。

6、agent部署

因为sonci本身的架构是分布式的,类似jenkins的master和slave方式。agent可以部署到不同的电脑上作为分布式节点,一个agent最多可以带50个移动设备。agent支持两个部署方式:

6-1、Docker部署

首先,下载最新的docker-compose.yml,参考注释修改里面的内容。(注意:里面配置的sonic版本一定要跟前面下载的sonici版本一致)

https://gh.flyinbug.top/gh/https://github.com/SonicCloudOrg/sonic-agent/releases/download/v2.0.5/docker-compose.yml

需要在docker-compose.yml文件中配置SONIC_SERVER和AGENT相关参数

另外就是需要替换为前端新增Agent生成的key,从部署好的前端界面【设备中心】的【Agent中心】新增Agent,记录Agent的Key

最后执行启动命令:

docker-compose up -d

6-2、jar方式部署(强烈推荐)

(1)注意JDK的安装一定要是15才行,可以前往如下安装下

https://www.oracle.com/java/technologies/javase/jdk15-archive-downloads.html

or

https://www.123pan.com/s/94VA-3GEVv

下载完成后,解压安装包

sudo tar -zxf /Users/admin/Documents/software/jdk-15.0.2_osx-x64_bin.tar.gz -C /Library/Java/JavaVirtualMachines/

(2)接下来,需要下载安卓SDK设置到系统环境变量,命名为ANDROID_HOME。打开SDKManager,下载platform-tools。确保platform-tools目录存在,adb指令可用。将ANDROID_HOME、ANDROID_HOME/platform-tools添加到系统PATH中。

因为之前已经装过Android Studio了,直接打开Android Studio去里面安装SDK,查好目录,自己存放的位置

注意配置JAVA_HOME的环境变量

(3)选择 PC对应的平台zip 下载并解压到任意目录(注意下载的版本号一定要与前面server的一致)

https://gh.flyinbug.top/gh/https://github.com/SonicCloudOrg/sonic-agent/releases/download/v2.0.5/sonic-agent-v2.0.5-macosx_arm64.zip

解压后的mini、config、plugins文件夹与jar同级

赋予工作目录 所有权限:sudo chmod -R 777 sonic-agent-v2.0.5-macosx_arm64

修改config文件夹中 application-sonic-agent.yml 的配置信息,保存

(4)进入sonic目录执行启动命令:

java -Dfile.encoding=utf-8 -jar sonic-agent-macosx-x86_64.jar

如果在控制台看到server auth successful关键字说明连接server成功,把手机查到agent端电脑上,使用adb devices命令确认下是否连接成功。

此时在控制台如果看到手机设备online关键字,说明手机设备上线。

在前端的设备中心可以看到设备情况

点击马上使用可以看到如下界面,就可以操作使用了

至此本地搭建环境完成,可以开始我们的移动端自动化脚本编写

  • 26
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值