您的位置:首页 > 移动开发 > Objective-C

selenium+java+testNG+pageObject深入理解自动化测试框架

2014-10-22 00:40 567 查看
关于selenium+java+testNg的环境配置文章,本文主要讲述测试框架的架构实现。

我们知道,搭建一个合理的测试框架能够将自动化测试做大做大,一个合适的自动化测试框架能够极大的降低代码的数量,便于后续的维护。文章先从测试框架的模型,思想讲起,然后将各个部分做实现。

一、框架包结构如下图





以下依次分析下每个包中的工作

com.bfm.pageElements:yaml文件存放页面要素对应的xpath;

com.bfm.properties:yaml文件存储相关的公共要素,比如iframe,url;

com.bfm.VO:class类编写页面对象,比如LoginPageVO;

com.bfm.task:class编写每个页面中需要的动作;比如loginTask();

com.bfm.utils:class编写相关的工具包;

com.bfm.tests:class编写相关的测试类;比如loginSucessTest();

com.bfm.suites:class编写测试调用类;

二、该框架中使用的主要思想

该测试结构中,主要使用的思想有,pageObject面向界面做处理、使用反射机制对界面数据进行传递、使用yaml文件管理界面要素的定位、使用分层机制编程。
首先分析一下该框架中的主要类,类结构如下。



依次分析下各个类的作用

loginPageElements.yaml:存放的登录界面所需要的主要要素,以后界面做调整后,只需要调整对应要素的查找方式,比如,userName对应的name;

url.yaml:存放相关的访问地址,比如,登录界面的地址,登录地址调整后,只需要调整该访问地址即可;

iframes.yaml:存放iframes的地址,对应操作界面的iframe调整后,调整该文件中的配件即可;

yamlFileDirector:相关静态变量,存放相关yaml文件存放的物理路径,以上配置文件的路径调整后,修改该文件的路径配置即可;

WebDriverConstruction:更加传递的浏览器类型,初始化相应的浏览器即可;包含fireFox,chrome等;

pageElementSearch:查询对应yaml文件在界面中的要素;

TreeNodeSearch:用于导航窗口的处理;

SwitchToWindow:用于切换iframes;

XmlToJavaVO:转换xml数据到界面VO对象中,界面数据的传递,使用反射机制,处理不同的界面VO;

XMLReader:读取xml文件的类;

YamlReader:读取yaml文件的类;

ElementOperator:静态类,包含界面要素需要处理的方法,比如处理,文本框的清空,下拉框的操作等;

LoginTask:实现登录界面中的功能;比如:登录,重置等;

loginPageTest:测试类,实现登录成功,登录失败等;

loginTestSuite:调用不同的测试类一起执行;

三、框架中的层次结构

下面讲述一下该框架的层级结构



测试数据层:独立封装数据;
页面对象层:封装页面对象,共页面任务层做调用;
页面任务层:实现各个独立页面的操作;
测试层:实现页面测试;
测试组件层:实现测试层的管理调用;

到这里就介绍完了我实现的web测试主要思想,后续应该会做进一步的优化。欢迎大家吐槽。框架代码:http://download.csdn.net/detail/boer521314/9396376

接口自动化框架:https://github.com/laiqb/AutoUI

相关配置文件:以yaml文件形式存储界面要素,便于以后统一管理界面要素,界面要素的调整,只需要调整对应页面的yaml文件即可。转载一篇关于yaml文件处理的文章:selenium+java自动化测试框架之元素管理篇(yaml)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: