跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

利用 Rational Functional Tester 实现 ITCL (或者 IBM) 框架

Aarti Goel (aartgoel@in.ibm.com), 高级软件工程师, IBM India Pvt. Ltd.
Aarti 拥有超过4年的软件测试经验,并广泛从事于使用 Rational Functional Tester进行软件测试功能自动化工作。目前她是一位高级软件工程师。

简介: 为了使应用程序的功能测试自动化,这篇文章介绍了一个使用 Rational Functional Tester 实现ITCL框架的五步过程。

发布日期: 2007 年 5 月 22 日
级别: 中级
访问情况 : 1718 次浏览
评论: 


介绍

很多论坛和团体都对IBM框架(或者ITCL框架)进行了详细的说明:它究竟是什么,它怎样工作以及它有什么潜在的优势。这篇文章的目的就是集中讨论IBM框架的实现。它将详细说明了为了自动化应用程序的功能测试,通过利用 IBM® Rational ®Functional Tester,IBM 框架是如何被实现的。


框架

IBM 框架以前被称作为 ITCL 框架,由质量软件工程(Quality Software Engineering) 和 IBM 中有经验的自动化团队合作开发而成的。这个框架由三层架构组成,架构的实现贯穿了应用对象、任务和测试用例包(IBM 包)。

潜在于应用对象、任务和测试用例包之下的基本原理是:

  • 层次化的体系架构
  • 将“做什么”与“如何做”分离开来
  • 代码重用
  • 一致和清晰的组织结构
  • 快速增强的能力
  • 迅速的调试
  • 有效地组织文件
  • 启用协作
  • 学习他人

下面是对应用对象、任务和测试用例的解释说明:

  • 应用对象:储存有关你的应用程序中的GUI元素信息。同时在这里也可以编写你的Getter 方法,这些 Getter 方法可以返回对象,使 调用者能够对这些GUI元素进行查询和操作。一般情况下,这些方法在Task层中进行调用。
  • 任务:在这里你将编写可重用的方法,这些方法在你的应用程序中执行通用功能。同时在这里,你将编写可以处理和查询复杂的特定应用程序控件的方法。在任务中的方法可以被测试用例调用。
  • 测试用例:导航一个应用程序,验证其状态,并记录其结果的方法。

实施方法论

在本章节中概述的方法论详细说明了实施IBM框架的5个步骤。

步骤1. 首先,在你的本地驱动器上创建一个新的项目。这个项目中有一个你可以储存、维护、编译和运行你的自动化代码的储存库。在Functional Tester中,选择File > New > Functional Test Project。给这个项目命名,并点击Finish

步骤2. 将 IBM 的包― 它包括将在自动化脚本中广泛使用的工具类 ― 导入到你的项目中。尽管这可能只是简单地将路径关联到ibm.jar文件,但是将 IBM 的包导入到你的项目中就可以使你更容易地检查这个包的内容,然后在调试的时候进入到包中。这个IBM的包可以在这篇文章末尾的下载部分中进行下载。

导入 ibm.jar 包

  1. 在 IBM Rational Functional Tester中,进入屏幕左边的Projects视窗,点击在步骤1中创建的项目
  2. 选择 File > Import。选择 Zip file 然后点击Next。使用Browse按钮在你储存这个文件的指定位置上查找ibm.jar 或者ibm.zip 文件。
  3. 保留所有默认设置并点击 Finish
  4. 你现在应该可以在Functional Test Projects视窗中扩展你项目的名称。你可以在它下面看到一个名为ibm的文件夹。

步骤3. 创建一个名为AppObject的包

  1. 在IBM Rational Functional Tester中,进入屏幕左边的Projects视窗,在步骤1中创建的项目上点击。
  2. 选择File > New > New Test Folder
  3. 给文件夹命名为AppObject
  4. 点击Finish
  5. 重复1-4的步骤,创建TasksTestCase 文件夹

什么是 AppObject 包?

在这个包中你必须映射所有被测试应用的对象。一个最常见的建议是为每一个屏幕准备单独的脚本,以此确保更好的对象以及分类的的重用和组织。比如,创建一个名为login的脚本,它将使所有的对象跟login 界面保持相关。你同样可以创建其它与 sentinbox 界面等等相关的脚本。

使用 AppObject 文件夹进行工作

  1. 在 AppObject 包中建立一个空脚本
  2. 选择 AppObject 包,点击右键并选择 Add Empty Script,如图1所示。

图1. 添加一个空脚本
添加一个空脚本
  1. 将其命名为Login,并点击Finish
  2. 从脚本资源管理器中双击Private Object Map
  3. 确保 mail.yahoo.com site 网站(或者被测试应用)是打开的。
  4. 从 Private Object 图中,点击Test Object > Insert Object(s),如图2所示。

图2. 插入一个测试对象
插入一个测试对象
  1. 将指针图标工具从下面的对话框拖到你想映射的目标位置,如图3和图4所示。

图3. 通过拖拽选择一个对象
通过拖拽选择一个对象

图4. 选择的对象
选择的对象
  1. 点击Finish
  2. 你的Private Object Map窗口应该看起来如图5所示。

图5. 已完成的 Private Object Map
已完成的 Private Object Map
  1. 选择你最近添加的对象,点击右键并选择 Add to Script AppObject.Login
  2. 对所有你想要添加到这个脚本的对象重复6-10的步骤。
  3. 点击File > Save并关闭它。你的脚本资源管理器应该看起来如图6所示。

图6. Login的脚本资源管理器
Login 的脚本资源管理器
  1. 类似地,你可以尽可能创建更多的脚本到你的项目中,并添加相关的对象。

自动产生 AppObjects 代码

一旦你将你的对象添加到你的对象地图中,就可以通过编写几行代码自动产生你的getter 方法。这些getter 方法将帮助你访问跨越或在项目中被添加的脚本中的对象。你将在AppObject文件夹中创建一个空的脚本,编写如列表1中所示的代码来自动产生getter方法

  1. 在AppObject文件夹中创建一个名叫getter 的空脚本文件。
  2. 创建列表1中的代码。

列表1.自动生getter的代码

//IMPORT THESE 2 STATEMENTS AT THE TOP OF SCRIPT
import java.util.Vector; 
import ibm.tools.ClassGenerator;
//WRITE DOWN  THE BELOW CODE IN TESTMAIN FUNCTION
public void testMain(Object[] args) 
	{
		Vector v = new Vector();
		v.addElement (new AppObject.Login ());
	//ADD ELEMENT FOR ALL THE SCRIPTS YOU HAVE IN YOUR AppObject
		new ClassGenerator().updateScripts(v);
	}				
				

  1. 你的Getter脚本内容看起来应该如图7所示。

图7. Getter 脚本
Getter 脚本
  1. 选择Script > Run来运行这个脚本。
  2. 运行一次以后,当你点击你的Login脚本时,它将查询你是否要装载这些变更。
  3. 点击Yes,你应该可以看到你的Login脚本已经有了Getter功能,如图8所示。

图8. 用 Getter 脚本登陆系统的功能
用 Getter 脚本登陆系统的功能

步骤4. 创建任务

任务是你可以编写最大限度重用和最复杂代码的位置。

  1. 首先在Tasks文件夹中创建一个脚本(跟前面的AppObject Folder操作一样)
  2. 选择Tasks文件夹,右键点击它并选择Add Empty Script
  3. 指定详细的名称并点击Finish
  4. 将列表2中的代码插入到脚本中。

列表2. 登陆任务

//DECLARE THE OBJECT OF THE SCRIPTS EXIST IN APPOBJECT 
public AppObject.Login lgn = new AppObject.Login();
….
….
public AppObject.Login lgn = new AppObject.Login();
	public void AssignLoginInfo()
	{
		lgn.getText_login().setText("abc");
		lgn.getText_passwd().setText("New1");
	}

public void testMain(Object[] args) 
{
}							
				

  1. 你的脚本内容应当看起来如图9所示。

图9. 修正脚本内容
修正脚本内容
  1. 你可以在同一个脚本或者新的脚本中根据每个应用程序的需要随意增加各种功能。

接下来,你将使这些功能实现自动化

步骤5. 创建测试用例

在测试用例中,你可以编写现有的步骤来完成这些行为,这将继承一些 Tasks 和 Appobject的属性特征。

  1. 首先在Tasks文件夹中创建一个脚本(跟前面的AppObject Folder操作一样)
  2. 选择Tasks文件夹,右键点击它并选择Add Empty Script
  3. 指定详细的名称并点击Finish
  4. 将列表3中的代码插入到脚本中。

列表3. 测试用例

//DECLARE THE OBJECT OF THE SCRIPTS EXIST IN TASKS 
//OBJECT CREATION OF TASKS LOGINTASK SCRIPT
	public Tasks.LoginTask lt = new Tasks.LoginTask();
….
….
public void testMain(Object[] args) 
{
	//INVOKING THE BROWSER
	startBrowser("mail.yahoo.com");
	//ASSIGNED THE USER NAME AND LOGIN INFO
	lt.AssignLoginInfo();
	//CLICKED ON LOGIN/SUBMIT BUTTON
	lt.lgn.getButton_signInsubmit().click();
	//FURTHER ACTION CAN BE WRITTEN ACCORDIUNLGY		
}

  1. 你的脚本内容看起来应当如图10所示

图10. 最后的脚本
最后的脚本
  1. 现在运行这个脚本,打开浏览器,输入用户名和密码,然后登陆到Yahoo帐户

总结

通过文章中概述的5个步骤你可以实现IBM 框架。这里的一些例子和代码片断都是跟 Rational Functional Tester 相关的。它们会随着其它IBM 框架的实现是否在使用另外一个工具而有所变化。



下载

描述名字大小下载方法
IBM package filesibm_package.zip551 KBHTTP

关于下载方法的信息


参考资料

学习

获得产品和技术

讨论

关于作者

Aarti 拥有超过4年的软件测试经验,并广泛从事于使用 Rational Functional Tester进行软件测试功能自动化工作。目前她是一位高级软件工程师。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=229608
ArticleTitle=利用 Rational Functional Tester 实现 ITCL (或者 IBM) 框架
publish-date=05222007
author1-email=aartgoel@in.ibm.com
author1-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。