我有一个无需任何用户交互即可运行的模拟应用程序(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 知识即可开发程序。希望对您有所帮助。