我的团队正在开发用于客户端-服务器设置的桌面应用程序(混合 C++/Tcl)。目前它仅适用于 Windows,但很快我们需要将其移植到 Linux。CruiseControl.NET 每晚都会从 SVN 中的源代码构建它,并将其打包到 NSIS 安装程序中,但我们没有要运行的自动化测试。
添加任何单元测试几乎是不可能的,但应用程序的集成测试很容易,因为它已经大量基于脚本。
主要任务是将应用程序安装到 3 台 PC 上,配置它(包括复制一些文件),运行它,监控可能的崩溃,等待集成测试完成,收集摘要,发送电子邮件。可以使用一堆自定义 PowerShell 脚本来完成,但是
- 将来我们会想要添加更多的功能和更多的测试,而过去的简单脚本很快就会崩溃(像往常一样),所以我想尽量减少自定义脚本,如果我需要编写脚本,我更喜欢 bash/cygwin (我不熟悉 Python 或 Ruby)。
- 我想要一个可以报告当前进度的 Web 仪表板,如果出现故障 - 显示日志
- 我需要一些主管来监控被测应用程序并报告它是否挂起或崩溃
- 我们还需要在 Linux 上对其进行测试
- 理想情况下,我想在 PC 之间编排一些测试步骤(例如,在 PC1 上并行运行测试 X,在 PC2 上并行测试 Y,等到它们都完成,然后在 PC1 上运行测试 Z,同时监控 PC2 上没有崩溃等)
因此,我正在寻找一种 COTS 工具/工具集来帮助我做到这一点并且没有陡峭的学习曲线。理想情况下,免费,但如果它真的很好并且价格合理,我的公司可能会购买许可证。
当 NSIS 安装程序准备好时,应该从 CruiseControl.NET 触发该过程,然后执行上述所有操作。基本上,它至少应该允许远程安装软件、运行自定义脚本并拥有一个 Web 仪表板。
显然,可以使用像 Chef 这样的 SCCM 工具,但到目前为止,它们都不支持 Windows 服务器,只支持节点。我想避免为此设置 Linux VM,尽管我可以做到,如果我别无选择的话。此外,Chef 似乎有点矫枉过正 - 对 10k 机器有好处,但我只有 3 台……将来可能有 5 台。而且我对编排分布式测试的机会特别好奇。
StackOverflow 和互联网上的大多数类似问题都与 Web 应用程序、Java 容器、Maven 等有关,并且有很多工具和插件可供这些工具评估。
提前致谢。