1

我之前使用 WebDriver 的经验是,由于产生新浏览器的开销,并且如果您的网站在登录之后,必须为您想要运行的每个测试记录日志,因此尝试最小化 WebDriver 对象的创建始终是最佳实践。

但是对于 SauceLabs,由于他们使用 DesiredCapabilities 对象来设置测试(作业)名称之类的东西,感觉命名测试的唯一方法是为每个测试创建一个新的 RemoteWebDriver高性能。

4

1 回答 1

0

Sauce Labs 实际上支持用于设置作业名称的REST API ;您可以使用该 REST API 使用所需的功能覆盖您设置的名称。

但是,RemoteWebDriver 的工作方式与您所说的完全一样:每个新的 WebDriver 都会打开一个新的浏览器。就像使用本地浏览器一样,每个与 Sauce Labs 的新 RemoteWebDriver 连接都会创建一个新 VM。如果您针对一台 VM 运行所有测试,它们最终都会在同一个 Sauce Labs 工作中完成。每个工作只能有一个名称。

使用 Sauce Labs 进行有效测试的最佳方法可能是并行运行多个测试。如果您真的想依次对所有测试使用相同的作业,您可以使用“sauce:context”javascript 方法为该作业的每个部分命名,例如:

IJavaScriptExecutor js = driver as IJavaScriptExecutor;
js.ExecuteScript("sauce:context='Test The Friend Page Works'");
于 2014-01-15T01:15:01.307 回答