内容简介:相比普通测试用例,自动化用例在形式、实现方式及内容上有一定的特殊性;同时自动化用例管理作为移动测试平台的一个重要组成部分,如何对其进行有效管理是平台面临的一个重大挑战。活动推荐:5 月 18 日 mPaaS 线下沙龙 CodeDay#2 北京站,《高可用、全集成、定制化,蚂蚁金服如何持续演进自动化测试》将带领大家进一步了解支付宝如何从开源的自动化方案,到自研并逐步完善无线实验集群技术体系。
作者: 周力(问瑾),蚂蚁金服技术专家。本文围绕支付宝面向移动应用日志复杂的测试工作,如何思考演进出成熟稳定的测试用例管理展开讨论和总结。
相比普通测试用例,自动化用例在形式、实现方式及内容上有一定的特殊性;同时自动化用例管理作为移动测试平台的一个重要组成部分,如何对其进行有效管理是平台面临的一个重大挑战。
活动推荐:5 月 18 日 mPaaS 线下沙龙 CodeDay#2 北京站,《高可用、全集成、定制化,蚂蚁金服如何持续演进自动化测试》将带领大家进一步了解支付宝如何从开源的自动化方案,到自研并逐步完善无线实验集群技术体系。
报名地址请点击“阅读原文”。
0
移动测试架构演进背景
随着移动应用市场的蓬勃发展,移动应用在包括金融、电商、社交等多个行业领域获得了深度演进和创新。随之而来的,针对移动应用的测试工作变得日益复杂,需要覆盖各个操作系统和平台,应对多样的业务场景以及网络环境,并围绕应用的性能、功能、可用性等维度展开。
经过多年的发展,蚂蚁金服沉淀了包括自动化测试框架、测试用例管理、真机调度管理等一系列完善的移动应用测试体系和工具。其中测试用例管理这个概念对我们研发的小伙伴再熟悉不过:用例编写同学以业务的纬度将用例的基本信息组织起来,并通过用例管理平台将其按照类型、版本、场景等纬度归档,从而完成用例的有效管理。然而,相比普通测试用例,自动化用例在形式、实现方式及内容上有一定的特殊性;同时自动化用例管理作为移动测试平台的一个重要组成部分,如何对其进行有效管理是平台面临的一个重大挑战。
本文以 mPaaS 移动测试平台自动化用例管理为切入点,分析自动化用例管理过程中一些常见问题,并结合自身能力,实现了一套方便的自动化用例管理方式。 希望能够给广大开发者用户在自动化用例管理提供一些帮助, 通过阅读本文能够达到以下几点:
-
了解移动测试平台自动化用例管理的基本原理。
-
对于 mPaaS 用户,能够完成用例的快速集成,包括用例录入、用例集合管理及通过用例集合去构建一个自动化任务
-
对于广大开发者来说,能够根据自己的技术栈特点,快速搭建一套自动化用例管理系统。
1
目标与挑战
从个人的角度来看,做好自动化用例管理的工作需要满足两个方面:
-
对于用户来说, 只需要关心业务用例的编写、按照业务规则构建一个用例集,以及触发自动化测试任务。
-
对于平台来说,为了保证自动化用例的有效管理,需要完成以下几个目标:
1. 数据一致性的能力:用户自动化用例信息能够精确反映在平台上,包括增删改查。
2. 方便快速的用例聚合能力:用户能够根据业务要求,快速构建匹配的用例集。
3. 可扩展性及平台在运行时的支撑能力。
4. 简单可用的用例版本管理能力。
图 1 平台与用例编写者关系
当然为了达到上面的目标,有几个问题平台需要去考虑和解决:
-
用例唯一性确认:作为一个自动化测试平台,如何区分不同用户提交的自动化测试用例?
2. 用户“零散”的用例如何快速的组织在一起,并且能够在任务的运行态得以支持?
-
UI 自动化用例往往与运行环境有着密切的关系(如网络环境),如何把这些运行时的特性体现在用例的设计里,保证用户扩展条件得以满足?
-
伴随着 App 版本的不断迭代,如何管理好不同版本测试用例?
2
如何应对
面对种种挑战,平台首要做的事情就是明确用例编写者和平台的职责划分:我们通过一个简单的用例编写规范来构建起两者之间的桥梁。
图 2 用例规范的作用
图 3 用例规范的范围
其次,需要明确一条自动户用例代表什么,对于平台和用户,它的意义是有差别的:
-
对于用例编写同学来说就是一个方法或着类一个类,如:
-
对于平台来说就是一个执行命令,如:
在明确这两个前提后,自动化用例管理的问题就有了具体的切入点。
【 一致性确认】
首先,为了区分测试同学编写的用例,平台推荐使用 git 去管理测试代码,这样用例天然就被隔离开;同时为了在同一个仓库中支持不同的版本, 也参考 git 的分支和 tag 的管理方式来做区分;最终一条用例的确认关系就由:仓库+分支+方法的方式来确定:
图 4 用例的唯一性确认
其次,平台为了快速识别仓库中的有效用例,在 Java 层提供用于生成用例描述的注解,帮助用例编写同学快速生成用例描述文件。
图 5 用例注解描述
在注解的帮助下,工程就能方便在 pom 同级目录下生成平台可识别的用例描述文件(caseList.cfg)。
图 6 用例描述信息
至此,用例编写同学已经完成了编写用例的全部同作。对于平台来说,用户只需要告诉用例的仓库地址和分支,就能够完成用例的导入工作。
图 7 用例导入操作
图 8 导入成功用例
【 用例的聚合】
当用户完成用例编写之后,往往需要把自己业务线用例聚合成一个用例集去执行;另外,对于一些特定的场景(如产品回归测试),需要把各个业务线的用例汇总在一起,构建成一个更大的集合。为了方便用户操作,平台提出了“项目”的概念, 项目可以在内容上包含一批用例方法,也可以包含多个仓库地址。
图 9 按照用例聚合项目
图 10 按仓库及分支聚合
相对于用例的聚合方式, 按照仓库聚合的方式更加灵活: 用户一旦将项目和仓库绑定,只需要在仓库中维护用例, 平台在运行任务的时候,会自动识别有效用例,进而减少平台的维护工作。
图 11 仓库项目任务执行流程
【运行时特性】
移动测试平台 MTP 用例运行都是基于真机环境。除了在任务执行的过程中能够手动去选择不同平台、型号、不同网络的设备;对于那些对网络运行环境有特殊要求的用例(特别在5G时代马上到来时刻),平台在属性上天然支持网络实验室选项(如 4G 实验室、5G实验室、弱网实验室)。这样当用例在平台执行的过程中,平台会自动取筛选执行不同实验室的真机。
图 12 执行层根据用例扩展信息动态调整实验室
【版本管理 】
UI 自动化测试有一定的特殊性,即用例本身的可靠性以来于 UI 的变化,特别在大的迭代之间,很难做到一份代码来兼容两套不同的 UI。为了达到版本管理的功能,平台利用测试代码仓库的分支和项目来完成版本管理。
图 13 用例的版本管理
3
价值输出
通过采用以上几种策略,移动测试平台在蚂蚁内部能够给用户提供可靠稳定的服务:
-
在用例一致性上,目前移动测试平台支持整个蚂蚁和集阿里团用例的录入工作,保证研发同学能够相互独立开发用例, 目前平台接入用例仓库地址 370+ , 有效用例数 20000+ 。
-
在用例聚合方面, 目前移动测试平台上已经构建出 500+ 项目,这些项目服务于各式各样的场景,如 App 日常迭代验包、持续集成、各个业务线功能测试、小程序准入等, 并能够保证日平均任务数在 5000+ 以上。
-
在任务运行时的落地,目前移动测试平台已经支撑了各种专有实验室设备, 如 4G 网络实验室、弱网实验室,及扫码实验室等。
-
在版本控制方面,通过仓库分支的管理方式, 目前移动测试平台已经支撑钱包从 9.0 到 10.1 30+ 次迭代的发版,并很好的隔离的不同迭代间用例的差异。
在基于全自动化测试需求所构建的技术架构支撑下,开发团队有能力在 App 上线前完成充分的测试,及时发现 bug, 全面提升整体用户体验。其中涉及到的“自动化测试框架”、“真机调度管理”、“场景化测试方案”目前在移动开发平台 mPaaS 中已对外输出。
| 活动推荐
想要进一步了解支付宝应对复杂的业务场景,如何构建无线实验集群,并贴合业务需求进行深度演练与支持?从开源的自动化方案,到自研并逐步完善无线实验集群技术体系,支付宝内部经历了怎样的业务场景演练,以及相应的技术架构得到了怎样的改造与升级?
立即扫码报名 5 月 18 日 mPaaS 自办沙龙第二期 CodeDay#2 北京站:
往期阅读
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 移动测试架构演进 | 蚂蚁金服自动化用例管理探索
- 深度 | 蚂蚁金服自动化运维大规模 Kubernetes 集群的实践之路
- 蚂蚁通信框架实践
- 蚂蚁转岗面试之路
- (蚂蚁金服mPaaS)统一存储
- CNCF案例研究:蚂蚁金服
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Where Wizards Stay Up Late
Katie Hafner / Simon & Schuster / 1998-1-21 / USD 16.00
Twenty five years ago, it didn't exist. Today, twenty million people worldwide are surfing the Net. "Where Wizards Stay Up Late" is the exciting story of the pioneers responsible for creating the most......一起来看看 《Where Wizards Stay Up Late》 这本书的介绍吧!