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