2015-06-02 39 views
20

檢查量角器documentation,我看到有一個選項可以在不使用Selenium服務器的情況下使用directConnect: true標誌來運行量角器。使用/不使用硒的量角器的差異?

運行量角器測試與硒服務器和沒有硒服務器之間的區別是什麼,除了後者的情況下只支持Chrome,Firefox?

回答

41

首先,目前,你有5 different built-in options/ways to connect to browser drivers

  1. 指定seleniumServerJar啓動硒獨立服務器本地
  2. 指定seleniumAddress連接到運行硒服務器(本地或遠程)
  3. 設置sauceUsersauceKey連接到Sauce Labs遠程硒服務器
  4. 設置browserstackUserbrowserstackKey使用遠程Selen ium通過BrowserStack服務器
  5. 使用directConnect直接連接到Chrome或Firefox。還有其他chromeDriverfirefoxPath設置,您可以使用它來定義自定義的Chrome驅動程序和Firefox應用程序二進制位置。

第4個選項基本上都是通過「代理」工作,硒服務器:

服務器作爲你的測試腳本(與 webdriver的API編寫的)之間的代理服務器和瀏覽器驅動器(由WebDriver 協議控制)。服務器將腳本中的命令轉發到驅動程序 ,並將驅動程序的響應返回到腳本。

的主要原因通過中間硒服務器而不是直接的webdriver連接到自動化的瀏覽器是硒的服務器,如果作爲一個Selenium Grid,可以讓你擴展/跨多個瀏覽器,在多個多個瀏覽器擴展你的測試系統,參見例如,Sauce Labs Selenium Grid。僅供參考,還有BrowserStack service,除了其他功能之外,它還像Sauce Labs一樣充當硒服務器,具有大量不同的功能/配置 - 瀏覽器和系統。

啓動硒服務器(關於選項2)而不使用directConnect的另一個用例是您可能希望測試運行的特定配置。比方說,你有一臺裝有IE 11的Windows機器和裝有Firefox 35的Ubuntu。在這種情況下,你可以將這些機器配置爲連接到selenium server/hub的硒節點。

如果您在本地運行測試,並且您的目標瀏覽器是Chrome或/和Firefox,請使用directConnect,您的測試運行得更快。

但是,如果您在本地運行測試並需要測試IE,Safari或其他瀏覽器,則會使用選項1-4(通常爲1),因爲這些瀏覽器無法在「直接連接」模式下工作。

參見相關主題:

4

簡而言之,如果directConnect爲真,那麼它將在不使用硒服務器的情況下運行測試。硒服務器意味着類似於Selenium Grid(集線器和節點)的設置。通過Selenium Server運行測試允許您在遠程機器上或本地機器上運行測試,並提供在不同節點之間分配執行負載的選項。也可以使用selenium服務器在多個瀏覽器上同時運行測試。

雖然directConnect false只會在您本地安裝的FireFox和Chrome上運行測試。它將在測試代碼庫存在的同一臺機器上運行測試。

+0

的DirectConnect是配置中的布爾?你可以展示它嗎? –