Installation 配置RationalFunctionalTester(RFT)以在Hudson/Jenkins中运行

Installation 配置RationalFunctionalTester(RFT)以在Hudson/Jenkins中运行,installation,continuous-integration,automated-tests,hudson,rft,Installation,Continuous Integration,Automated Tests,Hudson,Rft,我刚刚安装了哈德逊,它运行得很好。它构建、运行JUnit测试,还进行CheckStyle分析 我们的下一步是创建一个安装,安装它,然后在实际安装上运行自动测试。如果测试失败,我希望构建失败,或者至少以某种方式发布结果。我认为我们应该设置它,以便部件定期运行或手动触发 我们使用InstallAnywhere进行安装,使用IBMRationalFunctionalTester进行自动化测试 所以问题是:有人创建了类似的设置吗?是否有任何插件、教程或其他资源可以帮助我。或者你有什么一般的提示或建议。我

我刚刚安装了哈德逊,它运行得很好。它构建、运行JUnit测试,还进行CheckStyle分析

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

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


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

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

  • 在Windows上测试
  • 在OSX上测试,运行代码覆盖率并将结果推送到服务器
  • 测试OSX老虎
  • OSX Leopard的软件包&将构建推送到服务器
  • Windows软件包&将生成推送到服务器
  • 更新产品网站
  • 我们不使用InstallAnywhere或RationalFunctionalTester,但在它们的位置上有类似的机制。我们发现,在哈德逊让一切都歌唱的关键是能够从命令行运行我们的各个步骤。Maven和适当的插件很快就完成了这项任务。因此,我的建议是,使用您正在使用的任何构建工具(ant、maven,?)配置它们,以便您可以运行rational functional tester并在命令行的任何位置安装,并将一个简单的目标传递给您的构建工具(即mvn test或mvn assembly:assembly)

    之后,确保运行Hudson的任何机器都已安装并配置了所有设备(即RationalFunctionalTester),以便打开命令行并键入目标,并正确执行测试


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

    Rational Functional Tester的命令行参考:

    用于运行测试的示例命令:

    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服务运行,则将没有桌面。请参阅以下内容:

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

    由于组织上的限制,我尚未能够实施这一点,但以下是我迄今为止的想法/做法:

  • 下载了Windows process viewer,获得了运行测试的命令
  • 用它制作shell脚本,分离变量等等
  • 未来的计划是设置一台Windows从机,其中包含启动测试后所需的所有工具,例如浏览器的正确版本、环境变量以及所需的其他工具
  • Hudson将启动一个进程,该进程运行创建的shell脚本,该脚本运行所有RFT脚本,并在从机上执行必要的操作

  • 我相信最好的答案是,将RFT与Hudson/Jenkins集成是徒劳的

    如上所述,要使RFT发挥作用,您必须:

    • 在机器上登录
    • 屏幕无法锁定
    • 如果您是远程连接的,则无法最小化连接屏幕
    因此,您不能将Jenkins/Hudson作为一项服务来运行,因此它不是很有用。您必须从您的登录帐户运行它。如果您使用的是公司计算机(如果您使用的是RFT,则很可能),您可能必须使用。如果屏幕被锁定,测试将始终失败

    将您的测试配置为并不困难,您只需在测试失败和成功时处理返回代码

    Jenkins/Hudson还将为您提供一些优势,比如将测试与版本控制集成,在提交时可能会自动运行测试。当测试失败时,它还可以帮助发送电子邮件

    但是您仍然需要将RFT日志与某种JUnit插件集成,才能得到一个好的报告。您还必须有脚本才能使用命令行运行测试

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


    或者使用我的最终解决方案:退出RFT,使用免费的Selenium和无头web驱动程序。

    我们使用ANT。您的意思是我应该从ANT运行命令行命令,还是在Hudson作业配置中添加另一个构建步骤?我想从ANT运行它更有意义,但我已经看到您可以添加批处理命令生成步骤。@Alex是的,我认为您应该尝试向ANT添加自己的自定义生成步骤。特别是,我认为ant中的exec任务应该足以让您从命令行调用其他工具。然后在Hudson中配置ant builder以调用新任务。快速观察,如果您在浏览器中测试基于web的应用程序,则上述限制不存在-它们适用于桌面应用程序,如自动化Outlook,等。对于Web应用程序,RFT支持WebUI模式,可以在锁屏等下运行,并附带与此问题相关的Jenkins插件。@Chris先生,很高兴知道。感谢上帝,我的公司删除了RFT,这不是问题