2013-12-10 28 views
1

我之前使用WebDriver的經驗是,嘗試最大限度地減少WebDriver對象的創建,這是由於產生新瀏覽器的開銷,並且如果您的站點位於登錄名之後,必須記錄您想要的每個測試跑。在性能考慮中使用SauceLabs時,如何管理RemoteWebDriver對象?

但是,對於SauceLabs,由於他們使用DesiredCapabilities對象設置測試(作業)名稱之類的東西,所以感覺就像爲測試命名的唯一方法是爲每個測試創建一個新的RemoteWebDriver,這不是高性能的。

回答

0

Sauce Labs實際上支持設置作業名稱的REST API;您可以使用該REST API覆蓋您設置的名稱以及所需的功能。

但是,RemoteWebDriver的工作原理與您所說的完全相同:每個新的WebDriver都會打開一個新的瀏覽器。就像使用本地瀏覽器一樣,與Sauce Labs的每個新的RemoteWebDriver連接都會創建一個新的VM。如果您針對一臺虛擬機運行所有測試,它們最終都會進入相同的Sauce Labs工作。每個工作只能有一個名字。

或許用Sauce Labs高效測試的最好方法是並行運行多個測試;如果你真的想依次使用相同的工作來進行所有的測試,你可以使用「醬油:上下文」JavaScript方法給每個部分的工作一個名字,例如:

IJavaScriptExecutor js = driver as IJavaScriptExecutor; 
js.ExecuteScript("sauce:context='Test The Friend Page Works'");