• SoloPi:支付宝开源的 Android 专项测试工具的介绍与快速上手


    背景介绍

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

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

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

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

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

    移动测试时代发展

    移动测试1.0

    探索期

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

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

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

    移动测试2.0时代

    平台化、服务化

    • 一站式专项测试体验
    • 设备利用率提高
    • 设备集中管理

    移动测试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 的执行能力。

    录制回放

    录制回放-方案

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

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

    录制回放-控件查找

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

    回放能力

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

    录制回放更多功能

    一机多控

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

    性能测试-常规性能指标

    性能测试-移动Lighthouse

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

    移动Lighthouse-方案

    案例实操

    录制和回放

    性能数据查看

    总结

    Soloπ与Tencent GT

    产品

    自动化测试

    专项测试

    一机多控

    接入成本

    Soloπ(仅Android)

    支持,可在设备上快速完成自动化用例录制,支持编辑

    支持监控CPU、内存、响应耗时、帧率、电池、网络、启动等性能指标,并能够对CPU和内存进行模拟施压

    支持

    安装一个apk即可

    GT(iOS&Android)

    不支持

    在soloπ的基础之上,还支持卡顿代码调用栈、页面加载速度、页面布局渲染速度、IO使用情况、分线程CPU时间片统计

    不支持

    需要app集成GT sdk

    使用指南参考

    初次使用: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

    SoloPi在XX项目(实际项目)中的适用情况

    优点

    缺点

    建议

    1.录制回放。

    2.一机多控。

    3.性能测试。

    4.稳定性测试。

    1.测试的软件特性决定了我们不能脱离于PC的交互来测试,缺少PC端预期结果的比对。 

    2.脱离于服务端和脚本控制的自动化场景是不是我们目前需要的 

    3.工具的开源时间才1个多月,很多功能都不稳定,而且还只是部分开源,针对兼容性的多机互控部分并没开源。 

    1.性能数据部分的数据采集 。

    2.录制用例转Appium脚本,提高自动化脚本编写效率。

    3.部分简单功能走查/稳定性测试。

    参考文档:

    https://testerhome.com/topics/19832           

    https://testerhome.com/topics/19950

  • 相关阅读:
    基于结构化平均感知机的分词器Java实现
    HanLP分词命名实体提取详解
    [英语学习]王秒同学《21天TED英语精练团》
    [不好分类]转帖:好好说话是个“技术活”(李笑来说话太直了?)
    [英语学习]3招速成英语发音 背景音乐和学习随感
    [读书笔记]《番茄工作法图解:简单易行的时间管理方法》
    [英语学习]给宝宝的英语原版资源
    [办公自动化]如何判断服务器是否开放某端口
    [他山之石]Google's Project Oxygen Pumps Fresh Air Into Management
    [读书笔记]云计算时代的网络,读《腾云,云计算和大数据时代网络技术揭秘》
  • 原文地址:https://www.cnblogs.com/haixianglan/p/13942907.html
Copyright © 2020-2023  润新知