作为一名没有测试经验的测试者的过程整理记录。望大家多提建议,谢谢!
一、本文主要描述自动化测试框架的搭建过程。
二、工具选型
根据产品的需求,以及资源能力,要选择一个好的工具和框架,尤为重要。与其他部门使用是Sahi、及QTP工具做对比,最后选择Selenium2 Webdriver·,使用Java语言。
三、架构设计
1、架构设计考虑因素
易扩展性、易维护性、易用性、易调试、稳定性、高效性
2、架构图
3、底层框架
a、为了提高框架的易扩展性,对Webdriver的方法操作进行二次封装。(包括action、wait、findElement等)。
b、选用testNG测试框架。用于测试用例的管理、失败截图和失败重跑等测试监听。
c、选用Allure测试报告框架。用Allure自带的注解,将失败截图显示在测试报告中。
d、对公共方法的提取。例如文件操作、数据库操作、日志、随机数、时间格式等。
4、业务框架
首先,了解到自动化测试框架分为4种:模块化测试框架;函数库结构测试框架;数据驱动测试框架;关键字驱动测试框架。以下表格是对4种框架的理解:
在目前自动化测试实施的初级阶段,选择的是数据驱动测试框架,业务框架分为4层。
a、数据层:将自动化测试所需的数据与脚本分离存放,在测试时可通过读取外部文件或数据库的数据来进行测试。
b、对象层:采用用页面对象(Page Object)的设计模式,将测试代码与被测试页面的页面元素及其操作方法进行分离,以此降低页面元素变化对测试代码的影响,从而减少测试脚本的维护量。
c、业务逻辑层:是指引整个自动化测试的代码设计,这里所设计的代码必须以最小块单位划分存储,以便于后期调用或维护。
d、测试用例层:是让用户直接看到的UI界面。测试用例的设计要依据原子性,进行最小颗粒细分,并且各用例间降低耦合度。
四、分布式部署
采用Selenium Grid的hub和node 的方式实现分布式部署。使用场景:兼容性测试;提高较多测试用例时的执行效率。(具体实现方式本文不做详细介绍)
五、自助平台工作图
采用Jenkins+git+maven+Selenium Grid的方式实现分布式持续集成。