Soloπ| 支付宝开源Android专项测试工具尝鲜

[录制, 性能采集, 一机多控]

SoloPi是阿里在移动端上一个无线化、非侵入式、免 Root 的 Android 自动化工具,公测版拥有录制回放、性能测试、一机多控三项主要功能,能为测试开发人员节省宝贵时间。

首次使用

PC端android环境的准备

  • 安装JDK

官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html

选择对应平台安装包,按提示一步步安装即可

  • 配置Windows上JDK的变量环境

为了配置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
  • usb调试权限获取
  • 悬浮框权限

录制回放

录制回放功能基于 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

往期好评

原文发布于微信公众号 - 测试邦(testerbang)

原文发表时间:2019-08-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券