2017-08-02 62 views
1

我進入了一個需要測試WebGUI的項目。 Selenium與Jenkins一起用於安排任務和運行測試。所有這些都由一臺服務器(Linux)處理。關於Selenium和WebDrivers的迷惑

定期測試工作正常,但WebGUI測試失敗,我應該讓他們工作。然而,我對Jenkins的插件「Selenium Grid」(它甚至是必需的)的角色感到非常困惑,JUnit在項目內部利用硒庫和設置無頭瀏覽器來測試項目。

插件「Selenium Grid」對Jenkins的作用究竟如何,Selenium libary如何與無頭瀏覽器進行通信(WebDrivers的角色?)? 我已經知道Selenium集線器和節點,但不知道如何解決這個問題。

我希望有人可以幫我清理我的困惑......

+1

驅動程序的作用是允許您的代碼通過發送請求與Web瀏覽器進程進行通信。 IIRC,硒網格應該模擬多個用戶一次與您的網站,其中每個「用戶」自己的事情。這種方式可以在多臺機器上並行執行測試。 –

+0

只有一臺機器應該使用。由於它是一臺服務器,因此無法使用GUI(由於XVFB無法安裝),因此最好對Firefox和IE進行測試。 這臺機器是否應該是一個Selenium Hub,並將其作爲唯一的節點重新啓動?或者我可以用WebDriver在Java中使用Selenium庫? – GxTruth

回答

1

從以下網站被採取。 https://wiki.jenkins.io/display/JENKINS/Selenium+Plugin

這個插件通過以下方式

  • 在主,硒電網樞紐上啓動4444端口,除非在詹金斯的全局配置配置,否則設置硒電網。這是你所有的測試應該連接到的地方。
  • 對於每個從站,複製必要的二進制文件並啓動Selenium RC。
  • RC和Selenium Grid Hub自動連接在一起。

現在問題是你需要這個嗎?

這取決於項目的要求。您只需要自己提出這個問題

  • 您是否需要在現在或將來並行運行測試(縮短時間或進行瀏覽器兼容性測試)。
+0

WebGUI只有幾個測試,因此可能不需要並行測試。但是,Firefox和Internet Explorer應該被支持,所以測試是必要的。 但是,只涉及一臺機器,所以我沒有十幾臺運行Selenium節點的機器使用不同的瀏覽器/操作系統。我可以使用不同的WebDriver(不同的模式?)來模擬這個嗎? – GxTruth

+1

是的,你可以。只需刪除插件並將執行綁定到某個節點即可。 –

+0

還有一個問題。 WebDrivers似乎使用無頭瀏覽器,這需要實際的瀏覽器作爲外部應用程序。這是事實,還是Selenium無需外部工具即可實現無頭瀏覽器? – GxTruth

2

硒網格可以用來建立一個可伸縮的自動化瀏覽器環境。它經常用於自動GUI測試。它由一個集線器和一個或多個節點組成。

A Selenium Hub應該啓動並且應該存儲結果URL。

然後,所需數量的硒節點應該開始時引用集線器的Url。節點將自己註冊到集線器。

然後,您可以使用Selenium Java創建一個RemoteWebDriver實例,可以指定Selenium Hub的URL。這個webdriver只是一個Java API,實際工作將在Selenium Node環境中完成。

您可以使用Java API在WebDriver實例上實現您所需的操作。運行時,代碼會將所有調用委託給正在運行的Selenium環境。

有多種方法可以真正啓動集線器和節點。一個Jenkins插件可以做到這一點,你可以使用Docker,一個本地進程,或更多。我建議不要將你的設置直接綁定到Jenkins,除非你確定你永遠不會切換。

Jenkins Selenium Plugin指定您應該創建一個webdriver的與網址:

new RemoteWebDriver(new URL("http://jenkins.mydomain:4444/wd/hub"), capability); 

jenkins.mydomain將可能是你的Linux服務器的IP。在它的上面是一條線,表示它「也」接受外部節點。我對插件不熟悉,所以我不知道這是否意味着它默認設置了一個或多個節點。

+0

感謝您的澄清。所以Selenium Grid(詹金斯插件)說,它將Jenkins變成了一個節點可以連接到的集線器。現在我可以使用WebDriver實現,爲其提供Selenium Hub的URL +端口並使用WebDriver類來測試我的網站? 它讓我困惑,因爲HUB和Node是同一臺機器,這看起來應該不是這樣。 – GxTruth

+0

@GxTruth我已經添加了一些關於Jenkins插件的更多信息。 –