近年自动化测试发展迅猛,几乎每个行业,如GUI、APP、云等都开发出自己的自动化开源框架来满足本行业自动化测试的需求,但这些自动化开源架构大多是偏向自动化实现技术的。从自动化工程角度出发,给出通用的自动化测试框架。
从自动化工程的角度来说,自动化测试框架主要分为4层。
自动化测试架构的底层是“被测系统/测试环境层”,主要包括自动化测试对象的实际物理设备和虚拟化环境。自动化脚本实际就运行在这一层上。
第二层是“自动化测试架构层”,这是自动化测试架构的核心层,主要包含几个子系统。
·脚本语言运行环境和各种框架的集合:包含自动化测试相关的语言环境、库、开源/自研框架等。
·业务负载发生器:主要作用是模拟所需的业务负载。
·测试数据生成器:根据测试要求生成所需的测试数据。
·被测系统管理系统:包括配置文件的管理、相关数据库管理等。
·测试环境管理系统:主要是对测试环境的管理,如测试拓扑、资源等。
·AW(Action Word,动作关键字):在自动化测试中,所有的操作都需要抽象封装为关键字,供上层自动化脚本调用。
·工具:与自动化测试相关的工具组件(如测试报告生成工具)和其他系统(如需求管理系统、测试用例系统或缺陷系统关联的工具插件等)。
第三层是“自动化脚本和套件层”。建议从“特性——测试类型”这样的角度来组织自动化脚本。还可以根据场景、专项等将满足特定条件的自动化脚本组合起来,形成自动化测试用例集(又称自动化测试套件),方便用户层调度使用。
最顶层是“用户层”,包含的子系统如下。
·脚本调度运行系统:如Jenkins Jobs等,提供与脚本调度和运行相关的能力。
·自动化测试报告:提供自动化测试结果,为测试失败的脚本提供详细信息,以供自动化测试执行人员分析使用。
·仪表盘:提供当前自动化项目的整体状态、统计等信息。
·用户管理系统:提供基本的账号管理、权限等能力。
摘取自刘琛梅老师的《测试架构师修炼之道:从测试工程师到测试架构师 第2版》