[录制, 性能采集, 一机多控]
SoloPi是阿里在移动端上一个无线化、非侵入式、免 Root 的 Android 自动化工具,公测版拥有录制回放、性能测试、一机多控三项主要功能,能为测试开发人员节省宝贵时间。
首次使用
PC端android环境的准备
官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html
选择对应平台安装包,按提示一步步安装即可
为了配置JDK的系统变量环境,我们需要设置三个系统变量,分别是JAVA_HOME,Path和CLASSPATH。下面是这三个变量的设置
- JAVA_HOME 先设置这个系统变量名称,变量值为JDK在你电脑上的安装路径:C:\Program Files\Java\jdk1.8.0_211。创建好后则可以利用%JAVA_HOME%作为JDK安装目录的统一引用路径
- PathPATH 属性已存在,可直接编辑,在原来变量后追加:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
- CLASSPATH 设置系统变量名为:CLASSPATH 变量值为:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
- 配置Andriod环境变量
- 下载安装Android SDK:http://developer.android.com/sdk/index.html
- 新建一个环境变量,变量名:ANDROID_HOME,变量值:D:\adt-bundle-windows-x64\sdk(以你安装目录为准,确认里面有tools和add-ons等多个文件夹),点击确认
- 在用户变量PATH后面加上变量值;%ANDROID_HOME%\platform-tools;点击确认即可
- 验证是否安装成功:打开终端,输入adb version,可正常返回版本信息
手机端环境准备
安装包的获取
- 方式一:官方发布的版本
https://github.com/alipay/SoloPi/releases
附上当前最新版本apk
- 方式二:clone源码自行编译包(推荐有开发能力的同学)
源码地址:https://github.com/alipay/SoloPi
手机权限获取
- 开发者选项设置
- usb调试,usb模拟点击(vivo手机)或usb安全模式(小米手机)开关的开启
- 首次启动sd卡读写权限的获取(并非所有手机都有这个弹框)
- adb权限
- 原理:在手机端,由于系统的权限管控,往往很难实现“控件获取”和“事件驱动”,SoloPi 通过Android 系统的无线调试功能实现了一套纯端的 SHELL 执行能力,能够在 Android 系统上执行 adb 相关命令,这块儿的具体介绍可以参考《SoloPi:支付宝开源的 Android 专项测试工具》
- pc端打开终端输入 adb tcpip 5555
录制回放
录制回放功能基于 AccessibilityService、ChromeDevToolsProtocol、图像识别三种模式实现精确查找,可以在设备本地实现回放,也可以转换为 Appium/Macaca 等框架的脚本,对接云测平台。另外,为了降低用例维护的成本,我们在端上还提供了用例编辑、流程控制的功能。
- 录制回放操作说明:https://github.com/alipay/SoloPi/wiki/RecordCase
更多功能解锁
- 用例导出、导入、删除:https://github.com/alipay/SoloPi/wiki/RecordCase
- 用例编辑:https://github.com/alipay/SoloPi/wiki/CaseEdit
- 常见操作说明(一机多控通用):https://github.com/alipay/SoloPi/wiki/Actions
一机多控
SoloPi在录制回放能力的基础上实现了一套兼容性测试的解决方案。在录制回放的场景中先是在一台设备上记录了用户的操作,然后再在任意一台设备上实现操作的回放。如果把场景扩展到多台设备上,就可以实现通过一台设备操控多台设备,我们把这套功能称为“一机多控”。具体说来就是主机与从机建立 Socket 连接,然后在主机上将用户的操作实时发送到各个从机,在从机上完成操作的回放。
操作说明:https://github.com/alipay/SoloPi/wiki/OneToMany
性能工具
常规性能指标获取
SoloPi 支持 CPU、内存、fps、流量等常规指标的实时获取,同时支持将性能数据记录下来,存储到本地并通过报表形式展示。SoloPi 还提供了数据上传的功能,可以将数据发送给服务端做进一步的处理。整套性能工具支持手动触发和广播触发,可以和自动化测试轻松打通。
- 操作说明:https://github.com/alipay/SoloPi/wiki/Performance
响应耗时计算
基于录屏分帧能力实现了一套计算接近用户体验的响应时间的方案。具体的说,在开启录屏后,SoloPi 会基于 ADB shell 的 get event 命令监听屏幕的点击事件,将其作为计算响应耗时的起点,当录屏结束后,SoloPi 会从后向前倒序对视频进行对比,查找出界面趋于稳定的时间点,并作为计算的终点,二者相减就是响应耗时。
- 操作说明:https://github.com/alipay/SoloPi/wiki/Performance
常见问题
- 参考文档:https://github.com/alipay/SoloPi/wiki/FAQ?_Solopi.zip
往期好评
- Gitlab 一个涵盖项目管理、代码仓库、持续集成的高可用系统
- 如何通过GoReplay进行线上流量录制与回放
- 基于docker容器技术的测试平台解决方案(dap)
- 谈谈测试服务化
- Python简介及其环境搭建
- 基于puppeteer的前端性能测试解决方案
- UnitTest:maven中使用Jacoco计算代码覆盖率
- 安全测试|移动端安全测试drozer
扫码关注如下公众号获取更多精彩好文哦: