3

我刚刚安装了 Hudson,它运行良好。它构建、运行 JUnit 测试以及 CheckStyle 分析。

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

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

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

4

4 回答 4

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 测试不工作,除非 RDP 连接打开

于 2009-12-16T14:36:30.907 回答
3

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

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

我们不使用 InstallAnywhere 或 Rational Functional Tester,但有类似的机制来代替它们。我们发现让它在 Hudson 中发挥作用的关键是能够从命令行运行我们的各个步骤。Maven 和适当的插件使这项任务变得很短。所以我的建议就是,使用您正在使用的任何构建工具(ant,maven,?)配置它们,以便您可以运行您的理性功能测试器并从命令行安装任何地方,并将一个简单的目标传递给您的构建工具(即 mvn test 或 mvn assembly:assembly)。

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

从那时起,在 Hudson 中连接它非常简单——只需在配置构建时传入目标即可。

于 2009-12-16T12:35:36.007 回答
1

我相信最好的答案是,将 RFT 与 Hudson/Jenkins 集成是一项无用的努力。

正如这个IBM 常见问题解答所说,要使 RFT 正常工作,您必须:

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

因此,您不能将 Jenkins/Hudson 作为服务运行,因此它不是很有用。您必须从您登录的帐户运行它。如果您使用的是公司计算机(如果您使用的是 RFT,则很有可能),您可能必须使用hack 来阻止屏幕保护程序启动。如果屏幕被锁定,您的测试将始终失败。

将测试配置为从命令行运行并不是很困难,您只需要在测试失败和成功时处理返回码。

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

但是您仍然必须将 RFT 日志与某种 JUnit 插件集成才能获得不错的报告。您还必须有脚本才能使用命令行运行测试。

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

Or use my final solution: quit RFT and use the free Selenium with a headless web driver.

于 2016-05-19T22:06:03.590 回答
0

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

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

  1. 下载 Windows 进程查看器,获得运行测试的命令。
  2. 用它制作shell脚本,分离出变量等
  3. 未来的计划是设置一台 Windows Slave 机器,其中包含测试开始后所需的所有工具,例如。浏览器的正确版本、环境变量和其他所需的工具。
  4. Hudson 将启动一个进程,该进程运行创建的 shell 脚本,该脚本运行所有 RFT 脚本并在从机上执行必要的操作。
于 2010-07-21T18:04:36.563 回答