在 Rational Functional Tester 中实现 SAFS 以使用简明语言创建测试脚本

时间:14-06-15 栏目:自动化测试 作者:乐测网 评论:0 点击: 1,893 次

IBM® Rational® Functional Tester(RFT)是一种自动化的软件功能性测试以及回归性测试工具。它独立于平台与浏览器。您可以使用它来测试 Microsoft® Windows®、 Microsoft® .NET、Java™、HTML、Ajax、Flex、Siebel 以及 SAP 程序。Rational Functional Tester(RFT)可以测试的程序类型组合多种多样,而且可以在 RFT 中实现 Software Automation Framework Support(SAFS),这对于测试人员从 IBM® Rational® Robot 转向使用 Rational Functional Tester来说具有相当大的吸引力。

Carl Nagle 为 SAS 机构设计了 SAFS。如图 1 中的图表所示,该框架是一个开源、关键字驱动、多平台、多语言以及工具独立的框架。SAFS 改善了 Rational Functional Tester 的特性,并降低了对高技术测试人员的依赖性。您可以使测试人员能够熟练使用简明语言来设计测试。而且,那些遇到问题的测试人员可以求助于 SAFS 论坛(参见参考资料)。在论坛中,您可以找到答案、提问,以及对 SAFS 作出贡献。

图 1. SAFS 框架

展示特征的图表

前提条件

您必须拥有许可证复制安装 Rational Functional Tester 到您的电脑上。

本文中的所有范例都是在 7.0.1.2 版本以及与功能性测试工具相关的 ClassicsJavaA 范例程序上运行。

Java

SAFS 安装需要一个您电脑上的 Java™ 运行时环境(JRE™)。使用 JRE 1.4 版本或者后续的版本。SAFS 会以标准的搜索路径寻找 JRE 安装文件。在命令行中输入以下的命令,以检查安装的 Java 版本:Java 版本(参见图 2)。

图 2. 确认 Java 版本

Java -版本命令显示了 JRE 版本

如果您的电脑上并没有安装 JRE,从 Sun 网站 下载并安装。

STAF(Software Test Automation Framework)

STAF(Software Test Automation Framework,软件测试自动化框架)是一种软件测试自动化框架,用于简化自动测试用例和测试环境的过程。当您使用 SAFS 时这是十分必要的。STAF 是一种交流的手段,允许所有不同的过程与工具相互之间进行交流。

Windows Script Host

SAFS 和 STAF 可以分开安装。但是,Windows 脚本文件(WSF)可以自动校正重要的值,并设置单独 Java 安装所不能设置的环境变量。为了使用 WSF 脚本进行安装 SAFS,您必须还要使用 Windows Script Host。确认 Windows Script Host 5.6 已经安装好(参见图 3)。

为了检查 Windows Script Host 的版本,您可以在命令提示行中输入以下内容:cscript

图 3. 检查 Windows Script Host 的版本

cscript 命令显示了脚本主机版本

如果您没有安装 Windows Script Host 5.6,那么您可以从 MSDN 网站 下载。

在安装 JRE 与 Windows Script Host 之后,您就可以安装 SAFS 了。

安装 SAFS

按照以下方法来安装 SAFS:

  1. 切换至 SourceForge 网站,并在 Search 窗口中输入 SAFS
  2. 点击 SAFS 页面链接,并点击 View all files
  3. 展开 SAFSRelease2007.04.18 以及 download the SAFSRelease2007.04.18.ZIP 文件。
  4. 提取出 SAFSRelease2007.04.18.zip 文件的内容。
  5. 双击 SetupSAFS.wsf 脚本文件。SAFS 和 STAF 默认条件下安装在三个位置处:
    • c:\safs
    • c:\staf

安装 SAFS

您在前面下载的 SAFS 版本,拥有相联系的补丁和快照。所以您不需要安装补丁或者快照了。SAFS Overlay 包含了最新需要的更新文件。

  1. 切换至 SourceForge 网站,并在 Search 窗口中输入 SAFS
  2. 点击 SAFS 页面链接,并选择 View all files
  3. 展开 SAFSOverlay2009.03.11,并下载 SAFSOverlay2009.03.11.ZIP 文件。
  4. 提取出 SAFSOverlay2009.03.11.zip 文件。
  5. 双击 SAFSSnapshot2009.03.11.WSF 脚本。
  6. 阅读 SAFSOverlay_README.txt 文件以得到更多信息。

脚本以及 readme 文件位于 SAFSOverlay 文件夹中。

SAFS 目录结构

给测试项目设置一个这样的目录结构:

  • Project_path\Datapool
  • Project_path\Datapool\Bench
  • Project_path\Datapool\Dif
  • Project_path\Datapool\Logs
  • Project_path\Datapool\Test

例如,如果 Project_path 是 c:\MyTest,那么 SAFS 目录结构如下所示:

  • C:\MyTests\Datapool
  • C:\MyTests\Datapool\Bench
  • C:\MyTests\Datapool\Dif
  • C:\MyTests\Datapool\Logs
  • C:\MyTests\Datapool\Test

如果您想要得到更多的信息以及通用安装的细节,您可以查看列在 Resources 部分中的 SetupSAFS.Readme文件。

配置 Rational Functional Tester

1. 激活 Rational Functional Tester 中的 Java 环境

2. 运行 C:\SAFS\SetupRationalClasspath.WSF 脚本,以定位并向 CLASSPATH 添加 IBM Rational JAR 文件。

重点:

不要给 Rational Functional Tester 脚本命名为“TestScript”,因为 SAFS 使用了这个名字。您还要确定没有其他的文件起以下的名字:

  • TestScript.java
  • TestScript.class
  • TestScriptHelper.class

配置 SAFS

更改以下的文件来配置 SAFS。

Safstid.ini 文件

c:\safs\safstid.ini 文件用于所有项目的所有团队。确认文件包含了如列表 1 所示的这些设置。

清单 1. SAFS 特定电脑的设置

c:\safs\Project\safstid.ini 文件适用于该项目使用的 所有团队(参见列表 2)。确认文件包含了以下的设置。文件包含了其他的设置,但是这些细节设置已经足够了。

清单 2. SAFS 特定项目的设置

TIDTest.ini 文件

  1. c:\safs\Project\tidtest.ini 文件包含了 test-specific 设置。创建一个包含如列表 3 所示设置的文件。
清单 3. SAFS 特定测试的设置
  1. 右击 runTIDTest.bat 文件,并添加一个 pause 命令:
    java –Dsafs.project.config="c:\safs\project\TIDTEST.ini" org.safs.tools.drivers.SAFSDRIVER pause

提示:
在批文件运行时如果发生了什么错误,命令提示行会显示错误信息,直到您按下一个键为止。没有 pause命令,就算有充足的阅读时间,出错信息也不会显示出来。

  1. 运行位于 C:\safs\Project. 中的 runTIDTest.bat 文件。

在 runTIDTest.bat 文件运行一个在 C:\safs\Project\Datapool\Logs 中生成的名为 TIDTest.SAFS.txt 的日志之后,日志文件会包含以下这些信息:
OK TIDTest Services all present and working.

RFTTest.ini 文件

  1. C:\SAFS\Project 中的 RFTTest.ini 文件包含有 test-specific 设置,包含了 Rational Functional Tester 设置。创建一个包含以下这些设置的文件:
清单 4. Rational Functional Tester 特定测试的设置
  1. 编辑 runRFTTest.bat 文件,它位于 C:\SAFS\Project 文件夹中,添加一个 pause 命令:
    java –Dsafs.project.config="C:\safs\project\RFTTest.ini" org.safs.tools.drivers.SAFDRIVER pause
  2. 运行该命令。

在 runRFTTest.bat 文件运行之后,会在 C:\safs\Project\Datapool\Logs 文件夹中生成一个名为 RFTTest.txt 的日志文件。确认该日志文件包含了这条信息:OK RFT ClearAppMapCache was successful。

如果您想要得到更多信息并配置 SAFS 以进行调试,您可以查看 SetupRFT.Readme 文件,它列在了 Resources 中。

SAFS 构件

在您配置 SAFS 设置并运行 runTIDTest.bat 和 runRFTTest.bat 文件之后,您可以开发测试。

在接下来的程序中,您可以为测试开发创建这些表格(参见图 4):

  • Cycle 表格(.CDD 文件)
  • Suite 表格(.STD 文件)
  • Step 表格(.SDD 文件)
  • Map 文件
图 4. SAFS 构件

表格和映射文件是 SAFS 构件

在 C:\MyTests\Datapool文件夹中创建这些文件。

Cycle 表格

Cycle 表格是高层次的文件,用于访问 suite 表格文件,并设置特定的元数据,例如使用的程序映射,激活的域,访问的表格集以及等等。Cycle 表格是 SAFS 的进入点,它与 C 中的 main()方法相类似。这些文件拥有 .CDD的扩展名。清单 5 是一个范例循环表格。

清单 5. Cycle 表格(ClassicsCycle.CDD)

通过该文件中的 T 来处理的声明是关键词;那些由 C 来处理的声明是 SAFS 命令。该循环表格包含 SAFS 命令,最初时设置 classicsMap.MAP 文件作为程序映射,支持 Java 与 Windows 环境,并访问 ClassicsSuite.STD 文件作为表格集。

如果您想要得到更多关于可用 SAFS 命令以及命令语法的信息,那么您可以查看 SAFS Reference,它列在了 Resources 中。在步骤表格中的描述中解释了关键词语法。

组表格

组表格是访问多个步骤表格文件的中介文件。这些文件的扩展名是 .STD清单 6 是一个范例组表格。

清单 6. 组表格(ClassicsSuite.STD)

步骤表格

作为其名字所暗示的那样,步骤表格包含了低层次的测试步骤,该步骤指定了测试中程序所采取的自动化测试操作。该文件拥有一个 .SDD 的扩展名。清单 7 是一个范例步骤表格。

清单 7. 步骤表格(ClassicsTest.SDD)

字母T处理关键词。

表格 1 中的步骤范例解释了步骤表格的内容。

表格 1. 步骤表格中的关键词
步骤输入 窗口 构件 操作 输入数据
T ClassicsMainWin tree2 ExpandTextNode Haydn
T ClassicsMainWin tree2 SelectTextNode Haydn->Violin Concertos
T ClassicsMainWin PlaceOrder Click
T LoginWin nameCombo Select Claire Stratus
T LoginWin passText2 SetTextValue 密码
T LoginWin OK 点击

第一个测试步骤指定了 SAFS 的操作:

  1. 在 ClassicsMainWin 窗口中,tree2 构件上,执行 ExpandTextNode 操作。
  2. 设置输入数据为 Haydn

图 5 显示了前两个关键词的结果。

图 5. 范例程序

脚本元素与程序相交流

映射文件

您可以把映射文件当作 Rational Functional Tester 中的对象映射。射文件将功能性测试对象与步骤表格中的关键词联系起来。在映射文件中,您还可以声明程序常量。这些文件的扩展名是 .MAP。通过运行 runSTAFProcessContainer.bat 批文件您可以得到映射文件生命的详细信息。图 6 显示了一个范例映射文件。

图 6. 映射文件

映射文件的屏幕输出

图 6 的大图。

前面介绍的所有文件都存储在 C:\MyTests\Datapool 文件夹中。

提示:

为了向这些文件中的声明添加一条注释,您可以在一个撇号后(')添加一条注释。

清单 9 中的映射文件包含有这些声明。

清单 9. 映射文件声明

STAF Process Container 窗口

按照以下方法来得到关于映射的细节信息:

  1. 通过点击 Start > All Programs > STAF- Software Testing Automation Framework 来启动 STAF 服务器。
  2. 点击 Start STAF,然后最小化打开的命令提示行。
  3. 打开 C:\safs\Project folder 中的 runSTAFProcessContainer.bat 文件,并添加一个暂停命令。
  4. 双击文件以打开 STAF Process Container 窗口(参见图 7)。
图 7. STAF Process Container 窗口

STAF Process Container 窗口打开了

STAF Process Container 窗口
该窗口包含了很多的控件,您可以使用这些控件来描述正在测试中的程序,并为测试设置偏好。
Client Type 框
使用这个输入框来指定处理的客户端类型。例如您正在测试的程序是一个 Java 程序,一个 HTML 程序等等。图 8 显示了该框中的 Java Client

Window Recognition Method 区域
使用这个区域来为处理的最顶级窗口提供标题。在范例程序中,窗口标题是 ClassicsCD。在 Window Recognition Method 区域内,标题是Classics*。与之类似提供您想要处理的窗口的标题。例如,如果您的窗口标题是 Login,那么 Window Recognition Method 区域的文本应该是Type=Window;Caption={Login*}。查看 图 7

Object Recognition Method 区域
使用这个区域来指定识别字符串,以指定窗口中的特定对象。为了识别所有的窗口构件,将该区域设置成与 Window Recognition Method 区域相同。查看 图 7

Append AppMap 复选框
选择 Append AppMap。您可以保持文件的默认位置不变或者更改其位置。查看 图 7

如果您想要得到每一个控件的进一步描述,您可以查看 STAF Process Container Reference,它列在了 Resources 中。

  1. 选择这些复选框,如 图 7 所示:
    • Process Children
    • Short Strings
    • Short Names
    • Ignore Invisible
    • Append AppMap

STAF Process Container 窗口识别了测试下程序的对象,并将它们存储在默认的位置处:C:\safs\Project\AppMap.map

  1. 选中 Click to Run。在运行完成之后,Component Hierarchy Viewer 窗口会打开(参见图 7)。
图 8. Component Hierarchy Viewer 窗口

窗口的屏幕截图

  1. 选项:为了选中识别的对象,在浏览器中强调显示对象;否则,关闭窗口。
  2. 在 C:\safs\Project 文件夹中,打开 AppMap.Map 文件。
  3. 在本文件中定位感兴趣的对象,并复制对象。
  4. 在您的 .MAP文件中粘贴对象,例如,C:\MyTests\Datapool\ClassicsMap.MAP

运行 SAFS 脚本

  1. C:\safs\Project文件夹中复制以下的文件到项目路径处,C:\MyTests
    • safstid.ini
    • rfttest.ini
    • runRFTTest.bat
  2. 根据清单 10 编辑 rfttest.ini 文件:
    1. 在 SAFS_PROJECT 部分中,提供关于 SAFS 项目的位置。
    2. 在 SAFS_TEST 部分中,提供循环表格以及日志的名字。
    3. 保持其他的细节信息不变。
清单 10. rfttest.ini 文件
  1. 编辑 runRFTTest.bat 文件如下:
    java –Dsafs.project.config="C:\safs\project\MyTests\RFTTest.ini" org.safs.tools.drivers.SAFSDRIVER pause
  2. 双击 runRFTTest.bat 文件。在文件运行之后,在项目日志文件夹中会生成一个日志文件,例如,C:\safs\Project\MyTests\Datapool\Logs

这就是您使用 RFT 来执行 SAFS 的方式。与用 RFT 书写复杂的 Java 代码相比,用简明英语书写脚本。培训您的非技术性测试人员关于 SAFS 的内容,与培训他们关于 Java 的内容相比,是十分廉价且轻松的。

好处在于,测试人员可以在 SAFS 中启动编写脚本,就算他们不熟悉 RFT 也可以。

结论

为了单独使用软件自动化测试工具,您必须拥有关于编写脚本的脚本语言的丰厚知识。在测试项目中执行 SAFS 之后,测试领导人并不需要培训员工关于自动化工具以及编写脚本语言的知识。有了 SAFS,就能用简明语言来书写代码,这使得框架更容易执行和维护。

在 Rational Functional Tester 中实现 SAFS 以使用简明语言创建测试脚本:等您坐沙发呢!

发表评论(需填写下方的验证回答,无用户名的评论将视为匿名发表,您也可以登陆或注册后再发表评论)

您必须 [ 登录 ] 才能发表留言!

@关注乐测网

-----==== 本站公告 ====-----
1.本站是目前唯一能支持智能手机平板电脑访问的软件测试技术网站.
2.具体访问方法请参考本站的手机访问说明,或直接点击以下链接:

→点击这里打开手机平板访问说明←

    智能手机平板电脑访问方法

1.用手机浏览器输入本站网址http://www.test666.com就可直接访问
2.微信、QQ、微博或手机浏览器的二维码扫描功能扫描以下二维码图

标签云球