跳转到主要内容

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

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

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

  • 关闭 [x]

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

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

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

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

  • 关闭 [x]

使用开源工具扩展 IBM Rational Functional Tester,第 2 部分: 数据库测试自动化

以 SQuirreL SQL 进行脚本化

Daniel Gouveia (dgouveia@us.ibm.com), 软件技术销售工程师, IBM 
Dan Gouveia 是 IBM 的一名销售工程师,主要负责 Rational 软件的功能和性能的测试工具。他与客户一起用最有效的方式执行这些工具,通常处理这样一些问题,比如关键词驱动测试,开发自动化框架,等等。

简介: 测试您应用程序数据库方面的最具代表性的情节是,在您的应用程序中执行一些插入或者删除的行为,然后核查这个数据库是否已经进行了适当的更新。因为 IBM® Rational® Functional Tester 并不为数据库的工作提供一个本地的方法,所以 SQuirreL SQL 是一个满足您数据库测试需求的的好工具。它是一个用 Java™ 语言编写的开源工具,它为 Rational Functional Tester 的录制和回放自动操作性能提供了一个理想的候选。本系列文章的 第 1 部分 向您展示了如何安装 Rational Functional Tester 和 SQuirreL SQL,第 2 部分则帮助您创建脚本。

查看本系列更多内容

发布日期: 2008 年 4 月 07 日
级别: 中级 其他语言版本: 英文
访问情况 : 1193 次浏览
评论: 


数据库测试

许多测试人员对他们应用软件的数据库方面的测试很感兴趣。最具代表性的情节是,在您的应用软件中执行一些插入或者删除的行为,然后核查这个数据库是否已经进行了适当的更新。由于测试小组转向了自动化操作,这个数据库测试就变成了一个自然的需求。不幸的是, IBM® Rational® Functional Tester 并不为数据库的工作提供一个本地的方法。

SQuirreL SQL 是满足您数据库测试需求的一个很好的工具。当听到这个消息时,您可能会开发一个 "Yet Another Tool Syndrome" 的快速案例。毕竟,它实际上也是您需要的另一个工具。值得兴奋的是它是一个开源工具。这样您就可以免费下载和使用这个工具。更进一步说,万一您在使用这个工具时遇到一些问题,它还可以提供一定水平的支持。最后,它是用 Java™ 语言编写的。这样就为 Rational Functional Tester 的录制和回放自动操作性能提供了一个理想的选择。

这篇文章描述了一个“启动”指南的改编,这个“启动”指南帮助客户在他们的 Rational Functional Tester 自动操作中接受 SQuirreL SQL 的使用。SQuirreL SQL 为有抱负的数据库大师提供了过剩的功能。尽管如此,这个系列的目的还是使事情保持简单,同时确保它能表达某些关键的概念,比如运行一个查询以及核查这个结果集合。它并不处理众多遗留下的性能,而是留给像您这样有寻根问底精神的人来研究。

您 会发现下面的文章十分有用。对于附加的透明度,如果您熟读这篇文章,那么就可以利用这篇文章中创建的脚本。您可以在这篇文章末尾的表格中下载。

要注意的是,在执行这篇文章中的练习之前您要有 Rational Functional Tester 经验 (至少有录制和回放的经验)。

这个系列的第 1 部分向您展示了如何为这些脚本功能配置 Rational Functional Tester。这篇文章将告诉您如何创建和捆绑脚本。这篇文章假定您已经完成了第 1 部分中详述的那些步骤。


要中之首:先决条件

在开始之前,确保您已经安装了 Rational Functional Tester,许可证,做好了开始的准备!这显然非常好,但是对您来说最重要的是成功地完成这篇文章中的任务。


数据库测试自动化: SQuirreL SQL 对应的脚本

下面的步骤将引导您完成创建脚本的四个步骤。开始的三个步骤重点强调具体的 SQuirreL SQL 任务。最后一个脚本是一个命令脚本,汇聚这三个脚本来依次执行。

第一个脚本

录制 SQuirreL SQL 对应的第一个脚本:SQuirreL_SQL_Connect 脚本。

  1. 点击 Record 按钮。
  2. 提供这个脚本的名称并点击 Finish 按钮来开始录制:如图 1所示。

图 1. 为这个脚本提供一个位置和名称
录制一个脚本 recording toolbar
  1. 选择 Start Application 按钮,再选择 squirrel-sql – executable 作为您的应用软件,然后点击 OK按钮,如图 2所示。

图 2. 选择这个应用软件
选择这个应用软件
  1. 双击这个 Classics Database 小程序 (在 SQuirreL SQL 窗口),如图 3所示。

图 3. 选择一个别名
选择一个别名
  1. 点击 Connect 按钮 (这次也不需要 User 名称或者 Password,如图 4所示)。

图 4. 连接到这个数据库
连接到这个数据库
  1. 点击 Rational Functional Tester 中的 Stop Recording 按钮。

您现在应该拥有一个看起来跟列表1相似的脚本。


列表 1. Recorded SQL Connect 脚本
                
import resources.SQuirrel_SQL_ConnectHelper;

/**
 *  Description		: XDE Tester Script
 *  @author	IBM Rational
 */
public class SQuirrel_SQL_Connect extends SQuirrel_SQL_ConnectHelper
{
/**
 *  Script Name		: SQuirrel_SQL_Connect
 *  Generated			: Jun 20, 2007 9:51:08 AM
 *  Description		: XDE Tester Script
 *  Original Host		: WinNT Version 5.1 Build 2600 (S)
 *
 *  @since 	2007/06/20
 *  @author	IBM Rational
 */
public void testMain (Object[] args)
{
		startApp(“squirrel-sql”);
	
			// Frame :  SQuirrel SQL Client Version 2.5
		listOfDatabaseAliasesThatCanBe().doubleClick(atText(“Classics Database”));
		connect().click();
}
}

第二个脚本

录制 SQuirreL SQL 对应的第二个脚本:SQuirreL_SQL_Simple_Query脚本。

  1. 提供这个脚本的名称并点击Finish按钮开始录制它,如图 5所示。

图5. 开始录制您的脚本
开始录制您的脚本 录制
  1. 选择 Session > New SQL Worksheet,如图 6所示。

图 6. 打开一个新的 SQL 工作表
显示会话菜单
  1. 在 SQL 编辑区域点击,并键入 SELECT * FROM ORDERS,如图 7所示。

图 7. 键入 SQL 命令
键入 SQL 命令

注意:您可能需要最大化您的窗口并重新调整这个 RESULTS 方框。

  1. 点击 Run SQL按钮(同样如图 7所示)。
  2. 创建 Verification Point 和 Action 向导,如图 8所示。

图 8. 选择一个对象
 选择一个对象
  1. 利用 Object Finder 工具在 SQuirreL SQL 窗口中选择这个结果集合,如图 9所示。

图 9. 选择这个结果集合
选择这个结果集合
  1. 选择 Data ValueTable Contents,为 Verification Point Name 提供VerifyOrdersResultSet,然后点击 Next 按钮(如图 10 所示)。

图 10. 插入一个验证点
window with verification point details
  1. 选择首5栏(为数据测试之用),并点击 Finish 按钮,如图 11所示。

图 11. 选择数据来进行测试
选择数据来进行测试

注意:确定您已经选择了下拉菜单中的Column Selection。然后您可以选择第一栏(也就算,点击数据的第一个单元),并拖拽到右边。

  1. 点击 Rational Functional Tester 中的 Stop Recording按钮。

您现在应用拥有一个看起来跟列表 2相似的脚本。


列表 2. 录制的 Simple Query 脚本
                
public class SQuirrel_SQL_Simple_Query extends SQuirrel_SQL_Simple_QueryHelper
{
/**
 *  Script Name		: SQuirrel_SQL_Simple_Query
 *  Generated			: Jun 20, 2007 9:54:46 AM
 *  Description		: XDE Tester Script
 *  Original Host		: WinNT Version 5.1 Build 2600 (S)
 *
 *  @since 	2007/06/20
 *  @author	IBM Rational
 */
public void testMain (Object[] args)
{

			// Frame :  SQuirrel SQL Client Version 2.5
		mainFrameMenuBar().click(atPath(“Session”));
		mainFrameMenuBar().click(atPath(“Session->New SQL Worksheet”));
		justToMakeGetToolTiptextToBeCa().click(atPoint(30,9));
		mainFrame().inputKeys(“{CAPSLOCK}SELECT * FROM ORDERS”);
		runSQLControlENTER().click();
		VerifyOrdersResultSetVP().performTest();

}
}

注意:根据您使用的 Rational Functional Tester 的版本,您的验证点基线看起来应该如下所示:
dataSetViewerTablePanelMyJTabl().performTest(VerifyOrderResultSetVP());

第三个脚本

录制 SQuirreL SQL 对应的最后一个脚本 SQuirreL_SQL_Close 脚本。

  1. 提供这个脚本的位置和名称,然后点击 Finish 按钮来开始录制,如图 12所示。

图 12. 开始录制
开始录制 recording toolbar
  1. 在 SQuirreL SQL 中,选择 File > Exit,如图 13所示。

图 13. 现存的 SQuirreL SQL
现存的 SQuirreL SQL
  1. 点击这个信息对话框中的 Yes 按钮,如图 14 所示。

图 14. 确定您想要关闭这个会话
确定您想要关闭这个会话
  1. 如果您得到一个如图 15所示的 "不要保存变更" 的对话框,只需点击 No 即可。

图 15. 不要保存变更
确认保存变更
  1. 点击 Rational Functional Tester 中的 Stop Recording 按钮。

您现在应该拥有一个看起来与列表 3相似的脚本。


列表 3. 录制的 SQL Close 脚本
                
public class SQuirrel_SQL_Close extends SQuirrel_SQL_CloseHelper
{
/**
 *  Script Name		: SQuirrel_SQL_Close
 *  Generated			: Jun 20, 2007 10:01:03 AM
 *  Description		: XDE Tester Script
 *  Original Host		: WinNT Version 5.1 Build 2600 (S)
 *
 *  @since 	2007/06/20
 *  @author	IBM Rational
 */
public void testMain (Object[] args)
{

			// Frame :  SQuirrel SQL Client Version 2.5
		mainFrameMenuBar().click(atPath(“File”));
		mainFrameMenuBar().click(atPath(“File->Exit”));
		
		
			//
		yes().click();

			//
		no().click();

}
}

第四个脚本

将它捆绑在一起,创建这个命令脚本:SQuirreL_SQL_Shell

  1. 右键点击 Rational Functional Tester 中 Functional Test Project 视图中的项目,然后选择 Add Empty Script,如图 16所示。

图16. 添加一个空白脚本
添加脚本
  1. 为这个脚本提供一个位置和名称,点然后击 Finish,如图 17所示。

图 17. 开始录制一个空白测试脚本
开始录制一个空白测试脚本
  1. 在 // TODO Insert code here // 后面创建一个新的命令行,点击这个空白命令行并将鼠标定位在这里。
  2. 右键依次点击每个 SQuirreL SQL 脚本,并选择 Insert As callScript 将它们添加到您的新的命令脚本中 ,如图 18所示。

注意:注意要按照顺序添加这些脚本。


图 18. 将脚本插入到您的命令中
将脚本插入到您的命令中

注意:注意要按照顺序添加这些脚本。

您现在应该拥有一个看起来与列表 4相似的脚本。


列表 4. 完成的 SQL 命令脚本
                
import resources.SQuirrel_SQL_ShellHelper;

/**
 *  Description		: XDE Tester Script
 *  @author	IBM Rational
 */
public class SQuirrel_SQL_Shell extends SQuirrel_SQL_ShellHelper
{
/**
 *  Script Name		: SQuirrel_SQL_Shell
 *  Generated			: Jun 20, 2007 10:09:19 AM
 *  Description		: XDE Tester Script
 *  Original Host		: WinNT Version 5.1 Build 2600 (S)
 *
 *  @since 	2007/06/20
 *  @author	IBM Rational
 */
public void testMain (Object[] args)
{
		callScript(“SQuirrel_SQL_Connect”);
		callScript(“SQuirrel_SQL_Simple_Query”);
		callScript(“SQuirrel_SQL_Close”);
	
}
}


好戏上演!回放这些脚本

既然您已经创建了您的 SQuirreL Scripts,回放它们只是小菜一碟。值得注意的有两点:

  • 当回放这些脚本时,您应该注意一些时间掌握的问题。只需将 waitForExistence()程序命令添加到某些对象中就可以解决这个问题。例如,在第一个脚本中,将它添加到这个数据库应用程序对象中。我使用的代码行看起来如下所示:

    listOfDatabaseAliasesThatCanBe().waitForExistence();
  • 您可以将同步化添加到您另两个脚本中。主要是,您要确定第一个脚本是否已将离开了 SQuirreL SQL 处理数据,第二个脚本要等到它完成才可以开始。

结束时的思考:从此处进行到哪里?

研究 SQuirreL SQL 为您提供的广泛将对您有很大的帮助。如果您今天所看到的这些简单的功能能够满足您的需求那就更好了。然而,您或许能发现利用这个工具您还能做出更了不起的事情来。更值得人骄傲的是,您能够利用 Rational Functional Tester 自动化操作这些程序。

作为一个自动化工程师,您不需要创建仅仅为数据库测试利用的测试项目(当然,除非那是您所做的所有事情)。相反,而是您把这种自动化置入到您的应用软件脚本中。这里有几种操作方法。

  • 方法之一是使这些脚本变成通用的方法,意思是它们能为各种参数所用(比如 SQL 查询字符串),并能动态核实结果集合。然后您可以创建自定义 Super Helper Classes 并将这些普通的方法置于其中。这样您就可以简单地从您的测试脚本中调用必要的方法(例如在一个表格中查询)。
  • 另一种方法,或许更简单,就是将这些保存作为脚本。您仍然需要使它们为普通可用的(例如,接受不同的参数,等等),但是它们是从命令脚本中被调用的(与您在这个练习中创建的命令脚本类似)。

您如何来操作这些事情完全取决于您自己。任何案例的最终结果都是,您现在知道如何利用 Rational Functional Tester 和 SQuirreL SQL 来成功地对您的数据库测试进行自动化操作。



下载

描述名字大小下载方法
Scripts to accompany the articlesquirrel-sql-scripts.zip15KBHTTP

关于下载方法的信息


参考资料

学习

获得产品和技术

讨论

关于作者

Dan Gouveia 是 IBM 的一名销售工程师,主要负责 Rational 软件的功能和性能的测试工具。他与客户一起用最有效的方式执行这些工具,通常处理这样一些问题,比如关键词驱动测试,开发自动化框架,等等。

关于报告滥用的帮助

报告滥用

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


关于报告滥用的帮助

报告滥用

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


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=300061
ArticleTitle=使用开源工具扩展 IBM Rational Functional Tester,第 2 部分: 数据库测试自动化
publish-date=04072008
author1-email=dgouveia@us.ibm.com
author1-email-cc=rjbence@us.ibm.com

标签

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

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

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

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

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