背景
为什么要设计自动化测试框架,主要是由于以下几点原因:
· 统一不同的测试技术,协同工作
· 降低测试人员编写自动化测试用例的门槛
· 对测试流程实现统一的管理
· 方便测试脚本的维护,代码复用
设计
构建通用的Web自动化测试框架,这里我们选用了一些技术和工具,整体架构图如下:
上图,是两个技术栈实现的测试框架,后面分别进行详细的介绍。
W3C规范:The WebDriver Wire Protocol (RESTful)
下图,以IE浏览器为例,说明原理。
这里有几个概念需要理解:
页面对象模型(Page Object Model)
“Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况。 当页面元素id变化时,只需要更改测试页Class中页面的属性即可。
页面对象模型的好处如下:
Page Object将测试对象及单个的测试步骤封装在每个Page对象中,以page为单位进行管理
Page Object的主要价值体现在对界面交互细节的封装,这样可以使测试案例可以更关注与业务而非界面细节,提高测试案例的可读性
减少由于页面结构,元素属性变化而导致的大量测试用例重构
构建页面对象模型:
第一步,构建页面对象模型
第二步,进行业务抽象