Selenium不僅僅是一個工具,而是一套軟體,每個軟體都有不同的方法來支援自動化測試。 它由四個主要組成部分組成,包括:
Selenium IDE實現為Firefox擴充套件,在測試指令碼上提供記錄和回放功能。 它允許測試人員以HTML,Java,Ruby,RSpec,Python, C# ,JUnit和TestNG等多種語言匯出錄製的指令碼。 可以在Selenium RC或Webdriver中使用這些匯出的指令碼。
Selenium IDE的範圍有限,生成的測試指令碼不是非常健壯和可移植。
Selenium RC(由selenium正式棄用)允許測試人員使用任何支援的程式設計語言編寫自動化Web應用程式UI測試。 它還涉及一個HTTP代理伺服器,它使瀏覽器能夠相信正在測試的Web應用程式來自代理伺服器提供的域。
Selenium RC有兩個元件。
下圖給出了Selenium RC的架構表示。
Selenium RC在連續整合系統下測試複雜的基於AJAX的Web使用者介面非常有效。
Selenium WebDriver(Selenium 2)是Selenium RC的繼承者,也是Selenium Suite最重要的元件。 SeleniumWebDriver提供了一個程式設計介面來建立和執行測試用例。 編寫測試指令碼是為了識別網頁上的Web元素,然後對這些元素執行所需的操作。
與Selenium RC相比,Selenium WebDriver執行速度更快,因為它可以直接呼叫Web瀏覽器。 另一方面,RC需要RC伺服器與Web瀏覽器進行互動。
因為,WebDriver直接呼叫不同瀏覽器的方法,因此每個瀏覽器都有單獨的驅動程式。 一些最廣泛使用的Web驅動程式包括:
注意:Selenium版本2將Selenium RC和Selenium WebDriver的最佳功能合併到Selenium WebDriver中,最新發布的Selenium 3具有新增功能和功能。
Selenium Grid也是Selenium Suite的一個重要元件,它允許在不同的機器上並行執行不同瀏覽器的測試。 簡單來說,可以在執行不同瀏覽器和作業系統的不同機器上同時執行測試。
Selenium Grid遵循Hub-Node架構來實現測試指令碼的並行執行。Hub被視為網路的主裝置,另一個將是節點。 Hub控制在網路的各個節點上執行測試指令碼。