设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层
来源:互联网 发布:公司网络布局 编辑:程序博客网 时间:2024/05/21 12:47
给我们的框架分为3层,分别是叫逻辑层,数据层,对象层。 这三层的存储格式都用xml来表示。
1. 逻辑层 (test Scripts)
既用来描述我们步骤的逻辑,像点击,输入,选中,对比这些操作。
逻辑层基于关键字驱动,格式如下
Command
Target
Value
Click
OKButton
Type
AEdit
123
上面的每一行将每一个步骤划分为 Command,target , value 三个部分。
在xml上的表示方法如下:
- <Function command="openHomePage" target="" value=""/>
- <Function command="sleep" target="5" value=""/>
- <Html command="click" target="uimap(HostnamePage).NetworkTab"value=""/>
- <Html command="type" target="uimap(HostnamePage).HostNameFiled"value="data(Dataxml1).test1"/>
2. 数据层 (test Data)
用来存储被测试的数据,实现测试数据和测试逻辑的分离, 和测试逻辑脚本的重复利用。
定义格式如下
- <Data>
- <property name=”test1”>test data 1</property>
- <property name=”test2”>test data 2</property>
- <Data>
3. 对象层 (UIMaps)
用来存储被测试网也对象,按Page来保存文件,我们把这个叫做UIMaps。
- <Targets>
- <xpath name=”AEdit”>//input[@=’a’]</xpath>
- <xpath name=””>//input[@id=’ok’]</xpath>
- </targets>
- <Messages>
- <message name=”ALabelText”>
- <content language = “ENU”>Hello World !</content>
- <content language = “CHS”>你好扯淡 !</content>
- </message>
- </Messages>
页面上的element 放在 Targets标签下, 页面上的文字内容放在messages标签下,这里面开可以定义不同语言的文字。
另外我们需要一个config.xml文件用来保存一些环境配置信息。
如下所示:
- <host>localhost</host>
- <port>4444</port>
- <baseUrl>http://10.12.23.38</baseUrl>
- <browser>iexplore</browser>
- <!--== web site test config === -->
- <language>en</language>
- <timeout>10</timeout>
- <retryTimes>3</retryTimes>
基于上面我们就有了下图我们整个SAFX框架的结构图。
SAFX Controller 是入口,需要传入config.xml 作为配置信息。
SAFX Controller 还控制了整个测试脚本执行的过程,通过调用Selenium ClientAPI 去操作浏览器实现我们的步骤。
SAFX 同时实现了 异常处理 和Report输出的功能。
当然花这么多时间写个框架首先总有几点好处,要不费那劲干嘛。
1. 一个是实现脚本,数据,对象库分离, 提高脚本重用,方便页面变化之后的维护。
2. 用xml 编写脚本文件,不需要编译,随时修改调试。
3. 自定义report的输出,这边默认设置了3中格式的 result(xml, html, xls)
- 设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层
- 设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层
- 设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层
- 设计自己的基于Selenium 的自动化测试框架-Java版(1) - 为什么selenium还需要测试框架?
- 设计自己的基于Selenium 的自动化测试框架-Java版(1) - 为什么selenium还需要测试框架?
- 设计自己的基于Selenium 的自动化测试框架-Java版(1) - 为什么selenium还需要测试框架?
- 设计自己的基于Selenium 的自动化测试框架-Java版(1) - 为什么selenium还需要测试框架?
- 设计自己的基于Selenium 的自动化测试框架-Java版(2) - 定义自己的工作流程
- 设计自己的基于Selenium 的自动化测试框架-Java版(2) - 定义自己的工作流程
- 设计自己的基于Selenium 的自动化测试框架-Java版(2) - 定义自己的工作流程
- 基于selenium的自动化测试框架
- 基于selenium的自动化测试框架实现
- 基于Selenium的自动化测试框架
- 基于selenium的pyse自动化测试框架
- 基于Java+Selenium+Appium集成Web、安卓和IOS自动化测试框架的设计
- 基于Java+Selenium+Appium集成Web、安卓和IOS自动化测试框架的设计
- Selenium 的自动化测试框架
- 基于selenium的web自动化测试框架小结
- workBench 下工程创建时通过快捷方式添加其他位置的文件夹
- ArcGIS教程:欧氏距离——空间分析
- JSP输出
- 如何使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(1)
- Android 代码实现应用强制装到手机内存
- 设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层
- 经纬财富:宝鸡24小时铂金价格走势
- Sping进阶之Spring和Hibernate的整合
- 关于Mapper、Reducer的个人总结
- mknod指令详解
- mysql中count(*),distinct的使用方法和效率研究
- PHP实现获取图片颜色值的方法
- UIScrollView既可以左右滑动也可以上下滑动,定向锁定
- 请大神来看看 Oracle RAC安装的时候 runcluvfy 卡死