本篇文章介绍一个阿里开源的框架:不用写代码的自动化工具SoloPi

目前 SoloPi 的部分源码已开源(项目地址:https://github.com/soloPi/SoloPi)

一、背景介绍

MTSC2019大会上,Soloπ算是一次正式的在公众前亮相。蚁金服的乐舟老师分享的议题《移动测试2.0+》里介绍的产品。       

此次分享的需求分析如下:       

1.为什么:了解业界新出自动化框架,增加技术选型和储备。       

2.是什么:Soloπ是一个无线化、非侵入式的Android自动化工具,公测版拥有录制回放、性能测试、一机多控三项主要功能,能为测试开发人员节省宝贵时间。开源地址:https://github.com/alipay/SoloPi      

3.怎么做:框架介绍、案例实操中具体介绍。

二、移动测试时代发展

1、移动测试1.0

探索期

优秀测试工具/框架涌现:Monkey、UiAutomator、Instruments 等官方提供的工具,业界还涌现了一批优秀的开源自动化测试工具/框架。

专项测试思路逐渐成型:在自动化驱动能力的基础之上,不仅可以实现基本功能的验证,还可以结合性能采集方案、遍历算法等实现各类专项测试的自动化。

单机部署测试环境为主:自动化测试的常见形态是在单机或本地少数几台 PC 上部署测试环境,再利用 Jenkins 等工具实现持续集成。

2、 移动测试2.0时代

平台化、服务化

  • 一站式专项测试体验

  • 设备利用率提高

  • 设备集中管理

 3、移动测试2.0+时代

  • 定制化IED,提升效率

  • 端测试方案:移动端“移动端”测

  • 方式灵活

三、无线专项测试方案 

四、 整体架构

 五、无线ABD方案

 对于 Android 自动化,ADB shell 的执行能力是一切的基础。在 PC 上,通过 Android SDK 提供的ADB client 与同样运行于 PC 中的 ADB server 通信,再由 ADB server 通过 USB 与位于设备中的 Adbd 通信。要实现一套无线化的方案,必须要摆脱对 USB 线的依赖。好在 Android 系统还提供了一种基于 Socket 的 ADB 连接模式,既然是这样,那么只需要按照 ADB 通信协议在端上与本机的 5555 端口进行通信即可获得 ADB shell 的执行能力。

六、录制回放

1、录制回放-方案 

在录制过程中,Soloπ 会对用户的操作进行拦截,识别用户操作的位置,高亮当前操作的控件,记录用户当前要做的操作类型,在每一步操作后,将操作类型及目标控件的各种信息都记录下来。这里的控件信息包括控件的 ID、文字等基本信息,以及相对布局、截图信息等。

在回放时,Soloπ 会逐条解析之前录制的数据,通过智能查找算法,综合各种属性,定位目标控件,找到控件后,就会执行相应的操作,如点击、滑动等。在所有步骤执行后,会展示本次回放的结果,包括日志、截图等信息,作为本次回放的总结。

 2、录制回放-控件查找

 随着移动端动态化能力的稳步发展,越来越多的应用采用了 “Native + H5/小程序” 这种混合开发的方案。再考虑到近年来手游行业的飞速发展,手机游戏自动化测试的需求也越来越多。为了尽可能的适配各种场景,Soloπ 提供了三种查找模式:

 3、回放能力

通过 Soloπ 录制的用例会以 JSON 的形式存储起来,用例不仅可以在设备本地直接回放,还可以通过 Soloπ 的解析器将用例转换为 Appium、Macaca 等目前主流自动化测试框架的脚本,轻松打通云测平台。另外,得益于文本抓取和图像识别能力,Soloπ 还实现了在 Android 端录制一遍用例,生成的脚本能够同时在 Android、iOS 双端回放的能力。

 4、录制回放更多功能

5、一机多控

 主机与从机建立 Socket 连接,然后在主机上将用户的操作实时发送到各个从机,在从机上完成操作的回放。

 七、性能测试

1、性能测试-常规性能指标

2、性能测试-移动Lighthouse

 H5/小程序等技术在移动应用中的占比越来越高,如何测试这类应用的性能成为了一个新的课题。接触过前端性能的同学都知道,Lighthouse 是前端性能测试的利器,但是它无法在手机上直接应用。而 Soloπ 所做的,就是基于 CDP 协议,在客户端中实现了一套 Lighthouse 性能测试工具。

 3、移动Lighthouse-方案

八、案例实操

1、录制和回放

2、性能数据查看

九、总结

1、Soloπ与Tencent GT

 2、使用指南参考

初次使用:https://github.com/alipay/SoloPi/wiki/FirstUse

录制回放:https://github.com/alipay/SoloPi/wiki/RecordCase

一机多控:https://github.com/alipay/SoloPi/wiki/OneToMany

性能工具:https://github.com/alipay/SoloPi/wiki/Performance

响应耗时:https://github.com/alipay/SoloPi/wiki/Performance

响应耗时计算工具 用例导出、导入、删除:https://github.com/alipay/SoloPi/wiki/RecordCase

用例列表 用例编辑:https://github.com/alipay/SoloPi/wiki/CaseEdit

录制回放与一机多控功能介绍:https://github.com/alipay/SoloPi/wiki/Actions

常见问题:https://github.com/alipay/SoloPi/wiki/FAQ

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐