如何通过ibm rational 下载Integration Tester来测试Web Services

IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
了解如何配置 SSL 并在 IBM® Rational® Integration Tester 中使用它测试和虚拟化安全服务。
, 首席架构师, Green Hat Technologies,
John Chewter 是 IBM 高级技术人员和首席架构师,从事与 Green Hat 技术有关的工作。他在英国工作,拥有超过 25 年的软件从业经验,过去十年一直从事 Integration Testing and Service Virtualization 方面的研究。
简介IBM® Rational® Integration Tester 是 IBM® Rational® Test Workbench 提供的诸多功能的一部分,使您能够对非常复杂的应用程序进行集成测试。Rational Integration Tester 是一种桌面解决方案,可以通过如下方式测试遗留的或现代化的架构: 帮助您显示服务和组件之间的连接和依赖关系。 为不能用于测试的服务创建存根(stub),并自动化完成集成测试的所有工作。 本文将重点介绍 Secured Socket Layer (SSL) 在 Rational Integration Tester
中的使用和配置。由于设置过程涉及大量信息,因此使 Secured Socket Layer 及其配置变得难以理解。SSL 在 IBM Rational Integration Tester 中的配置和使用则难上加难,因为存在大量不同的技术,并且应用程序能够同时充当客户端和服务器。 Rational Integration Tester 在受支持的传输物理资源编辑器中提供了 SSL 配置,每个配置都引用了密匙材料(key material),用于进行对等验证,也可以选择用于呈现测试或存根。
为了提供密匙管理帮助,Rational Integration Tester 使用了一种 Identity Store 资源,它是围绕 Java 密匙库(keystore)的便捷包装器,使您能够统一地导入和管理各种形式的私匙和证书。 在“在 Rational Integration Tester 内使用 SSL”系列文章的第一篇中,您将:了解什么是密匙材料 了解在 SSL 握手的哪个环节以及如何使用密匙材料 找到包含密匙材料的文件 对 SSL 在 Rational Integration Tester 内的管理、配置和使用有一个整体理解密匙材料SSL 通信基于公共和私有密匙对,允许通信的每一端(或每个对等端)使用一个或另外一个密匙建立安全的共享密匙。在结合使用证书和证书颁发机构后,这些密匙对就能提供一个安全通信框架。 在通过 SSL 进行通信时,Rational Integration Tester 将充当客户端的角色,需要能够在建立连接后对提供给它的身份进行验证。在充当服务器角色以及在参与相互验证时,Rational Integration Tester 也需要能够提供一个身份。
SSL 握手在使用 SSL 建立连接后将发生一次握手,这样双方可以验证对方的身份,从而能够安全地进行后续通信。图 1 展示了在握手期间有哪些环节使用了密匙。 图 1. 在 SSL 握手期间使用密匙材料在接收到客户端 Hello 消息后,服务器将回应一个 Hello 消息,其中包含它的数字证书。 如果发生了相互认证,服务器将发送一个客户端认证请求,包含一个可接受的证书颁发机构的名称列表。客户端将验证服务器证书上的签名。 如有必要,客户端将发送它的证书,或者一个 无数字证书 警告。
SSL 服务器将验证客户端证书的签名。 认证过程是通过在 SSL 握手期间互相交换数字证书实现的。 所需的证书如下所示,其中证书颁发机构 CA1 向 SSL 客户端发出一个证书,而 CA2 向 SSL 服务器发出一个证书: 服务器身份验证客户端身份验证自签名证书服务器身份验证服务器身份验证是最常见的场景,通常发生在电子商务过程中,只要求客户端信任服务器。对于服务器身份验证,SSL 服务器需要以下内容:
CA2 颁发的服务器证书服务器的私匙客户端需要 CA2 的 CA 证书 或 CA2 颁发的服务器证书。客户端身份验证客户端身份验证也称为相互验证,其中 SSL 服务器需要验证客户端的身份,它将检查客户端的数字证书。对于客户端身份验证,服务器将给出一组它所信任的证书类型和颁发机构,这样客户端就能从其身份库中找到并返回最合适的身份。除了上述内容外,SSL 服务器还需要 CA1 的 CA 证书 或 CA1 颁发的客户端证书。客户端还需要以下内容:
CA1 颁发的客户端证书客户端的私匙客户端身份验证实际上只是将服务器验证的需求颠倒了一下。 注意:双方可能都需要其他中间证书来构成一个证书链,该证书链的终端是根 CA 证书。通常,这些证书被作为客户端/服务器证书的一部分包含。 自签名证书在不需要正规信任的情形下,比如在测试环境,可以使用自签名证书。这类证书可以同时看作是客户端/服务器证书以及 CA 证书。 密匙材料的文件格式 在 Rational Integration Tester 中定义测试系统的模型时,密匙材料通常手动生成,或来自正在与之进行交互的服务器。密匙被导出或下载,并按照以下文件格式进行存储:
PEM 格式DER 格式PKS#7 格式PKS#12 格式JKS 格式PEM 格式
PEM 格式是最常见的认证格式。扩展名包括 .pem、.crt 和 .cer。它们是使用 Base64 编码的 ASCII 文件,并包含某些
-----BEGIN CERTIFICATE----- 及 -----END CERTIFICATE----- 语句。尽管证书和私匙可以保存为 PEM 格式,但是 Rational Integration Tester 只处理证书元素。 DER 格式
DER 格式是密匙材料的原始的二进制版本。文件扩展名通常为 .der,但是很多时候使用和 PEM 证书相同的扩展名 .cer。如果在一个简单的编辑器中打开 DER 格式文件,那么将无法读取文件内容。 PKCS#7 格式
PKCS#7 格式包含单独的证书和证书链,但是不包括私有密匙。尽管它可以保存为二进制文件,但是通常以 Base64 ASCII 格式保存,文件扩展名为 .p7b 或 .p7c。Base64 P7B 证书包含 -----BEGIN PKCS7----- 和 -----END PKCS7----- 语句。PKCS#12 格式
PKCS#12 或 PFX 格式是一种二进制格式,用于在可以加密的文件中保存服务器证书、任何中间证书以及私有密匙。PFX 文件的常用扩展名包括 .pfx 和 .p12。JKS 格式
Java 密匙库是一个受密码保护的证书和钥匙存储库。它几乎始终基于文件形式,并由 JRE 内的默认实现提供。文件内容为二进制内容,常用扩展名为 .jks。Identity Store 资源获得相关的密匙材料后,需要将密匙导入到 Rational Integration Tester。为了能够统一地访问各种类型的密匙,Rational Integration Tester 通过一个 Identity Store 资源收藏了所有数字证书和密匙。Identity Stores 在 Architecture School 的 Physical View 中创建和访问,如图 2 所示。 图 2. 创建 Identity Store 资源在新创建的 Identity Store 资源编辑器中,您首先需要引用或创建一个底层密匙库,如图 3 所示,它将使 Rational Integration Tester 能够比较安全地保存密匙材料。 图 3. 配置新的 Identity Store单击 New ,打开标准的文件选择对话框并指定密匙库的名称和位置。
注意:如果项目要保持可移植性,那么应当将密匙库文件放在项目结构内。这种安排能够使其他用户共享密匙库,并作为已部署的测试和虚拟服务的一部分使用。 如图 4 所示,指定文件名和位置后,将密匙库放到项目内部。图 4. 设置 Keystore 密码创建密码后,开始从一个或多个支持的文件类型中导入密匙材料。单击 Import Key/Certificate(s),使用文件浏览器定位并选择文件。Rational Integration Tester 尝试识别文件类型,并在必要时请求获得用于保证密匙安全的密码,如图 5 所示。 本例中使用了 JKS 文件,Rational Integration Tester Platform Pack 为了结合使用 HTTP(S) 代理而附带了该文件。 图 5. 输入密码,执行导入和大部分包含私有密匙的密匙材料一样,需要使用一个密码来访问文件内容。对于 JKS 等格式,需要使用二级密码来访问文件中包含的私有密匙。当需要一个二级密码时,Rational Integration Tester 将自动尝试使用第一个密码。完成后,密匙材料将被添加到 Identity Store,如图 6 所示。图 6. 访问导入的证书和密匙在导入 PKCS#12 格式的私有密匙后,您可能会遇到 Identity Store 资源无法发现密匙的情况,如图 7 所示。 图 7. Identity Store 由于无效密码而无法发现密匙要访问密匙并在 Rational Integration Tester 中使用密钥,请单击 Password 列中的单元格并输入对应的密码,如图 8 所示。 图 8. 输入正确的密匙密码虽然可以将您要使用的所有密匙材料都导入到一个 Identity Store 资源中,但最佳方法是创建逻辑集合,这些集合表示各个传输应当使用的可靠的密匙组。 导入密匙材料并且可以通过 Identity Store 资源使用后,您可以在物理传输配置中使用这些密匙材料。 基于 HTTP 的 SSL 配置在 HTTP 传输中,SSL 选项卡使您能够向安全连接的一端或两端显示配置,如图 9 所示。 图 9. 指定 HTTP SSL 设置这些设置在连接的客户端用于测试,在服务器端用于虚拟服务。具体设置取决于您正在配置的是安全连接的哪一端。在服务器端配置 HTTP SSL在初始 SSL 握手期间需要用到附带的证书和对应的密码(参见 ,步骤 1)。客户端可以使用该证书和密码套件生成 pre-master
密匙并加密它,密码套件用于计算在会话后期使用的共享密匙(master 密匙)。要加密 pre-master 密匙,需要在 SSL 设置中指定
Identity Store 和密匙。 作为客户端配置 HTTP SSL
当相连接的服务器执行相互验证并请求客户端证书时,才会 需要使用附带的证书和密匙(参见 ,步骤
2)。大部分场合都不需要使用这种模式,可以将这种模式看作是使用浏览器连接到某个安全的 Web 站点。您需要知道该站点是有效的,但是站点不要求每个用户用证书和密匙证明自己的身份。 备注:如果指定这种配置,则需要将密匙与正在运行测试的机器相关联。它取决于服务器所执行的验证的程度。 为 HTTP SSL 指定可靠的证书在充当客户端或服务器时,您可以对 Rational Integration Tester 进行配置,对提供给它的证书执行更高级别的验证。提供的选项包括:Perform Authentication:表示是否应该执行任意级别验证,或者是否应该盲目信任远程对等传输端。 Specify Trusted Certificates:表示远程对等端提供的证书链末端的证书必须匹配经过配置的 Identity Store 资源中的某个证书。 Verify Certificate Chain:确保对等端的证书链是正确的,而且每个证书都是有效的。 通常,出于测试目的,您不需要关心所连接的服务器的身份或有效性,因此所有这些选项通常保留为未选中状态。 针对其他传输配置 SSL 其他许多传输,比如 IBM® WebSphere® MQ 和 CICS® Transaction Gateway,也提供了客户端 SSL 连接以及一组类似的配置选项。在所有情形下,都可以通过相同的方式使用密匙材料来信任客户端身份和表示它。对 SSL 通信进行故障排除在配置 SSL 时,最重要的一点是理解都涉及到了哪些连接方,特别是它们彼此之间有什么样的关系。通过单向或相互验证确保通信的安全性,并了解所使用的协议,例如 SSL 或 TLS。 对于虚拟化,确保使用了合适的证书和密匙配置物理传输。如果企业内的物理传输不可用,那么可以使用 OpenSSL 之类的工具或 Rational Integration Tester Platform Pack 内的代理服务器附带的证书和密匙建立连接。 结束语本文介绍了各种密匙类型以及它们在 Rational Integration Tester 中的使用,从而可以连接并测试使用 SSL 保护的应用程序。在本系列第二部分中,我们将探讨如何使用 HTTP(S) 代理服务器来记录和重新路由安全流量,我们将使用现有密匙材料或使用 HTTP 代理服务器附带的证书和密匙。HTTP 代理服务器包含在 Rational Integration Tester Platform Pack 中。
参考资料 在 developerWorks 上了解有关 Rational Integration Tester 的更多内容。特别是查找以下这些资源: 包含指导内容和有用的提示,以及安装说明。 (developerWorks,2013 年 11 月)解释了在缺乏必要组件的情况下如何简化集成测试。了解 (developerWorks,2013 年 2 月)了解 。在 ,并在
了解它的特性和优点。访问 ,获得与 Rational 统一和集成解决方案有关的技术资源、最佳实践和信息,这些解决方案用于实现软件和系统交付。
提高您的技能。查看
目录,其中包括涉及广泛主题的众多教程。您可以随时随地学习这些教程,并且许多入门教程都是免费的。从
下载 Rational Test Workbench,其中附带了 Rational Integration Tester。下载 Rational 软件的 。:下载试用版,在线试用,或者在云环境中使用。 在
找到同伴并关注最新信息。在 、(@ibmrational)和
上关注 Rational 软件并发表评论。加入 。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
为灾难恢复构建应用,赢取现金大奖。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=RationalArticleID=980108ArticleTitle=在 Rational Integration Tester 内部使用 SSLpublish-date=IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
这篇文章将帮助你如何开始使用IBM Rational Functional Tester 6.1。它引领你熟悉记录三个功能测试脚本并把它们放在一起合为一个回归测试的过程。
(), 高级顾问, Fusion 联盟
Michael Kelly目前是位于Indianapolis的Fusion联盟的一名高级顾问。他拥有管理一个软件自动化测试团队的经验,并从1999年开始使用Rational工具工作。他的主要研究领域是软件开发生命周期、软件测试自动化,以及项目管理。你可以通过电子邮件。
编者注:本文是基于IBM软件开发平台版本6.1以及Windows XP Professional SP2的。你已经有了IBM(R) Rational(R) Functional Tester 6.1 for Java(TM),你的电脑上
安装了网络,而且你已经对它们作了一些尝试,但是你还不确定如何使用它来对你投入到自动化上的时间获得最大的回报。这篇文章适用于初学者,它将循序渐进地带领你熟悉使用Rational Functional Tester创建功能测试脚本的过程。我们将记录三个功能测试脚本并用它们组成回归测试。脚本将是非常基本的,建立时间不会长,但是在建立它们的过
程中我们将看到Functional Tester的一些关键特性。我们将使用作为我们的应用程序测试对象。请记住该站点的内容变化(这是会经
常发生的)将会影响本文中包含的例子的运行结果。首先,介绍一些术语功能测试的准确定义是什么?功能测试是一个帮助你决定系统功能是否符合预期设计的测试。使用功能测试
你可以测试操作和图形用户界面对象的外观。比如,一个命令按钮的功能测试既包括了对按下按钮时的动作的测试,也包括了对按钮的大小,位置
和颜色的测试。在自动化的环境中,回归测试指的就是运行以前开发的测试脚本,把最新编译的被测试应用程序与你早先
建立的基准进行比较。回归测试揭示了从上次编译以来被引入到应用程序的不同之处。由此你可以评估这些差异来决定它们实际是缺陷还是经过考虑
的变化。测试的选择自动化测试的第一步是选择你的测试。为回归测试选择需要自动化的测试既是一门科学又是一项艺术,而且为了有
效地进行选择,花费时间学习一些策略是很重要的。你可以遵从一些简单的指导原则并使用一些常识,但是通常你还需要一定的直觉,这意味着你做
得越多你得到的也越多。由于篇幅所限,我在这里无法介绍选择哪些测试进行自动化,哪些测试保留为人工测试的细节,但是我建议你可以参考关于这一
主题的很多优秀文章,比如本文的部分列出的那些文章。建立功能测试项目在你可以记录脚本之前,你需要一个功能测试项目。按照下列步骤建立功能测试项目:打开IBM Rational Functional Tester 6.1 for Java and Web。如果工作空间向导打开了,点击OK选择默认的工作空间。一旦Functional Tester打开完毕,确保已经通过点击屏幕右上角的Functional Test按钮选择了
Functional Test视图。从菜单中选择File & New & Functional Test Project。在“建立一个新的功能测试项目”对话框中,输入项目的名称(在我们的例子中,使用名字BookPool)并
点击完成。图1 “建立一个新的功能测试项
目”对话框这样就在功能测试项目视图中加载了项目。建立一个功能测试脚本现在我将带你进入为了回归测试的目的而记录三个功能测试的步骤。脚本将是很基本的,建立不需要很长时间,但是在建立
它们的过程中你将了解一些Functional Tester的关键特性。在你开始记录你的回放脚本以前,你将需要为它们在项目中建立一个文件夹。这将帮助你避免混淆,在有很多脚本的
情况下井井有条,而且在后面你需要一次执行所有的回放脚本时它还将对你有所帮助。建立文件夹的方法是,右键点击功能测试项目视图中的BookPool项目,从弹出的菜单中选择添加测试文件
图2 从菜单中
选择添加测试文件夹输入文件夹的名称(在我们的例子中,使用RegressionScripts)并点击完成。
图3 建立测试
文件夹对话框你应该在功能测试项目视图中看到文件夹被列在BookPool项目下。测试一:检验客户是否可以搜索首先,我将告诉你如何建立一个检验网站是否包含允许客户进行搜索的功能的测试脚本。对这个测试来说,你只需要
简单地打开网站,在搜索域中输入文本,点击搜索,然后检验是否出现了正确的结果总数以及前三个搜索结果是否是你期待的书名。搜索在功能测试项目视图中右键点击RegressionScripts文件夹,在弹出的菜单中选择添加带有记录的脚本。
图4 功能测试
项目视图这将打开“记录一个新的功能测试脚本”向导。为脚本命名(在我们的例子中,使用VerifySearch)然后
点击完成。
图5 “记录一
个新的功能测试脚本”向导这将打开功能测试记录监视器。从这个监视器你可以启动你想要测试的应用程序,记录程序内的动作,记
录检验结果的验证点,并在记录的同时向脚本中加入数据驱动元素。在这个测试中,你只需要把重点放在基本步骤上——包括一些简单验证点的添
图6 功能测试
记录监视器打开浏览器访问站点。点击启动应用程序图标来打开“启动应用程序”向导。默
认情况下不会列出任何应用程序,因此你需要把BookPool网站加入应用程序列表。
图7 “启动应
用程序”向导点击编辑应用程序列表按钮。这打开了应用程序配置工具。
图8 应用程序
配置工具点击右边的添加按钮。这打开了“添加应用程序”向导要求你选择你添加的应用程序的类型的部分
图9 在“添加
应用程序”向导中选择应用程序类型点击HTML应用程序单选按钮然后点击下一步。添加应用程序向导要求你选择一个HTML应用程序。
图10 在“添
加应用程序”向导中输入URL为你想要测试的应用程序输入URL(在我们的例子中是)并点击完成。这使你回到
应用程序配置工具,此时应用程序应出现在应用程序列表中。
图11 应用程
序配置工具点击完成。现在你应该可以在“启动应用程序”向导的应用程序名的下拉菜单中看到你的应用程
图12 “启动
应用程序”向导选择应用程序并点击OK。这启动了带有已加载网页的浏览器。当Functional Tester
在后台工作时,这一启动可能需要几秒钟。点击搜索域并输入“软件测试”作为搜索文本。
图13 在搜索
域中输入搜索文本点击Search按钮。结果页面应被加载并与下图近似。注意你的结果依据你记录测试的时间不同将有
上搜索“软件测试”的结果创建验证点首先,为了验证所有搜索到的结果都已被返回,你将建立一个HTML格式的验证点,它包含“Software Testing”的全部
53个结果”。在功能测试记录监视器中点击“插入验证点或动作命令图标”。这将打开“验证点和动作”向导。
图15 “验证点和动作”向导点击Object Finder图标并将其拖至浏览器中的“‘软件测试’的全部53个结果”窗体中。
图16 用红线圈住的浏览器中的“Software Testing”的全部53个结果
窗体你一旦选择了窗体,“验证点和动作”向导就会再次出现并要求你选择对窗体进行的动作。点击“Perform Data Verification Point”单选按钮并点击下一步。
图17,通过选择“Perform Data Verification Point”选项来选择一个动作标签下一个画面允许你对验证点的一些属性进行修改。把数据值改为可见文本,因为你必须看着文本进行检验
。如果愿意的话你还可以更改验证点的名称,但是默认的名称一般是比较有描述性的,因此我认为使用默认的就很好。最后,选中“Include retry parameters”复选框,这样Functional Tester将会每两秒钟检查一次你的应用程序中验证点的存在,并持续二十秒(这是默认值;你也可以输入你自己需要的
值)。在测试Web应用程序时这是非常方便的,因为你并不知道下载网页和显示信息需要多少时间。
图18 插入检
验点数据命令标签,选中了 Visible Text点击下一步。这打开了“验证点和动作”向导的最后一个对话框——在这个对话框中你能够选择包含在你的验证点中的属性。这个对话框体现了Functional Tester更强大的特性,但并不像它看上去那么复杂。
图19 验证点
数据标签,选中了表格All53ResultsForSoftwareTesting(“‘Software Testing’搜索的全部53个结果”)即使你不会对这这些内容做出任何更改,你也应该注意他们。测试对象面板和识别标签对任何类型的验证点都会出
现。而右面的面板依据你在向导的前几个标签窗口选择的不同将会显示不同信息。测试对象面板包括一个树状结构,它是脚本对象图的一个部分版本。这一分级显示只包含你的验证点内的对象。
你不能对树进行编辑,但是你可以选择其中的对象并在右边面板的属性列表中编辑它的属性。通过检查测试对象面板中的节点你就把那个节点中的
数据包括进了你的验证点。在上面的例子中,你测试的只是你选择的表格,不是那个表格的任何父元素。识别标签显示了Functional Tester用来定位和管理测试对象的识别数据。管理标签显示了对象的内部管理
数据。这些标签都不能编辑。元数据标签是你可以编辑的,它显示了定义特定数据如何管理的一组属性。右边的面板显示了对象属性。由于你建立了一个数据验证点并选择了可见文本测试,显示的文本是一种文
本框的形式。在这个文本框中,你可以编辑数据,把数据转换为正规表达式,并/或为数据驱动测试把数据转化为数据引用。点击完成接受默认设置。现在你要为搜索到的前三本书分别添加一个验证点来保证搜索结果的顺序是正确的。再次点击功能测试记
录监视器中的“插入验证点或动作命令”图标。使用Object Finder,选择列表中的第一本书——或者更精确地说,搜索结果表格中的第一个单元。在我们
的例子中,那本书是 Testing Computer Software,作者是Cem Kaner et al(那是我在软件测试方面第二喜爱的书)。
图20 用红线
圈起来的搜索结果表格中的第一本书一旦你选中了书,在“验证点和动作”向导中点击“ Perform Data Verification Point”单选按钮,和前面的步骤三是相同
的,然后点击下一步。在下一个画面中,把数据值改为可见文本并选中“Include retry parameters”复选框,和前面的步骤四相同。点击
下一步然后点击完成。对搜索结果中列出的后两本书重复这个过程。完成并运行这个脚本现在你将要完成并运行脚本以确认它是正确的。关闭浏览器。点击功能测试记录监视器上的停止记录图标。Functional Tester此时应该产生一个与列表1近似的测试脚本。(为了节省篇幅我删去了注释。)列表1 刚刚记录的VerifySearch回放脚本package RegressionS
import resources.RegressionScripts.VerifySearchH
public class VerifySearch extends VerifySearchHelper
public void testMain(Object[] args)
// HTML Browser
startApp("");
// Document: Bookpool: Discount Computer Books. Welcome!:
/.x/nqbosf60z8/ho
text_qs().click(atPoint(72,6));
browser_htmlBrowser(document_bookpoolDiscountCompu(),DEFAULT_FLAGS).inputChars
("Software Testing");
button_search_btnGif().click();
All53ResultsForSoftwareTestVP().performTest(2.0, 20.0);
SearchResults_KanerVP().performTest(2.0, 20.0);
SearchResults_DustinVP().performTest(2.0, 20.0);
SearchResults_WhittakerVP().performTest(2.0, 20.0);
browser_htmlBrowser(document_bookpoolBooksFound(),DEFAULT_FLAGS).close();
}你还应该在右边的脚本浏览器中看到列出的所有验证点和测试对象。图21 验证点和测试对象列表
在功能测试项目视图中右键点击脚本并在弹出的菜单中选择Run。
VerifySearch脚本后选择运行这将打开选择日志向导。点击完成接受默认信息。Functional Tester此时应掌握控制并执行测试。执行完毕后,回放日志文件应打开并显示发生的一切。如果由于一
些原因这没有发生,把你的代码与列表1中的进行比较,确保你的所有命令都是正确的。图23 VerifySearch脚本的回放
结果的第一部分测试二:检验向篮子中添加一件物品现在你将要建立一个测试脚本来检验你是否可以向你的购物栏中添加一件物品。在这个测试中,你将打开网站,搜索
一本特定的书,把书加入你的购物栏,并检验篮子加载了你的货物以及正确信息。搜索右键点击RegressionScripts文件夹,在弹出的菜单中选择添加记录脚本。在“记录一个新的功能测试脚本”向导中,输入脚本的名称(在我们的例子中,使用VerifyBasket),然
后点击完成。点击启动应用程序图标。在“启动应用程序”向导画面选择应用程序并点击OK。当浏览器完成下载后,点击搜索域,输入 Lessons Learned in Software Testing(软件测试方面我最喜爱的书)作为
搜索文本,然后点击Search按钮。在结果画面上,点击 Lessons Learned in Software Testing书名旁边的Add to Basket按钮。建立一个验证点现在你将要检验货物被列入了购物栏中。对包含该书的表格单元使用可见文本选项来记录数据验证点。
图24 结果表
格,单元用红线圈出使用可见文本选项记录数据验证点来确保画面顶部的购物车图标已按照你购物车内的货物进行了更新。
图25 购物车
图标的文本一旦检验完成,你需要把货物从你的购物车中移走。这个网站使用cookies(我认为)来记录你的购物车信
息。因此,如果你现在不把它移除,下次你访问网站时它还将在你的车里并影响下一个脚本的运行。要移除这件货物,只需点击Remove按钮。
完成并运行脚本关闭浏览器。点击功能测试记录监视器中的“停止记录”图标。Functional Tester此时应该产生一个与列表2近似的测试脚本。(为了节省篇幅我删掉了注释。)列表2 刚刚记录的VerifyBasket回放脚本package RegressionS
import resources.RegressionScripts.VerifySearchH
public class VerifyBasket extends VerifyBasketHelper
public void testMain(Object[] args)
// HTML Browser
startApp("");
// Document: Bookpool: Discount Computer Books. Welcome!:
// /.x/nqbosfkvb8/ho
text_qs().click(atPoint(120,9));
browser_htmlBrowser(document_bookpoolDiscountCompu(),DEFAULT_FLAGS).inputChars
("Lessons Learned in Software Testing");
button_search_btnGif().click();
// Document: Bookpool: Books Found: /.x/nqbosfsev1/ss?qs=
// Lessons+Learned+in+Software+Testing&x=22&y=12
button_addToCart2Gif().click();
ShoppingBasket_LessonsLearnedVP().performTest(2.0, 20.0);
ShoppingBasket_IconTextVP().performTest(2.0, 20.0);
// Document: Bookpool: Shopping Basket:
// /.x/nqbosf15nm/ba/
button_remove().click();
browser_htmlBrowser(document_bookpoolShoppingBaske2(),MAY_EXIT).close();
}运行脚本以确保它是正确的。测试三:检验主题菜单的内容现在你将要建立一个测试脚本来检验网站主页的主题菜单的内容。在这个测试中,你将打开网页,然后简单地在整个
菜单的内容上完成一次检验。打开Web站点右键点击RegressionScripts文件夹,选择添加记录脚本。在“记录一个新的功能测试脚本”向导中,输入脚本的名称(在我们的例子中,使用VerifySubjects),
然后点击完成。点击启动应用程序图标。在“启动应用程序”向导画面选择应用程序并点击OK。建立一个验证点当浏览器完成下载后,点击Insert Verification Point or Action Command图标。使用Object Finder,选择主题表格。(我必须来到表格的最下面来选择整个表格。)
图26 用红线
圈出的主题表格在“验证点和动作”向导中,在“Data Verification Point”标签中选择“ Perform a Data Verification Point”,并在“Insert Verification Point Data Command ”标签中把 Data Value 改为 Data Grid。点击下一步将看到“验证点和动作”向导的“验证点数据”标签。这一次你将在右边的面板中看到
一个表格,它包含了你使用Object Finder从表格中选择的文本。
图27 带有主
题表格的验证点数据标签双击表格中的第一个单元(内容是“Artificial Int”),会出现另一个属性窗口。
图28 表格第
一个单元的属性窗口在这个窗口里,主题菜单的所有文本都以单元的数据属性值出现。不相信我?选择所有文本把它们复制到
记事本。你应该看到菜单中的所有根节点以及它下属的所有选项。这就是你要检验的信息。关闭窗口。对其它带有文本的单元进行相同的检查,你将发现它们都包含菜单下表格中也包含的那些项。你不需要检
查那些元素,因此你需要限制你的选择标准。使用右上角的下拉菜单把选择标准由原来的“Column Selection”改设为“Cell Selection”。选择表格的第一个单元并点击下拉菜单左边的“Update Comparison Region”图标。你的选择应该如下图所示:
图29 验证点
数据标签中选择的表格的第一个单元点击完成。完成并运行脚本关闭浏览器。点击功能测试记录监视器中的停止记录图标。Functional Tester此时将产生一个近似于列表3的测试脚本。(为了节省篇幅我删掉了注释。)列表3 刚刚记录的VerifySubjects回放脚本package RegressionS
import resources.RegressionScripts.VerifySearchH
public class VerifySubjects extends VerifySubjectsHelper
public void testMain(Object[] args)
//HTML Browser
startApp("");
EntireSubjectsGridVP().performTest(2.0, 20.0);
browser_htmlBrowser(document_bookpoolDiscountCompu(),MAY_EXIT).close();
}运行脚本以确保它是正确的。建立一个完整的回归测试脚本现在你有了三个可以工作的功能测试脚本。这三个脚本将作为你的回归测试的基准。尽管如此,当你做好准备运行你
的回归测试时,你很可能有上百个回放脚本而不希望一个一个运行它们。取而代之地,你需要一种一次运行所有脚本的方式。有几种不同方法实现
这个目的。这里我将告诉你我使用的方法。在功能测试项目视图中,右键点击BookPool项目并选择添加空脚本。为脚本命名(在我们的例子中,使用BookPool_CompleteRegression)并点击完成。Functional Tester建立一个空白脚本,与列表4中的近似。(为了节省篇幅我删掉了注释。)列表4 空白回放脚本import resources.BookPool_CompleteRegressionH
public class BookPool_CompleteRegression extends BookPool_CompleteRegressionHelper
public void testMain(Object[] args)
// TODO Insert code here
}删除// TODO Insert code here注释。当光标还在那一行时,在功能测试项目视图中右键点击RegressionScripts文件夹并选择插入已包含的
脚本,作为"callScript"。在接下来的对话框中点击是。Functional Tester向文件夹中的每一个脚本插入callScript命令,如列表5
所示。列表5 更新的脚本,能调用你的功能测试脚本import resources.BookPool_CompleteRegressionH
public class BookPool_CompleteRegression extends BookPool_CompleteRegressionHelper
public void testMain(Object[] args)
callScript("RegressionScripts.VerifyBasket");
callScript("RegressionScripts.VerifySearch");
callScript("RegressionScripts.VerifySubjects");
}运行新的脚本。回放日志应该反映了发生的所有情况。总结上述内容应该足够你初步使用Rational Functional Tester Version 6.1了。我鼓励你用大量时间记录不同类型的检
验点并运行它们和观察不同之处。我发现测试文件夹是组织回放脚本的最佳方法。它们使你能够在运行脚本时保持条理,而且它们把所有文件集中放在项
目中一个方便的地方。留意下一部分的资源,获得关于正确选择包含到你的回归测试集的测试的更多信息并确保你正在以最好的方式使它们
自动化。祝你好运!
参考资料 。您可以参阅本文在 developerWorks 全球站点上的
如果需要来自一群有经验的测试者的关于避免陷入自动化回归测试的陷阱的实用技巧,请访问,作者是Cem Kaner(Kaner的网页,1997年)。,作者是Mike Kelly (developerWorks,2003年7月),该文描述了五个基本自动化框架。如果需要关于自动化测试的有益文章的链接,请访问,作者是Brian Marick (Testing Craft网站)。从Jeff Feldstein (developerWorks,2005年1月)的文章中学习如何使用基
于模型的测试在你的测试自动化软件中实现随机行为。访问关于的更多资源。在上与
本文的作者和其他读者分享你的问题和观点。通过参与加入developerWorks社区。从开发者书店购买打折的。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
为灾难恢复构建应用,赢取现金大奖。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=RationalArticleID=99309ArticleTitle=使用 IBM Rational Functional Tester 6.1 运行你的第一个功能回归测试publish-date=

我要回帖

更多关于 ibm integration bus 的文章

 

随机推荐