1

我的团队正在开发用于客户端 - 服务器设置的桌面应用程序(混合C++/Tcl)。目前它只是Windows,但很快我们需要将它移植到Linux上。 CruiseControl.NET每晚都从SVN的源代码构建它并将其打包到NSIS安装程序中,但我们没有自动化测试来运行。
几乎不可能添加任何单元测试,但应用程序的集成测试很容易,因为它已经基于脚本。
主要任务是将应用程序安装到3台PC中,对其进行配置(包括复制一些文件),运行它,监控可能的崩溃,等待集成测试完成,收集摘要,发送电子邮件。这可能跟一帮自定义PowerShell脚本来完成,但客户端/服务器Windows桌面应用程序的自动集成测试

  • 在将来,我们将要添加更多的功能和更多的测试,并 曾经被认为是一个简单的脚本很快炸毁(像往常一样),所以我想 最小化自定义脚本,如果我需要脚本的东西,我 喜欢bash/cygwin(我不熟悉Python或Ruby)。
  • 我希望有一个网络信息中心将报告当前进展,如果 东西失败 - 显示日志
  • 我需要一些导师,如果它挂起或崩溃,将监测被测应用程序和 报告
  • 我们需要在Linux上进行测试
  • 理想情况下,我希望在PC之间协调一些测试步骤(例如,在PC1上运行测试X和在PC2上运行测试Y,等待它们的 都完成,然后在PC1上运行测试Z ,同时监测PC2上没有任何 崩溃等)

所以,我正在寻找一个COTS工具/一套工具,它可以帮助我做到这一点,而且没有陡峭的学习曲线。理想情况下,免费,但如果它真的很好,价格合理,我公司可能会购买许可证。
当NSIS安装程序准备就绪时,应该从CruiseControl.NET触发该过程,然后执行上述所有操作。基本上,它应该至少允许远程安装软件,运行自定义脚本并拥有Web仪表板。
显然,可以使用像Chef这样的SCCM工具,但到目前为止,它们都不支持Windows服务器,仅支持节点。我想避免为此设置一个Linux VM,尽管我可以做到这一点,如果我没有其他选择。此外,厨师似乎有点矫枉过正 - 对于10k机器来说很好,但我未来只有3 ...也许5。我对编排分布式测试的机会特别好奇。
StackOverflow和互联网上的大多数类似问题都是关于Web应用程序,Java容器,Maven等,并且这些工具只有很多工具和插件才能评估。
在此先感谢。

回答

0

这是非常广泛和非常接近基于意见。厨师可以处理将应用程序部署到测试机器等步骤,但它不是GUI测试框架,因此您需要其他方法来处理这些问题。 Jenkins支持将测试分发给Windows主机,因此看起来在事物的这一方面是一个不错的选择,但在多节点测试或它们之间的协调方面它并不是那么棒。考虑到需求,我怀疑你自己需要写出大部分内容。

0

在您的测试机器上安装ccnet。当新的安装程序准备就绪时,让这些ccnet项目监听一个被编辑的文件。让测试机器安装新的安装程序并运行测试。你走了。 ccnet发送电子邮件,这是你的基本报告。

将测试结果通过使用gSOAP的Web服务报告到数据库中(这就是我们所做的)。如果你需要的话,你可以运行java cruisecontrol。编写一个启用gSOAP的测试控制器程序来报告测试机器的测试结果。一个小的c + +应用程序会做。然后编写一个网站(我们使用ASP.NET)来查询数据库(Postgresql)并显示结果。让测试机器通过SVN自动更新以获取配置的最新更改。使用南特。 Nant远远优于仅使用ccnet运行任务。 Nant通过ccnet工作。在ccnet上使用XML,XSL和CSS使测试邮件具有您想要的信息(新通行证,新故障,与代码库的SVN差异等等)

我们的最新发展是将大电视放在厨房对测试结果进行总结,以便人们更容易知道他们破坏了什么!

我得到的第一件工作是一台测试机,用于侦听新安装程序,安装它,运行一些基本测试并将结果通过电子邮件发回。将ccnet和nant配置放入版本控制中,并在测试机器上获得自动更新,这样您就不必每次登录每台测试机器并在每次更改时都进行更新。

相关问题