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

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

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

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

有帮助吗?

解决方案

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

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

我们不使用InstallAnywhere或RationalFunctionalTester,但在它们的位置上有类似的机制。我们发现在 Hudson 中一切顺利的关键是能够从命令行运行我们的各个步骤。Maven 和适当的插件很快就完成了这项任务。所以我的建议就是,使用您正在使用的任何构建工具(ant,maven,?)配置它们,以便您可以运行您的理性功能测试器并从命令行安装到任何地方,并将一个简单的目标传递给您的构建工具( IE。mvn 测试或 mvn 组装:组装)。

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

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

其他提示

Rational Function 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 服务运行,则不会有桌面。请参阅以下内容: 除非 RDP 连接打开,否则 Silverlight 测试无法工作

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

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

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

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

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

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

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top