《云栖TechDay》第9期:移动时代的自动化测试

简介: 在4月9日的云栖TechDay活动上,徐达峰为大家分享了移动时代的自动化。达峰分享了支付宝团队自主研发的“Macaca自动化测试方案”,主要介绍如何覆盖业务、跨平台支持,如何玩转持续集成测试等,把积累的实战经验及目前对于移动领域测试的一些想法与大家交流。

49日的云栖TechDay活动上,徐达峰为大家分享了移动时代的自动化。

达峰分享了支付宝团队自主研发的“Macaca自动化测试方案”,主要介绍如何覆盖业务、跨平台支持,如何玩转持续集成测试等,把积累的实战经验及目前对于移动领域测试的一些想法与大家交流。

 

下面是现场速记内容整理。

 

 


移动互联时代的挑战

 

  • web演进速度越来越快,web端构建和工程化的速度也越来越快
  • 软件的版本分化越来越频繁
  • 场景越来越多且愈发复杂

怎么理解这个问题呢?

 

端在变革,每当一个交互方式出现时,新的入口往往随之诞生。目前来看,云的边界已经愈发清晰,端也越来越多元化,在未来,手机未必是主流设备,入口可能会在手表或者眼镜上和更充满想象的穿戴上。混合式的技术选型来为业务提供支撑。同时要注意的是,我们既要迎合技术栈的更新频率,又要迎合市场。

 


为什么要做自动化测试呢?

 

我们的测试方案和手段被透明化了。当一个APP的测试工程师不再接触这个业务时,如果你有自动化的方案,那么,所有的智慧或者解决问题的办法是可以被沉淀下来的。而且,做人工测试的时候,别人并不知道你的思路、手段,当自动化后,就变得公开透明了,会降低其他人再来接受这个业务测试的成本,而且我们可以保持、复用、甚至将它模块化或者数据驱动起来,这样可以更方便、更低成本的对产品质量做高质的覆盖。

   

自动化测试还在做一些靠人工没法完成的事情。如APP耗电量、性能、内存占用,我们可以通过自动化测试(耐久性测试、性能基准测试等)中了解,所以说自动化是专项测试的驱动器。

 


自动化的本质


自动化的本质是软件开发。首先面对的困难是版本差异,市面上安卓、iOS有多个SDK版本共存,操作系统的版本也不统一,软件包、WEB容器、APP自身都会有多个版本。其次,环境和配制差异也是要面对的,例如开发环境、测试环境、计算测试环境、Beta环境、灰度测试环境等。

 

 

我们需要一个闭环的、长效的质量保障。首先在研发阶段,它就可以通过自动化测试提供的工具覆盖产品,给产品写一些自动化脚本。接下来在持续集成阶段保证产品。当产品被释出去后的用户用环境是最至关重要的,需要有一个质量监控机制,可以及时发现产品中的质量问题,如果有需要可以做用户验收测试。

 

Macaca


Macaca概念模块

Macaca方案的理论基础是W3标准中的webderiver协议标准,把各种设备先通过这个协议标准抽象成一个常规浏览器。Nodejs是首要技术选型,它是跨平台的Web实时应用首选,事件驱动与非阻塞 I/O 模型使其轻量、高效,它繁荣和极速膨胀的生态也是非常庞大的。Macaca在使用者端会提供本地命令行工具和Web操作平台。

   

Macaca-client结构图

Macaca-client提供一体化的测试体验,还有可定制化和可扩展的API,面对不同的APP会有业务层面的分装,针对不同的APP会有可定制化的功能,并且零配置以降低大家使用成本。  

 

接下来要做数据集成,可以有多个结点扩展。为什么要自建CI呢?在建CI的时候参考了一些很优秀的CI系统,如Gitlab-CIJnekins-CITravis-CI,考虑到master有一定的适配成本,所以自建CI系统。它有什么功能呢?支持并发任务,同时还可以管理多节点,还会带Web平台集成,还有数据沉淀甚至生成月质量报表,为了便于传播和开发,Docker部署这样的一个系统。


最初的时候它就是一个单节点的master机器。比较重要的是实现进程控制、处理数据存档、实现任务调度。例如,当得知某些slave的内存用量和CPU使用率的时候,就可以占用一些比较空闲的、比较优质的slave资源来运行任务。slave能做什么呢?slave端本身是做配置管理的功能,把它当成模块集成进slave里,同时它还要集成测试框架,这就意味着我们每一个人的PC电脑都是一台slave,只不过现在有专门的slave服务器在运行而已。最终这个平台可以看到每个任务的通过情况、用力通过的百分比,现在我们可以初步的做一个无人职守的自动化的持续集成系统。


最终的平台框架如图所示,可以看到每个任务的通过情况、用例通过的百分比、slave的负载情况。我们的产品还运行出一些截图,在平台里可以看到我们的测试报告,如果测试报告使用截图功能,就会有大量的截图输出来,这样,我们便可以清晰的看到利用率和通过,如果失败也能排查到问题在哪儿,现在我们正在做一个无人职守的自动化持续集成系统。Macaca的主要模块,客户端的、数据集成的、服务端的模块都已经开源了,其他的团队可以使用这些模块来做一套Macaca的自动化测试方案。就跟大家分享这些吧。

 

 

 


关于分享者


徐达峰

 

现任蚂蚁金服-国际事业部高级前端开发工程师,多年WEB开发相关工作经验,关注移动端开发和Node.js领域,同时在移动测试工具方面积累了较多经验。

 

现场问题:

 

现场的问题在Macaca的FAQ中都有记录:

 

问题1:Macaca 支持测试用例调试吗?解答:

https://github.com/alibaba/macaca/issues/28


问题2:Macaca在PC端测试的环境问题 解答:https://github.com/alibaba/macaca/issues/8

 

问题3:iOS中模拟器打开了,用例没成功执行 解答:

https://github.com/alibaba/macaca/issues/4

 

问题4:Android SDK版本兼容性引起的异常:

https://github.com/alibaba/macaca/issues/7

目录
相关文章
|
7月前
|
存储 安全 程序员
AtomGit代码托管平台评测赛——赛事收获暨赛事总结
AtomGit代码托管平台评测赛——赛事收获暨赛事总结
82 1
《淘宝交付之道》新书发布会直播预告!
《淘宝交付之道》新书发布会直播预告!
123 0
|
边缘计算 Cloud Native 虚拟化
《2021 KubeMeet 开发者沙龙线下演讲实录合辑》电子版地址
《2021 KubeMeet 开发者沙龙线下演讲实录合辑》是 2021 年度 KubeMeet 线下开发者沙龙的演讲内容沉淀,不仅包含云原生标准应用模型技术上的落地与思考、热门开源项目的技术架构解读、云原生应用部署开源实践等话题,更有第四范式、携程、极狐、Vmware、电信天翼云、深信服、招商局、政采云等知名企业的一线云原生落地实践。云原生应用交付与管理痛点、边缘计算融合难题都能在此找到新解法!
85 0
《2021 KubeMeet 开发者沙龙线下演讲实录合辑》电子版地址
|
云栖大会 云计算 开发者
开发者眼中的云栖
这个时代中的每一位开发者都是构筑新生活的设计师,而云栖大会则是优秀设计师的年度答卷。今天,我们想要从开发者的视角去了解,他们眼中的云栖大会。
开发者眼中的云栖
|
边缘计算 Cloud Native 虚拟化
《2021 KubeMeet 开发者沙龙线下演讲实录合辑》电子版
《2021 KubeMeet 开发者沙龙线下演讲实录合辑》是 2021 年度 KubeMeet 线下开发者沙龙的演讲内容沉淀,不仅包含云原生标准应用模型技术上的落地与思考、热门开源项目的技术架构解读、云原生应用部署开源实践等话题,更有第四范式、携程、极狐、Vmware、电信天翼云、深信服、招商局、政采云等知名企业的一线云原生落地实践。云原生应用交付与管理痛点、边缘计算融合难题都能在此找到新解法!
123 0
《2021 KubeMeet 开发者沙龙线下演讲实录合辑》电子版
|
边缘计算 Cloud Native 虚拟化
《2021 KubeMeet 开发者沙龙线下演讲实录合辑》电子版下载
《2021 KubeMeet 开发者沙龙线下演讲实录合辑》是 2021 年度 KubeMeet 线下开发者沙龙的演讲内容沉淀,不仅包含云原生标准应用模型技术上的落地与思考、热门开源项目的技术架构解读、云原生应用部署开源实践等话题,更有第四范式、携程、极狐、Vmware、电信天翼云、深信服、招商局、政采云等知名企业的一线云原生落地实践。云原生应用交付与管理痛点、边缘计算融合难题都能在此找到新解法!
118 0
《2021 KubeMeet 开发者沙龙线下演讲实录合辑》电子版下载
|
边缘计算 Cloud Native 虚拟化
《2021 KubeMeet 开发者沙龙线下演讲实录合辑》电子版下载地址
《2021 KubeMeet 开发者沙龙线下演讲实录合辑》是 2021 年度 KubeMeet 线下开发者沙龙的演讲内容沉淀,不仅包含云原生标准应用模型技术上的落地与思考、热门开源项目的技术架构解读、云原生应用部署开源实践等话题,更有第四范式、携程、极狐、Vmware、电信天翼云、深信服、招商局、政采云等知名企业的一线云原生落地实践。云原生应用交付与管理痛点、边缘计算融合难题都能在此找到新解法!
113 0
《2021 KubeMeet 开发者沙龙线下演讲实录合辑》电子版下载地址
|
Devops 云栖大会
云栖大会,产品经理和开发把云效展区逛爆了
“我秃了也强了”“这个包袱我拿了”
241 0
云栖大会,产品经理和开发把云效展区逛爆了
|
弹性计算 关系型数据库 MySQL
高校学生在家实践感想
第一部分介绍了本人就读的专业、年级,以及通过暑期专业实习的途径了解到“飞天加速计划·高校学生在家实践”活动。 第二部分介绍了阿里云ECS使用攻略,以及本人在云服务器ecs使用中遇到的问题和解决方法。 第三部分介绍了本人通过“高校学生在家实践”得到的收获,以及自己在这过程中的成长与变化。
|
云栖大会 Apache
【氚云】云栖大会低代码峰会专场顺利闭幕!
10月19-21日,云栖大会在杭州举办。作为全球规模最大、最具影响力的科技盛会,每一届云栖大会都吸引着全球上百万科技创新者的参与和关注,被视为科技界的创新风向标。今年大会以“前沿·探索·想象力”为主题,打造全场景的沉浸式科技盛会,探索最前沿的数字创新趋势。
254 0
【氚云】云栖大会低代码峰会专场顺利闭幕!

热门文章

最新文章