在使用具有性能的SauceLabs时,您应该如何管理RemoteWebDriver对象?

时间:2013-12-10 09:53:08

标签: c# selenium-webdriver saucelabs

我之前使用WebDriver的经验是,最好的做法是尝试最小化WebDriver对象的创建,因为产生新浏览器的开销很大,如果您的站点在登录后面,则必须记录您想要的每个测试跑。

然而,对于SauceLabs,由于他们使用DesiredCapabilities对象设置测试(作业)名称之类的事实,感觉命名测试的唯一方法是为每个测试创建一个新的RemoteWebDriver,不具备表现力。

1 个答案:

答案 0 :(得分: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'");