SoloPi [Soloπ] 我的 Soloπ体验尝试,录制回放篇
0x01 关于Soloπ
MTSC大会上,Soloπ算是一次正式的在公众前亮相。
可能有许多参过会的同学都不一定知道Soloπ是什么,我一开始也没反应过来,其实这个是蚂蚁金服的乐舟老师分享的议题《移动测试2.0+》
里介绍的产品。
简单的来说,Soloπ是一款可以让你脱离PC,仅仅只是在手机里,就能帮助你完成自动化测试、专项测试以及一机多控能力的产品。听起来是不是跟早几年腾讯的GT很像?后面我会简单跟腾讯GT(随身测)做个对比。
脱离PC完成自动化,这个概念其实并不新颖了,许多手机厂商自己的测试应该也有不少类似的效果,对于一般用户来说,也有一些类似于按键精灵的软件,有些需要root,也有不需要root的。比如说像AutomationCliker
和MacroDroid
等软件,有兴趣的可以去搜索一下,多数需要付费才能体验完整的功能。
但是SoloPi有点不一样的是,它的定位不是简单的手机屏幕触控录制回放。而是把需要通过PC端Client来捕获元素,通过元素信息来进行自动化的一套完整移植到了手机端内。并且在此基础之上,拓展了一机多控等功能。
具体原理就不解释了,可以去看看Soloπ官方发的帖子,里面有很详细的介绍。
0x02 Soloπ与Tencent GT
产品 | 自动化测试 | 专项测试 | 一机多控 | 接入成本 |
---|---|---|---|---|
Soloπ (仅android) | 支持,可在设备上快速完成自动化用例录制,支持编辑 | 支持监控CPU、内存、响应耗时、帧率、电池、网络、启动等性能指标,并能够对CPU和内存进行模拟施压 | 支持 | 安装一个apk即可 |
GT(iOS&Android) | 不支持 | 在soloπ的基础之上,还支持卡顿代码调用栈、页面加载速度、页面布局渲染速度、IO使用情况、分线程CPU时间片统计 | 不支持 | 需要app集成GT sdk |
看完以上的表格,你就会明白,虽然都是打着场测的名号,但是它们完全不一样;
GT专注于性能场测,而Soloπ专注于自动化&一机多控,以及一些比较简单的性能采集;
GT相比于Soloπ在性能分析上能做得更加全面与深入,但是接入成本远比Soloπ要高;
但Soloπ在性能这一块,有一个模拟施压的能力,这个功能其实非常有用,能够模拟一些手机在高压场景下才会出现的问题。
说回Soloπ,我们用它的话,其实更多的是解决UI自动化问题,以及需要突击的施压场景。
接下来分享一些我在使用Soloπ的录制回放功能的一些体验感受。
0x03 使用体验
第一次玩的同学还是建议看一下Soloπ的官方文档,Soloπ文档还是很齐全的。
1.1 下载安装
- 点我下载Soloπ-v0.9.1
adb install Solopi.apk
2.1 录制回放
![]() |
![]() |
说实话,操作真的是非常简单:
- 打开Soloπ App
- 一系列授权操作
- 点击录制回放
- 选择被测App
- 设定用例名称和信息
- 开始操作
- 结束操作
- 选择用例回放
一系列操作下来,基本可以无脑完成。
而soloπ它本身也实现了99%Appium中的操作行为,你只需要在里面点按选择即可。(官方的文档已经很全了,我就不一一讲解步骤了)
基本上包含了:
- 点击动作
- 输入动作
- 滑动手势(包括控件滑动)
- 断言操作
- 截图断言(Unity以及其他游戏类框架,无法获取空间元素的,可以通过截图比较来操作)
- 这里其实有很多内容可以讲,通过截图断言其实真的可以解决许多问题,但是截图比较的有效性、准确性、兼容性是否能达标,我还没来得及去尝试,所以今天这个话题就不展开来讲了。
- 手机操作(音量、home键、截图等等)
- 执行adb命令
- 等待操作
- 弹窗自动处理(这个很重要,能够解决不同手机的权限弹窗、异常弹窗处理)
- 性能录制
- 响应耗时计算
- scheme跳转
- 清理数据等等等等等
基本上是你能想得到的都有。
2.2 用例逻辑控制
如果说你想像写代码一样,写if/else
, 写while
循环的话,Soloπ也支持的。但是目前的版本好像不能在录制的时候就补这个逻辑。
你必须录制完一个流程后,到用例编辑功能页里去,才能加入if/else
和while
等逻辑。
别问我怎么进用例编辑页,我一开始也找了好一圈。用例编辑页只有【全部用例】的列表下,才能操作。具体请看官方的用例编辑教程吧
非常详细了,我就不一一列举咯!
但是看完教程,我不禁沉思,我这样一套下来,花费的时间其实还蛮长的,如果说你要编写大量交互复杂的用例,这个方式其实是要慢于在电脑写脚本的。
不过对于UI自动化测试,我相信这个已经足够使用了。
2.3 用例导出以及导入(用例分发)
做UI自动化的一个比较大的目的,就是为了能够在不同的手机上进行回归测试。那我们在一个手机上录制的用例,如何同步到其他设备进行运行?
其实在《移动测试2.0+》
里的大图里,有一部分是讲到 Soloπ手机端跟云端通信,将用例同步到云端,云端再下发给其他用例。这个是一个比较好的方案,我相信蚂蚁内部应该也是这么来走的。
但是开源出来的只有一个app,如果说,想要实现大图里的这个云端管理流,还得配合你们公司的基础建设来二次开发实现。
所以目前在仅有一个apk的情况下,你想把你的用例分发到其他设备,还是老老实实得一个一个拿出来,再一个一个导入到其他手机里去把。
导致我们现在的用例导出导入流程是:
- 进入全部用例页面
- 长按用例A
- 选择导出用例
- 此时用例会被导出到设备的
/storage/emulated/0/solopi/export/
目录下 - 通过adb命令将用例获取到当前目录export下
adb -s device_id_1 pull /storage/emulated/0/solopi/export/ ./export/
- 再将用例推送到device2里去
adb -s device_id_2 push ./export/ /storage/emulated/0/solopi/import/
- 然后在device2中打开soloπ,进入设置页面进行导入操作
![]() |
![]() |
说到这,要给个差评,现在用例只支持单个用例导出,如果录制了多个用例,必须一个一个来手动在app里导出,然后你才能拿到导出后的用例文件。官方可以早点把批量导出的功能提供给用户。哈哈。
2.4 录制回放的报告
关于报告这一块,其实soloπ做得挺好的,在一个小小的手机屏幕中,能够详细得看到每一个步骤运行的结果,结构都比较清晰,用例截图、运行日志都比较完善,易于分析👍。
2.5 录制回放的效果
录制回放的产品有不少,但是真正做得好的没几个。
早期的一些录制回放,要么基于坐标,兼容性差,没有可延续性;
要么必须依赖PC,依赖许许多多组件,无法真正的『移动端测试』;
而Soloπ正是通过通过无线ADB+AccessbilityService等能力,将这套流程正式移动端化并且产品化做得都还挺不错。
体验和demo效果真的是挺震撼的,非常不错。
但是对于截图断言等一些深入些的功能还没来得及体验,等体验后,如果有尿点我会回来吐槽的,哈哈。
0x0x
对于需要这种脱离USB线的模式的团队,Soloπ是非常值得尝试的。且开源的soloπ也可以进行二次开发,做云端对接等等,如果有比较好的编程能力且有这样的基础设施,基于Soloπ,能玩的东西也很多,正如 移动测试2.0+
里所勾勒的大图那样,真要把这个大图闭环了,那确实是2.0+。
下一次我会去玩一下模拟性能施压
的能力,看看是否真的能帮助我们的产品发现性能问题。
今天就先到这。有任何不对的地方请大家指正交流。谢谢阅读,回头见。