51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4493|回复: 0
打印 上一主题 下一主题

[原创] mPaaS平台下的移动端自动化测试

[复制链接]
  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-5-27 10:51:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    移动开发平台(Mobile PaaS,简称mPaaS)是源于支付宝App的移动开发平台,为移动开发、测试、运营及运维提供云到端的一站式解决方案,能有效降低技术门槛、减少研发成本、提升开发效率,协助企业快速搭建稳定高质量的移动App。
      目前越来越多的应用基于MPaaS平台开发,对于测试人员而言,这带来了全新的挑战。本文将聚焦于mPaaS平台下的移动端自动化测试的体验。

      一、mPaaS应用的自动化测试体验
      本次测试的软件为某款移动办公型App,它的安卓端和苹果端均基于mPaaS平台开发, H5使用了Kylin框架。主要应用了Nebula H5容器、定位、社交分享、扫码及部分UI组件。App的开发和维护周期长,需要频繁进行回归测试,而自动化测试可以大幅提升回归测试的效率,非常适合敏捷开发过程。同时,对于移动端应用测试,同样的测试用例需要在多个不同的 Android 或者 iOS 版本上执行,或者是同样的测试需要在大量不同的移动终端上执行,采用自动化测试,能极大程度节省人力、时间或硬件资源。
      本次录制的模块有五个,包含会议室预定模块(创建会议室、查询会议室、删除会议室、预定-审批通过会议室、预定-审批驳回会议室、预定-撤销会议室、修改会议室等),投票问卷模块(创建投票、投票预览、编辑投票、开启投票、结束投票、参与投票、投票结果统计审阅),社交圈模块(发表社交圈、删除已发布社交圈、社交圈点赞、社交圈取消点赞、社交圈评论、社交圈评论删除等),会议模块(创建会议、编辑会议、预览会议、会议授权、取消参会等),时光机模块(查看日程详情、更改日程、删除日程、拒绝日程等)。总共涉及苹果和安卓两套系统,脚本40余条,总脚本操作数1200余步。测试的模块选用社交圈模块。
      测试工具选择了Testin公司的TestinPro和TestinAI,两款工具采用了不同的自动化脚本录制方法,TestinPro是基于控件识别的录制,TestinAI是基于AI试别的录制。安卓端具体录制情况如下:手机型号:华为M6(TestinAI)、三星S8(TestinPro)。

      脚本名称:发布社交圈


      脚本名称:删除社交圈


      脚本名称:点赞和取消点赞社交圈


      脚本名称:社交圈评论和删除评论


      在录制这些脚本的过程中,TestinPro会经常出现录制时无法识别控件的问题,经过分析,初步判断是因为新页面出现后,旧页面并没有被dismiss掉,导致两个页面控件被叠加,上面的新页面成为了下面页面的蒙版,所以在识别控件时,可能识别了旧页面上的控件,导致录制失败。而TestinAI可以极大程度降低这一问题发生的概率,因为文字时常具有唯一性。
      同时,一些操作可以通过AI模式脚本语言简化步骤,例如界面需要滑动时,可以自行写“向左滑动,最多滑动3次”,而控件模式需要自己手动一次次划动屏幕,由于模拟器对滑动操作并不如真机敏感,导致经常出现划动失败,需要重新录制。
      综上对比可得出结论,无论在脚本编写用时和回放脚本用时上,TestinAI均全面领先,成功率和兼容性也均呈现显著优势。
      苹果端录制了一个脚本,具体结果如下:

      脚本名称:发布社交圈


      从表中可以看出,iOS在脚本的编写难度、用时和执行失败率上均高于安卓脚本, 同时在启动手机和安装应用速度上,也慢于安卓。由此可得,现如今mPaaS下的iOS自动化测试仍存在很大的性能瓶颈,TestinAI并没有解决这一问题。

      二、mPaaS应用的自动化测试分析
      作为一款纯mPaaS框架开发的App,在自动化测试上遇到了诸多挑战,TestinPro在安卓和苹果系统上均表现不佳,而TesitnAI虽然在安卓系统下表现较好,但是苹果系统下依旧表现差强人意。我认为这主要是两方面原因导致的:
      1.mPaaS平台下的应用集成了很多UI组件,像App中的定位、社交分享、扫码等功能包含的组件库众多,这对控件模式录制来说是巨大挑战,控件模式下,TestinPro需要在很短的时间内理清App的整体架构,提炼出页面相关的控件,根据用户操作,识别到对应的控件,这对于复杂结构来说很难做到百分百识别准确。同时,在多个页面叠加情况下,尽管测试人员选中了想要的控件,但由于实际排版中,该控件被其他控件遮盖,导致TestinPro无法抓取到该控件,从而录制失败。很显然,基于图像识别算法的TestinAI在面对这种复杂框架的情况下,要表现更好,其根本原因是TestinAI脱离了底层控件的限制,录制仅仅涵盖界面级。对每一个页面当成一张图片去分析,有深度学习的框架的加持,以及大量学习数据拟合的模型,识别效率和准确率产生了大幅度提高。
      2.mPaaS的iOS应用本身会存在一些缺陷。首先是UITouch捕捉失真问题:mPaaS框架创建的工程开发的手写板功能会出现明显的抖动,与原生相比,UITouch响应事件捕捉点数明显不足,线条粗细明显不一致。其次是微应用体系与H5 API配合时存在缺陷:项目中存在多个微应用时,在二级微应用内使用MPaaS提供的H5 API pop window时会退出所有微应用,且push window到第五级界面时存在明显性能瓶颈,UI渲染异常缓慢。这一现象会导致页面直接的跳转不连贯,直接影响录制脚本过程中的验证操作。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 05:49 , Processed in 0.062007 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表