我正在努力扩展现有的基于 Selenium 的 Web 应用程序测试系统的功能。系统目前一次只能执行一项测试。我想通过为测试执行添加一些并行性来增加系统的吞吐量。
为此,我一直在研究不同的技术,并对 Microsoft 的 Orleans 感兴趣。但是,在阅读了 Orlean 的文档一天后,我找不到该技术是否支持我需要在一台计算机上最多运行特定的可扩展 Actor 的场景。
在我的情况下,它将是执行测试的演员。通常使用 Selenium,测试执行需要创建一个 WebDriver 对象,然后打开并控制一个 Web 浏览器实例。这些网络浏览器都必须作为单独的进程打开,而不仅仅是同一进程的新窗口。没有上限,假设一个包含 3 个节点的集群和一个包含 60 个测试的测试计划,我将在每台机器上同时打开 20 个 Web 浏览器,这可能会导致性能大幅下降或完全崩溃。我希望系统每台机器的上限为 3 个测试执行参与者,并将其余测试存储在队列中,仅在另一个工作参与者完成测试后运行它们。
我将如何使用奥尔良技术来实现它?