设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层

 设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层 

给我们的框架分为3层,分别是叫逻辑层,数据层,对象层。 这三层的存储格式都用xml来表示。


1.      逻辑层 (test Scripts)

既用来描述我们步骤的逻辑,像点击,输入,选中,对比这些操作。

逻辑层基于关键字驱动,格式如下

Command

Target

Value

Click

OKButton

 

Type

AEdit

123

 

上面的每一行将每一个步骤划分为 Command,target , value 三个部分。

在xml上的表示方法如下:

[html]  view plain copy
  1. <Function command="openHomePage" target="" value=""/>  
  2. <Function command="sleep" target="5" value=""/>  
  3. <Html command="click" target="uimap(HostnamePage).NetworkTab"value=""/>  
  4. <Html command="type" target="uimap(HostnamePage).HostNameFiled"value="data(Dataxml1).test1"/>  


2.      数据层 (test Data)

用来存储被测试的数据,实现测试数据和测试逻辑的分离, 和测试逻辑脚本的重复利用。

定义格式如下

[html]  view plain copy
  1. <Data>  
  2.                 <property name=”test1”>test data 1</property>  
  3.                 <property name=”test2”>test data 2</property>  
  4. <Data>  

 

3.      对象层 (UIMaps)

用来存储被测试网也对象,按Page来保存文件,我们把这个叫做UIMaps。

 

[html]  view plain copy
  1. <Targets>  
  2.                 <xpath name=”AEdit”>//input[@=’a’]</xpath>  
  3.                 <xpath name=””>//input[@id=’ok’]</xpath>  
  4. </targets>  
  5.    
  6. <Messages>  
  7.                 <message name=”ALabelText”>  
  8.                    <content language = “ENU”>Hello World !</content>  
  9.                    <content language = “CHS”>你好扯淡 !</content>  
  10.               </message>  
  11. </Messages>  

页面上的element 放在 Targets标签下, 页面上的文字内容放在messages标签下,这里面开可以定义不同语言的文字。

另外我们需要一个config.xml文件用来保存一些环境配置信息。

如下所示:

[html]  view plain copy
  1. <host>localhost</host>  
  2. <port>4444</port>  
  3. <baseUrl>http://10.12.23.38</baseUrl>  
  4. <browser>iexplore</browser>  
  5. <!--== web site test config === -->  
  6. <language>en</language>  
  7. <timeout>10</timeout>  
  8. <retryTimes>3</retryTimes>  


基于上面我们就有了下图我们整个SAFX框架的结构图。

SAFX Controller 是入口,需要传入config.xml 作为配置信息。

SAFX Controller 还控制了整个测试脚本执行的过程,通过调用Selenium ClientAPI 去操作浏览器实现我们的步骤。

SAFX 同时实现了 异常处理 和Report输出的功能。

 

 

当然花这么多时间写个框架首先总有几点好处,要不费那劲干嘛。

1.      一个是实现脚本,数据,对象库分离, 提高脚本重用,方便页面变化之后的维护。

2.      用xml 编写脚本文件,不需要编译,随时修改调试。

3.      自定义report的输出,这边默认设置了3中格式的 result(xml, html, xls)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值