Selenium是一個用於Web應用程序自動化測試工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。
主要功能包括:測試與瀏覽器的兼容性——測試你的應用程序看是否能夠很好得工作在不同瀏覽器和操作系統之上。
測試系統功能——創建回歸測試檢驗軟件功能和用戶需求。支持自動錄制動作和自動生成 .Net、Java、Perl等不同語言的測試腳本。
Selenium也是一款同樣使用Apache License 2.0協議發布的開源框架。
1、支持平台
WebDriver支持Android和BlackBerry兩個移動平台的瀏覽器測試。Android目前為市場占有率第一的移動平台,對於在其上面進行自動化測試,推薦Appium,Appium擴展了WebDriver的協議,支持ios平台和Android平台上的原生應用、Web應用和混合應用等。
2、支持瀏覽器
WebDriver 目前所支持的瀏覽器包括:Firefox、Chrome、IE、Edge、Opera、Safari. 為什么會選擇上面幾款瀏覽器進行支持呢?主要與瀏覽器的內核有關。
3、支持模式
HtmlUnit和PhantomJS是兩個比較特殊的模式,我們可以把它們看作是偽瀏覽器,在這種模式下支持html、Java Saript等的解析,但不會真正地渲染出頁面。由於不進行CSS及GUI渲染,所以運行效率上要比真實的瀏覽器快很多,主要用在功能性測試上面。
一、Selenium的前世今生:
04年,Selenium誕生,並正式命名為Selenium Core。
Selenium Core是基於瀏覽器並且采用JavaScript編程語言的測試工具,運行在瀏覽器的安全沙箱中,設計理念是將待測試產品、Selenium Core和測試腳本均部署到同一台服務器上
來完成自動化測試的工作。
05年,Selenium RC誕生,即Selenium 1。這個時候,Selenium Core其實是Selenium RC的核心。
Selenium RC讓待測試產品、Selenium Core和測試腳本三者分散在不同的服務器上。(測試腳本只關心將HTTP請求發送到指定的URL上,selenium本身不需要關心HTTP請求由於什么程序編程語言編寫而成)
Selenium RC包括兩部分:一個是Selenium RC Server,一個是提供各種編程語言的客戶端驅動來編寫測試腳本。
Selenium RC的API組織采用字典形式。

07年,WebDriver誕生。WebDriver的設計理念是將端到端測試與底層具體的測試工具分隔離,並采用設計模式Adapter適配器來達到目標。
WebDriver的API組織更多的是面向對象。

09年,Selenium RC和WebDriver合並,即Selenium 2,簡稱Selenium WebDriver。主要特性是將WebDriver API集成進Selenium RC。
合並后,支持多語言綁定; 支持谷歌、火狐、IE,還支持嵌入式設備上基於webKit內核的瀏覽器,如android、iOS的瀏覽器。

09年后,Selenium 3誕生。
Selenium 3會移除原有的Selenium Core的實現部分,並且Selenium RC的API也將被去掉。其它一些變化包括但不限於以下內容:

二、Selenium目前主要包括以下幾個套件:
工具 描述
Selenium IDE IDE是一個Firefox插件,可以錄制用戶的基本操作,生成測試用例。隨后可以運行這些測試用例在瀏覽器里回放,可將測試用例轉換為其他語言的自動化腳本。
Selenium RC RC為核心部分。它使用的編程語言,如Java,C#,PHP,Python、Ruby和Perl強大功能來創建更復雜的測試。Selenium RC 分 為 C l i e n t Libraries(編寫測試腳本) 和 Selenium Server(控制瀏覽器行為)。
Selenium WebDriver WebDriver前身是Selenium RC,可以看作是Selenium RC的替代品,直接發送命令給瀏覽器,並檢索結果。2
Selenium Grid 網格用於運行在不同的機器,不同的瀏覽器並行測試的工具,目的在於加快測試用例運行的速度,從而減少測試運行的總時間。利用Grid可以很方便地實現在多台機器上和異構環境中運行測試用例。
三、Selenium IDE的優點如下:

四、selenium與嵌入式:

五、WebDriver與Selenium RC的區別:

六、使用:
七、SeIenium的特點如下:
- 開源,免費;
- 多瀏覽器支持:Firefox、Chrome、IE、Opera、Edge;
- 多平台支持:Linux、Windows、MAC;
- 多語言支持:Java、Python、Ruby、C#、JavaScript、C++;
- 對…出頁面有良好的支持;
- 簡單(API簡單)、靈活(用開發語言驅動> ;
- 支持分布式測試用例執行*
