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

关于selenium+java+testNg的环境配置文章,本文主要讲述测试框架的架构实现。

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

一、框架包结构如下图

selenium+java+testNG+pageObject深入理解自动化测试框架_第1张图片 selenium+java+testNG+pageObject深入理解自动化测试框架_第2张图片

以下依次分析下每个包中的工作
  • 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文件管理界面要素的定位、使用分层机制编程。
首先分析一下该框架中的主要类,类结构如下。
selenium+java+testNG+pageObject深入理解自动化测试框架_第3张图片
依次分析下各个类的作用
  • 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:调用不同的测试类一起执行;

三、框架中的层次结构

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

selenium+java+testNG+pageObject深入理解自动化测试框架_第4张图片
  • 测试数据层:独立封装数据;
  • 页面对象层:封装页面对象,共页面任务层做调用;
  • 页面任务层:实现各个独立页面的操作;
  • 测试层:实现页面测试;
  • 测试组件层:实现测试层的管理调用;

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

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

相关配置文件:以yaml文件形式存储界面要素,便于以后统一管理界面要素,界面要素的调整,只需要调整对应页面的yaml文件即可。转载一篇关于yaml文件处理的文章:selenium+java自动化测试框架之元素管理篇(yaml);

你可能感兴趣的:(自动化测试)