代码之家  ›  专栏  ›  技术社区  ›  Alex

将RationalFunctionalTester(RFT)配置为在Hudson/Jenkins中运行

  •  3
  • Alex  · 技术社区  · 16 年前

    我刚安装了哈德逊,它运行得很好。它构建、运行JUnit测试以及检查样式分析。

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

    我们使用InstallAnywhere进行安装,使用IBMRationalFunctionalTester进行自动测试。

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

    4 回复  |  直到 10 年前
        1
  •  3
  •   Clinton    16 年前

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

    1. 在Windows上测试。
    2. 在OSX上测试,运行代码覆盖率并将结果推送到服务器。
    3. OSX Tiger测试。
    4. 用于OSX Leopard的包&push build to server。
    5. 用于Windows的包&push build to server。
    6. 更新产品网站。

    我们不使用InstallAnywhere或RationalFunctionalTester,而是使用类似的机制来代替它们。我们在哈德逊找到的让一切都唱起来的关键是能够从命令行运行我们的各种步骤。Maven和适当的插件使这项任务无法完成。所以我的建议是,使用您正在使用的任何构建工具(Ant、Maven,…)对它们进行配置,以便您可以运行RationalFunctionalTester并从命令行安装到任何地方,并将一个简单的目标传递给您的构建工具(即MVN测试或MVN汇编:汇编)。

    在此之后,确保运行Hudson的任何机器都安装了所有设备(即Rational Functional Tester),并对其进行了配置,这样您就可以打开命令行并键入目标并正确执行测试。

    从那时起将它连接到Hudson中是相当简单的-只要在配置构建时传递目标即可。

        2
  •  6
  •   Community Mohan Dere    9 年前

    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
    

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

        3
  •  0
  •   sjt    16 年前

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

    由于组织上的限制,我还没有能够实现这一点,但我到目前为止所做的是:

    1. 下载了Windows进程查看器,获得了运行测试的命令。
    2. 使shell脚本脱离它,分离变量等
    3. 未来的计划是建立一个Windows从机,它将拥有启动测试后所需的所有工具,例如浏览器的正确版本、环境变量和其他所需工具。
    4. Hudson将启动一个进程,该进程运行创建的shell脚本,该脚本运行所有RFT脚本,并在从属计算机上执行必要的操作。
        4
  •  0
  •   Community Mohan Dere    9 年前

    我认为最好的答案是将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任务计划程序中运行测试。这是一个简单的解决方案,故障点较少。