配置Rational Functional Tester(RFT)以在Hudson / Jenkins中运行

时间:2009-12-16 11:16:20

标签: installation continuous-integration automated-tests hudson rft

我刚刚安装了Hudson,它运行得很漂亮。它构建,运行JUnit-tests和CheckStyle分析。

我们的下一步是创建安装,安装它,然后在实际安装上运行自动化测试。如果测试失败或者至少以某种方式发布结果,我会希望失败。我认为我们会设置它以便部分定期运行或手动触发。

我们使用InstallAnywhere进行安装,使用IBM Rational Functional Tester进行自动化测试。

所以问题是:有人创建了类似的设置吗?有没有任何插件,教程或其他资源可以帮助我。或者你一般有任何提示或建议。

4 个答案:

答案 0 :(得分:6)

Rational Functional Tester的命令行参考:

http://publib.boulder.ibm.com/infocenter/rfthelp/v8r0m0/index.jsp?topic=/com.ibm.rational.test.ft.doc/topics/RobotJCommandLine.html

运行测试的示例命令:

java -classpath "C:\IBM\RFT\FunctionalTester\bin\rational_ft.jar" 
com.rational.test.ft.rational_ft -datastore \\My_project\AUser\RobotJProjects -user admin -project
\\My_project\AUser\TestManagerProjects\Test.rsp -build "Build 1" -logfolder "Default" -log  
"Al_SimpleClassicsA#1" -rt.log_format "TestManager" -rt.bring_up_logviewer true -playback 
basetests.SimpleClassicsA_01

另外需要注意的是,您需要在代理计算机上正确配置窗口,该计算机将运行测试。这不是针对Hudson或RFT的建议,而是Windows上的所有GUI自动化工具。 RFT将需要一个交互式桌面环境,以便能够单击按钮等。如果您将Hudson代理作为Windows服务运行,则不会有桌面。请参阅以下内容:Silverlight tests not working unless RDP connection open

答案 1 :(得分:3)

我们在Hudson上运行了一个相当复杂的分布式构建,它基本上是一个过程:

  1. 在Windows上测试。
  2. 在OSX上测试,运行代码覆盖率&将结果推送到服务器。
  3. 测试OSX Tiger。
  4. OSX Leopard&包装将构建推送到服务器。
  5. 适用于Windows的套餐&将构建推送到服务器。
  6. 更新产品网站。
  7. 我们不使用InstallAnywhere或Rational Functional Tester,但它们具有类似的机制。我们发现在哈德森唱歌的关键是能够从命令行运行我们的各个步骤。 Maven和相应的插件完成了这项任务的简短工作。所以我的建议就是这样,使用你正在使用的任何构建工具(ant,maven,?)来配置它们,这样你就可以运行你的理性功能测试器并从命令行安装到任何地方,只需将一个简单的目标传递给你的构建工具(即mvn test或mvn assembly:assembly)。

    之后,确保运行Hudson的任何机器安装了所有内容(即Rational Functional Tester)并进行配置,以便您可以打开命令行并输入目标并正确执行测试。

    从那时开始在Hudson中连接起来非常简单 - 只需在配置构建时传入目标。

答案 2 :(得分:0)

我对此有一些一般性建议,因为我自己还没有实现这一点。 我假设您希望Hudson通过构建或Hudson进程自动为您运行RFT脚本? 我想在我的组织中实现类似的东西。

由于组织方面的限制,我还没有能够实现这一点,但到目前为止我已经考虑过/做过:

  1. 下载了Windows进程查看器,获得了运行测试的命令。
  2. 制作shell脚本,将变量等分开
  3. 未来的计划是设置一个Windows Slave计算机,该计算机将包含测试开始后所需的所有工具,例如。正确版本的浏览器,环境变量以及其他所需的工具。
  4. Hudson将启动一个进程,该进程运行所创建的shell脚本,该脚本运行所有RFT脚本并在从属计算机上执行必要的操作。

答案 3 :(得分:0)

我相信最好的答案是将RFT与Hudson / Jenkins结合起来是一项无用的工作。

正如IBM FAQ所说,要使RFT工作,你必须:

  • 登录机器;
  • 屏幕无法锁定;
  • 如果您是远程连接的,则无法最小化连接屏幕。

因此,您无法将Jenkins / Hudson作为服务运行,因此不太有用。您必须从已记录的帐户运行它。如果您在公司计算机中(如果使用RFT,很可能),您可能必须使用hack to prevent the screen saver to start。如果屏幕被锁定,您的测试将始终失败。

将测试配置为run from the command line并非常困难,只需在测试失败并成功时处理返回代码。

Jenkins / Hudson也会给你一些好处,比如将测试与你的版本控制集成,可能会在提交时自动运行测试。它还有助于在测试失败时发送电子邮件。

但你仍然需要将RFT日志与某种JUnit插件集成以获得一个很好的报告。您还必须使用脚本来使用命令行运行测试。

我认为使用带有RFT的持续集成服务器并不值得。最好让您的测试每天在Windows任务计划程序中运行。这是一个更简单的解决方案,故障点更少。