Selenium 項目介紹

什麼是Selenium

百度百科對Selenium的定義爲:Selenium 是一個用於Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。這個工具的主要功能包括:測試與瀏覽器的兼容性——測試你的應用程序看是否能夠很好得工作在不同瀏覽器和操作系統之上。測試系統功能——創建迴歸測試檢驗軟件功能和用戶需求。支持自動錄製動作和自動生成 .Net、Java、Perl等不同語言的測試腳本。
百度百科對其定義爲一個Web測試工具。但是實際上,這是一個比較狹隘的定義。
在Selenium官網中1,官方對於其說明更加簡單——“Selenium automates browsers. That’s it!”,意思就是Selenium使瀏覽器自動化。
怎麼理解呢?就是你想讓瀏覽器自動化做的事情可以由Selenium代勞。舉個例子,比如你想每天自動登錄到某個社交網站,轉發頭條並簽到獲取經驗值,這種事情就可以交由Selenium完成。又比如,銀行有個業務訂單生成任務,但是這個生成任務的後臺是其他公司在維護,你們雖然需要用到這個訂單生成,但它也不是主要需開發的功能。爲了減少去其他公司的溝通成本,你們可以和銀行負責人談談能不能訪問前端Web填寫頁面,通過Selenium自動化操作去完成訂單生成步驟,而不用知道更相信的開發信息。
這麼看,Selenium不止可以在測試中發會作用。也可以在爬蟲、業務開發等領域中使用。What you do with that power is entirely up to you。

三大巨頭

Selenium項目下有三個子項目,分別都有着不同的功能。在Selenium官網首頁也有介紹。

Selenium WebDriver

這個是開發中最常用的東西,用來開發操作腳本,前身是Selenium RC。它通過各個瀏覽器廠家提供的原生驅動,來操作瀏覽器。對開發者提供一致的API,所以這個東西是和開發語言相關的。現在支持Ruby、Java、Python、C#、JavaScript。在層次上類似於Jedis。

Selenium IDE

如果你想快速地創建一個腳本,那麼你可以使用Selenium IDE。使用Chorome和Firefox的擴展程序,可以輕鬆實現錄製和回訪瀏覽器中的交互。
如果沒有編程經驗,可以使用這個工具快速製作出自動化腳本。如果是剛開始學習Selenium,那麼可以在這裏學習Selenium WebDriver中的API指令。一般在有一定製作經驗以後,就會很少使用這個工具了。

Selenium Grid

前面介紹的Selenium WebDriver最簡單的用法就是在單機上配置好環境,單機運行。但是在商業應用中,由於開發者的本地環境各不相同也不穩定,所以一般在大規模使用Selenium時,都是使用Selenium Grid來搭建Selenium分佈式運行環境,以增加穩定性。
Selenium Grid是一個只能代理服務器,允許Selenium測試將命令路由到遠程Web瀏覽器實例。其目的是提供一種在多臺計算機上並行運行測試的簡便方法。
使用Selenium Grid,一臺服務器充當將JSON格式的測試命令路由到一個或多個已註冊Grid節點的中樞。這裏有三種模式,分別是Standalone、Hub、Node。Standalone相當於將一個Hub和一個Node配置到同一臺計算機上,這種模式適合剛開始部署,或者需要和發送腳本的客戶端程序分開部署的時候。Hub相當於註冊中心,所有的Node在啓動時會通過配置文件等形式找到Hub,並向其註冊。在隨後的過程中,Web Driver會先連接Hub節點,然後發送指令。由Hub將指令路由到空閒的Node節點,由Node節點完成實際的操作。Node節點不需要操作系統或者瀏覽器一致。
但是Selenium Grid不是靈丹妙藥。它解決了一些產講的委派和分發問題。但是無法管理你應用的基礎結構,並且可能不適合一些特定需求。
它本身帶有一定的擴展能力,以後我會在博客中展示一下。

總結

selenium可以完成平時由人完成的瀏覽器操作,它的自動化體現在僅需第一次由人錄製或開發腳本後,後續利用腳本可以自動化完成以前的一些重複操作。


  1. https://www.selenium.dev/ ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章