最近几年,移动互联网高速发展,现在我们已经可以"随时、随地、随心"地享受到互联网给我们生活带来的改变。比如:手机淘宝上随时可以购物,滴滴一下司机就到楼下来接你等等。
据QuestMobile数据统计,截止到2017年12月,中国移动互联网用户数已经上升至10.85亿。移动支付用户规模从2016年的5.78亿增加到7.26亿。移动互联网,已经覆盖中国绝大部分的人口。
但是,整个智能手机市场,呈现高度的碎片化。安卓有600多款机型,iOS有70多款机型,总计在700款机型左右。如何保障应用在700款不同机型、不同分辨率、不同操作系统版本上的质量,对任何一家,APP在百万级别以上规模的公司,都是巨大的挑战。
如何快速的覆盖大部分机型,保证机型的兼容、稳定?如何在上线前,快速的实现冒烟测试,回归全部的功能?这些都是依靠几个人工,无法解决的问题。借用MQC测试平台,能很好的解决这一问题。
而在通常的第三方测试平台,常见的兼容性测试比较容易。但是,当遭遇到功能测试后,由于业务的复杂性,测试业务更多的依赖人工写脚本来解决这一问题。有没有更好的办法,能改进功能测试,提升效率,降低成本呢?当然是有的,我们在MQC专有云测试平台内,提供了“二次开发”的能力,能有效改善在功能测试中的问题。
一、什么是“二次开发”?
“二次开发”是扩展平台的测试,满足自身特有的测试业务需要的能力,是对开发者的赋能。
“二次开发”本质是在复杂的的业务场景中,找到不变的内容,让客户能基于这些不变的内容,组合出自己的业务流程。
在公司内,使用第三方测试的人员,主要是测试人员和测试开发人员,都具备一定的写代码的能力,所以提供这样的扩展能力,能帮助相关人员进一步发挥自身的想象力,为公司的质量保障添砖加瓦。
那什么是变化中的“不变化”呢?列举如下:
(1)测试终端类型,比如是Android和iOS;
(2)测试参数设定,通常有文本输入、有限选择项目、文件等;
(3)流程设定脚本,包括启动的主脚本和其它具体执行的脚本,该部分需要客户写脚本;
(4)测试产生的数据结构,是可以相对固定的。
主要的难点,集中在流程脚本的书写。关于这一点,我们提供了一些脚本样例和脚本书写说明,帮助开发者快速上手。同时,我们也提供专家培训服务,手把手帮助一些开发能力较弱的团队尽快具备使用二次开发的能力。
我们设计的业务截图如下:
构建完成后,呈现出的提测效果图如下所示:
二、为什么需要“二次开发”?
提供给客户的测试能力,主要情况如下:
<p data-lake-id="d2ca2b13fbeecfcac68e0d0f49a6a776" style="font-size: 14px; color: rgb(38, 38, 38); line-height: 1.74; letter-spacing: 0.05em; outline-style: none; overflow-wrap: break-word; margin: 0px;">(1)Android平台包括兼容、功能、深度性能测试;</p> <p data-lake-id="5c1f1fc241ea5c39ef70c3209b31efae" style="font-size: 14px; color: rgb(38, 38, 38); line-height: 1.74; letter-spacing: 0.05em; outline-style: none; overflow-wrap: break-word; margin: 0px;">(2)iOS包括兼容、深度性能测试.</p>
但是这些能力,是比较通用的能力。对于特殊的业务需求,也有办法可以进行满足,但是体验还不够好。
2.1、自定义测试流程
用户可以根据自己的业务情况,对手机进行完全的控制。比如,借助系统自定义完成:安装-启动-运行-静默-运行-静默-卸载的流程。
这样可以大大提升专有云测试系统,对实际更为复杂的用户场景的覆盖。
而如果是使用已经定义好的自动化测试,很难做到对该场景的覆盖。
2.2、自定义测试步骤
用户基于自身业务需求,可以实现对常见测试步骤的封装,通过脚本语言来自定义测试步骤。
<li data-lake-id="92f5bd362f53ac1ee7b9abe1d6945876">案例1:网络环境覆盖测试</li>
<li data-lake-id="c2b575c7250da21f24fa964b96c9b724">如果用户想要测试一个场景:安卓平台,各种网络环境下(2G、3G、4G、WIFI),提交服务实名认证的流程。</li>
方案:用户可以自定义测试流程,对4种网络环境,直接创建四种任务即可。不需要在脚本里面,进行各种判断操作,可以基于交互操作页面,完成对功能的测试。
而如果是采用功能测试,就需要指定参数,改几次脚本,测试任务管理上,也比较麻烦。当把这些测试流程中的变量,变成交互元素后,能很好的改善使用的体验。
<li data-lake-id="886b113641cad83eea00fbb8b5f0cd74">案例2:登录流程定制化</li>
借助自定义测试步骤,可以对常见账号登录进行定制化。比如,整体步骤可以抽象后,定制化为:划过应用首屏引导-点击立即登录-输入账号-查询验证码-输入验证码-点击登录。
2.3、方便企业集成融合到中台
稍微大一些的企业,都有自己的业务中台,整体管控所有的业务情况。而移动测试专有云,作为第三方服务,通常提供给客户都是独立管理,独立控制。这初看起来,没有什么奇怪,但是却破坏了公司业务的整体性,不方便用户管理。
基于客户的需要,我们阿里云MQC测试平台,提供了各种API接口,方便企业打通跟移动测试专有云的服务,具体如下:
(1)任务调度,包括提交测试、任务结果筛选等;
(2)设备管理,基本的设备信息、设备筛选、设备释放等;
(3)报告管理,主要是测试的结果报告数据;
(4)脚本管理,创建脚本、更新脚本等。
通过以上三个方面的赋能,可以更好的发挥MQC移动测试平台的能力,更好的为企业和开发者服务,降低成本提升自动化测试的效率。
移动测试专有云服务介绍:地址
钉钉搜索35248489,加入阿里云云原生应用研发平台EMAS技术交流群,探讨最新最热门的应用研发技术和实践。(或钉钉扫码加入)