《质量全面管控》读书笔记——自动化测试框架

一、框架分析
自动化测试框架提供一整套自动化测试工作流,采用业务流程分析方法,先熟悉业务系统,然后根据业务系统划分出业务流程。
1、框架设计目标
自动化框架把提供业务流可维护、数据可定制、脚本组件化、数据和脚本相分离为目标。完备的自动化测试框架体现以下几个方面:
1)实现对测试资产库的统一管理,测试资产库包括:测试需求、测试计划、测试用例、测试数据、测试脚本、测试缺陷、测试日志、测试报告;
2)开发管理测试脚本,定时运行测试脚本发送测试报告;
3)实现脚本和数据分离;
4)框架通过自主定制开发,方便扩展,易于维护;
5)引入“业务流程”分析方法,梳理自动化测试用例;
6)通过自动化测试框架,部分功能测试通过自动化测试来实现,提供测试效率。

2、业务流程层次分析
一般讲业务功能模块与业务单元统称为业务子流程。整个业务流程按层次分解成业务流程、业务子流程、执行操作。

3、业务流程测试自动化
自动化测试人员根据测试用例编写测试脚本关注技术的实现,实现业务与技术的分离。设计业务流程组件的原则如下:
1)业务功能的复用性
2)业务功能的复杂度
3)业务功能的独立性
4)业务功能的模块化

二、框架设计
设计开发自动化测试核心支撑框架,建立一套自动化测试脚本设计、脚本开发、扩展开发、数据维护、调度执行的模式和规范,保证自动化测试实施技术和方法的一致性,使自动化测试过程中各种角色和工作环节能有效连接和运转。自动化测试核心支撑框架由自动化测试工具和自动化测试框架两部分构成。测试工具包括:被测系统属于B/S架构,可使用Selenium负责页面对象识别操作;ANT用于测试脚本的构建;Eclipse负责脚本开发和调试工具;TestNG负责测试脚本运行和报表输出。框架包括:用例的编写和导入,手工用例和自动化脚本相关联;为测试脚本开发提供统一的功能接口;完成业务流程定义、业务组件定义、测试数据维护和运行参数设置;管理测试脚本和执行机的调度运行;测试结果的统计、输出和展示。
1、框架设计思想
自动化测试框架以业务与技术相分离、脚本与数据相分离、统一的自动化工作模式和测试资产库不断积累为设计思想。
1)业务与技术分离
功能测试工程师设计业务组件和业务流,自动化测试人员完成具体自动化脚本的开发。
2)脚本与数据分离
脚本和数据分布独立构建,使同一套测试脚本可以使用不同的测试数据。
3)统一的自动化工作模式
固定一套自动化脚本设计、脚本开发、扩展开发和调度执行的模式和规范,保证自动化测试技术和方法的一致性。
4)测试资产库的不断积累
注重测试资产的积累、共享、复用。

2、框架物理架构
开发人员将代码提交到Git服务器,Jenkins服务器会自动从Git服务器中提取最新的代码,定时完成每日集成的任务,集成完毕后通过调用测试执行机启动测试人员已编写好的测试脚本进行定时的回归测试,并用邮件将生成的集成结果和测试结果发送到相关人员的邮箱。从物理上进行划分,包括如下资源:
开发人员:负责代码的编写、调试、提交;
测试人员:负责测试脚本的编写、调试、提交;
Git服务器:用于存放框架运行库、测试脚本和测试数据;
Jenkins服务器:用于设置运行参数、管理测试执行机、控制执行测试、收集测试结果;
测试执行机:执行自动化测试脚本的计算机。

3、框架逻辑架构
自动化测试框架的逻辑结构,由定义层、测试引擎驱动层和被测系统层组成。
1)定义层:包括业务流定义、业务组件定义和测试数据定义。其中,业务流程定义系统运行的流程,业务组件是一个独立的功能模块,测试数据定义是完成被测项目中输入数据类型定义、业务流中数据依赖关系、测试过程中输出的数据。
2)测试引擎驱动层
是自动化测试框架的核心,根据业务流配置自动加载对象库、函数库和业务组件脚本以形成业务流脚本,并驱动脚本执行(实现了测试中业务和技术的分离)。
3)被测系统
支持多浏览器、C/S架构及基于移动设备上的B/S架构系统的自动化测试。

4、框架工作流程
功能测试工程师登录测试框架编写测试用例,填写测试数据,配置业务流程和业务组件;自动化工程师根据测试用例编写调试脚本,上传脚本和关联测试用例;自动化测试框架根据定义好的执行策略执行测试报告并生成报告,然后发生报告给相关人员;最后根据测试报告分析测试结果,得出系统是否通过本次自动化测试的结论。自动化框架的工作流程如下:
创建业务组件(根据被测系统,划分成单个独立组件)——>编写组件脚本——>填写测试数据(对单个测试组件填写一组或多组测试数据)——>拼接组件,创建业务流——>创建测试集(多个业务流程组成一个测试集)——>执行测试——>生成报告——>分析结果。

三、框架开发
1、创建测试用例
通过平台创建测试用例(可以结果TestLink或TestRail做二次开发形成测试框架的用例管理)。创建测试用例需遵循如下规则:
1)用例中体现的属性有用例名称、用例描述、系统子系统、产品大类子类、功能点编号、正例反例和备注;
2)在测试用例中,业务流的顺序将体现功能点编号、实际结果和预期结果等信息;
3)回归测试人员在平台进行测试用例输入时,要注意测试用例分手工测试用例和自动化测试用例,需要在用例中添加检查点;
4)平台对用例进行完整性检查,二用例的合理性和有效性是需要回归测试人员进行检查的。

2、创建测试数据,配置业务流

3、创建测试项目

4、开发框架运行类
编写框架运行类,此方法将运行一个业务流程,并执行业务流程中包含的组件脚本。

5、开发公共接口
1)由于框架运行在不同的浏览器,因此需要创建一个渠道公共类,实例化不同的浏览器;
2)需要对WebDriver API进行二次封装,便于测试工程师开发脚本;
3)脚本在会使用到不同类型的数据库操作,需要一组统一的方法封装各种数据库的增加、删除、修改和查询操作;
4)编写测试脚本需要继承的基础类,其中包含该组件的数据。

6、添加日志报告

四、脚本开发
1、编写测试脚本

2、调试运行脚本
注意:1)调试时建议一次只对单个用例进行调试,不使用并发运行;
2)实时监控执行过程;
3)修改日志级别,查看详细日志。

3、上传脚本

五、持续集成
其过程是:持续集成平台获取测试脚本,完成脚本的编译,执行自动化单元测试,通过Sonar完成代码静态扫描,将代码打包后部署到不同的测试环境,根据定时任务进行自动化集成测试,执行完自动化测试后,生成测试报告,通过邮件发送测试结果给测试人员和开发人员。
持续集成的环境搭建采用Jenkins作为持续集成的服务器。

猜你喜欢

转载自blog.csdn.net/zlanbl085321/article/details/80767049
今日推荐