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

来源:互联网 发布:公司网络布局 编辑:程序博客网 时间:2024/05/21 12:47
设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层 

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


1.      逻辑层 (test Scripts)

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

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

Command

Target

Value

Click

OKButton

 

Type

AEdit

123

 

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

在xml上的表示方法如下:

[html] view plaincopy
  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 plaincopy
  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 plaincopy
  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 plaincopy
  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)

0 0
原创粉丝点击