Macaca 面向多端的自动化测试解决方案

简介: Macaca 面向多端的自动化测试解决方案

背景


对于基于 UI 的功能测试的需求其实一直存在,理由其实很简单,不想一直让人去做重复机械的事情,而且可靠性完全是靠人力的堆积产生。然而目前部门的功能测试工作依然主要是依靠人工来完成,从我们公司的实践来看我觉得有几个方面的影响因素:


  • 客户端APP已经实现模块化开发,而且外卖平台移动端的开发迭代流程正在进行改造,目标是从固定每三周一个迭代改造为每周一个发布窗口,版本迭代的提速,设备的碎片化,都给测试工作带来巨大的挑战。
  • 由于版本迭代周期越来越短,而且UI变动比较频繁,因此测试编写测试代码的积极性不是很高,同时由于测试代码的可重复利用性差,导致测试脚本的编写成本和维护成本偏高 。
  • 部分测试人员的编码能力不是很强。由于大部分测试人员可能并没有过多的开发经验,所以在编写测试代码时并不能很顺畅的完成自己想要的效果,这样也会导致测试代码项目的推广阻力会比较大。


如何在有限的时间内,追求尽可能高的产品质量?录放平台是我们推出的解决方案。它支持本地化UI脚本录制,集中式脚本管理,分布式脚本执行。业务测试只要开启我们的服务,就可以在业务测试的过程中,自动生成对Android、iOS和Web页面的自动化脚本,而自动化脚本在批量设备上的回放,可以极大提高关键路径的覆盖率,提升兼容性测试的效率,从而可以把业务测试从冗长重复的步骤中解放出来,把精力放到边界,异常等可以给我们产品带来更多提升的地方。


通过不断地寻找,不断地对比,最终我们将目标聚焦在阿里巴巴开源解决方案Macaca上。


简介


Macaca是一套完整的自动化测试解决方案,它的三个特性对我们极具吸引力:


1、周边工具支持(Reliable、app-inspector、UI-Recorder等)

2、它是一个轻量化的开源项目

3、社区活跃,中文文档丰富

4、支持JS、Python、Java编写自动化脚本

5、API比较统一


技术栈


在落地Macaca之前,需要先部署下列技术栈:

1、Node.js用于部署Macaca

2、Docker用于容器化Macaca的部署环境

3、Gitlab用于存储代码和测试用例

4、Slack用于团队的沟通协调

5、Python用于部署本地Agent


使用流程


业务测试人员通过在本地录制好测试脚本,然后上传到脚本管理平台,这些测试脚本将会根据业务模块和版本分类管理。使用者在自己的电脑上安装Agent,然后连接测试设备,Agent会将本机的ip、port和设备信息上传注册到录放平台。


新建一个task执行脚本回放操作,可以指定在哪些机器上回放也可以推送到STF手机管理平台批量回放,测试用例运行之后,会有两种情况发生:如果成功,则可以直接查看生成报告;否则会通过Slack或邮件通知开发人员测试失败,重新修改代码。


另外Macaca也提供了相应的分布式持续集成框架Reliable来进行任务管理。


Reliable


下图是Reliable的界面,通过Reliable用户可以查看测试用例和测试结果;并且Reliable天生与Macaca无缝衔接。


微信图片_20220515211833.jpg


微信图片_20220515211837.jpg


微信图片_20220515211841.jpg


Inspector


Macaca中还提供了Inspector工具供用户直观、方便查找到想要选中的元素。图中右侧一栏提供的是XPS、ID、Name数据,用户通过Inspector工具寻找目标界面的元素。


微信图片_20220515211844.jpg


Debug


我们选择Visual Studio Code作为常用的IDE因为它能够轻量地、方便地支持使用者Debug,用户可以根据自己喜好选择相应地调试工具。


微信图片_20220515211849.jpg


UI Recorder


下图是简单的登录测试用例:输入用户名和密码,然后点击登录按钮。UI-Recorder脚本录制工具可以快速的通过录制得到脚本,方便新手入门。


微信图片_20220515211852.jpg


测试报告


最终的测试结果需要与饿了么的质量平台对接(Macaca产生的测试报告、测试结果数据在导入饿了么质量平台前需要进行数据转换),形成完整的测试流程。


微信图片_20220515211856.jpg


上面总结了一下自己在调研并选择UI自动化框架中的一些思考,希望能给处于UI自动化调研初期的同学们一些帮助,其中很多选择是出于自身业务的需要,仅供参考,希望大家能结合自身业务的需要,找到适合自己的UI自动化框架。另外如果有对此框架感兴趣的同学欢迎一起学习交流。

相关文章
|
2月前
|
安全 BI 持续交付
金融保险行业 AD 域自动化管理解决方案
金融保险行业作为数据密集型领域,核心资产涵盖客户信贷信息、高净值客户数据、绿色金融项目资料等敏感内容,这些数据不仅是企业核心竞争力的体现,更是监管合规的重点关注对象。当前,行业正面临 “管理效率低下” 与 “数据安全风险” 的双重挑战。
140 0
|
8月前
|
运维 安全 网络安全
自动化与统一管理:Websoft9 平台为教师提供的一站式解决方案
教育场景常面临资源分散、技术门槛高、资源利用低效及安全风险等问题。Websoft9 提供自动化部署与统一管理方案,通过预集成应用模板库、容器化资源隔离和智能运维监控等技术,大幅缩短环境搭建时间,提升资源利用率并保障数据安全。其典型应用场景包括混合教学环境搭建、科研项目管理和实验课程弹性扩展,助力高校降低成本、提高效率。Websoft9 的图形化界面降低技术门槛,支持自定义开发,推动教育数字化转型,未来有望成为教学生产力提升的底层基座。
167 6
|
10月前
|
数据挖掘 测试技术 项目管理
2025年测试用例管理看这一篇就够了 ----Codes 开源免费、全面的测试管理解决方案
Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对 30 人以下团队免费。它通过整合迭代、看板、度量和自动化等功能,简化测试协同工作,使敏捷测试更易于实施。并提供低成本的敏捷测试解决方案,如同步在线离线测试用例、流程化管理缺陷、低代码接口自动化测试和 CI/CD,以及基于迭代的测试管理和测试用时的成本计算等,践行敏捷测试。
2025年测试用例管理看这一篇就够了 ----Codes 开源免费、全面的测试管理解决方案
|
11月前
|
Serverless 决策智能 UED
构建全天候自动化智能导购助手:从部署者的视角审视Multi-Agent架构解决方案
在构建基于多代理系统(Multi-Agent System, MAS)的智能导购助手过程中,作为部署者,我体验到了从初步接触到深入理解再到实际应用的一系列步骤。整个部署过程得到了充分的引导和支持,文档详尽全面,使得部署顺利完成,未遇到明显的报错或异常情况。尽管初次尝试时对某些复杂配置环节需反复确认,但整体流程顺畅。
228 3
|
运维 监控 关系型数据库
数据库管理中的自动化运维:挑战与解决方案
数据库管理中的自动化运维:挑战与解决方案
|
机器学习/深度学习 监控 算法
车辆违停检测:基于计算机视觉与深度学习的自动化解决方案
随着智能交通技术的发展,传统人工交通执法方式已难以满足现代城市需求,尤其是在违法停车监控与处罚方面。本文介绍了一种基于计算机视觉和深度学习的车辆违停检测系统,该系统能自动监测、识别并报警违法停车行为,大幅提高交通管理效率,降低人力成本。通过使用YOLO算法进行车辆检测,结合区域分析判断车辆是否处于禁停区,实现了从车辆识别到违停判定的全流程自动化。此系统不仅提升了交通管理的智能化水平,也为维护城市交通秩序提供了技术支持。
|
运维 监控 安全
构建高效运维体系:从监控到自动化的全面指南在当今数字化时代,运维作为保障系统稳定性和效率的重要环节,其重要性不言而喻。本文将深入探讨如何构建一个高效的运维体系,从监控系统的搭建到自动化运维的实施,旨在为读者提供一套完整的解决方案。
本文详细介绍了高效运维体系的构建过程,包括监控系统的选择与部署、日志分析的方法、性能优化的策略以及自动化运维工具的应用。通过对这些关键环节的深入剖析,帮助运维人员提升系统的可靠性和响应速度,降低人工干预成本,实现业务的快速发展和稳定运行。
|
测试技术 开发工具 iOS开发
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
这篇文章是iOS自动化测试方案的第三部分,介绍了在没有MacOS系统条件下,如何使用WDA(WebDriverAgent)结合Python客户端库facebook-wda和tidevice工具,在Windows系统上实现iOS应用的自动化测试,包括环境准备、问题解决和扩展应用的详细步骤。
2248 1
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
|
数据采集 SQL 运维
企业出海WAS安全自动化解决方案
企业出海WAS安全自动化解决方案
|
敏捷开发 测试技术 持续交付
敏捷开发中的软件测试策略:挑战与解决方案
随着敏捷开发方法在软件工程领域的普及,传统的软件测试流程面临着前所未有的挑战。本文将探讨敏捷开发环境下软件测试所遇到的主要问题,并提出相应的解决策略,以期为软件测试人员和项目管理者提供实用的指导和参考。
356 27
下一篇
oss云网关配置