如何在多台机器上分发应用程序的多次执行

如何在多台机器上分发应用程序的多次执行

我有一个无需任何用户交互即可运行的模拟应用程序(64 位 Windows)。此应用程序收集信息并将其推送到远程 MS SQL Server。我想要做的是,在我们的夜间构建完成并通过测试套件后,在多台机器上尽可能多地执行此模拟。

如果可能的话,我希望能够将其配置为在总共运行 x 次后或整个批次耗时超过 y 小时后停止。

由于我们已经设置了一个包含多个代理的测试实验室,因此我尝试使用 Visual Studio 的内置测试框架。我创建了一个仅运行模拟的单元测试,然后创建了一个有序测试并多次添加了该单个测试(据我所知,这是多次执行同一单元测试的唯一方法)。我发现有序测试仅在单个代理上运行,而不是分布式的,这非常有限。

我们使用 TeamCity 执行夜间构建,我怀疑可以在其基础上实现这一点,但我对 TeamCity 还不太熟悉。我们还有 Jenkins 和 Bamboo,我愿意接受任何其他可以完成工作的软件,前提是它在 64 位 Windows 操作系统上运行。

有什么建议么?

答案1

我从 Linux/Unix 的角度更了解这个主题。如果我找不到任何能帮我完成工作的工具,那么我会这样做:

  • 主机具有所有共享机器都能够以读/写模式看到的目录。
  • 所有分布式机器都会不时测试此目录以查看特定的命令文件“A”。
  • 每台机器执行完之后都会在该共享目录上留下自己的标记文件。
  • 主机在单独的命令文件“B”中存储作业描述(XML 或其他格式)。
  • 无论何时您想要停止工作,您都可以删除“A”文件。
  • 所有分布式机器在检测到“A”文件丢失后都会停止工作。

这样,您无需任何特殊程序、TCP/IP 知识即可开发程序。希望对您有所帮助。

相关内容