selenium簡介及環境搭建
Selenium簡介
1.Selenium簡介及組成
selenium是一種web自動化測試工具,它可以在主流的瀏覽器上運行,支持的語言有java, python,javascript
selenium主要有三部分組成:
Selenium IDE:錄制和回放腳本,可以模擬用戶對頁面的真實操作,區別於其他工具:是通過攔截http請求。
一般只把錄制腳本當作一個輔助功能,因為一個UI節點的細微變化,都可能導致自動化測試工具無法識別,當測試項目項目大時,定位、更新十分困難。
其次,錄制的腳本有時候人工難以理解。
Selenium Grid:實現在多台機器上、和異構環境中並行執行測試用例。並行執行不僅節省時間,而且可以同時在不同的瀏覽器、平台上運行自動化測試腳本。
Selenium Web Driver:針對各個瀏覽器而開發,通過原生瀏覽器支持或者擴展(Chrome webDrive、FireFox WebDriver)直接控制瀏覽器
Selenium RC(Selenium1.0):在瀏覽器中運行javaScript,使用瀏覽器內置的JavaScript來翻譯和執行selense
2.Selenium特點
支持錄制和回放(Selenium IDE)
通過WebDriver,直接控制瀏覽器,而不是通過攔截HTTP請求,實現真正模仿了用戶的操作;同時使用WebDriver能夠靈活的獲取頁面元素(WebDriver),並且提供執行JS的接口
能夠分布式運行在不同機器和異構環境中(不同瀏覽器)
3. Selenium的內部運行機制?如何能夠跨瀏覽器使用?——WebDriver原理(&RC原理)
1)RC原理
在Selenium1.0中,是通過Selenium RC服務器作為代理服務器去訪問應用從而達到測試的目的。
Selenium RC分為三個部分,Launcher、HttpProxy、Core。
Launcher用於啟動瀏覽器,把Selenium Core加載到瀏覽器中,並且把瀏覽器的代理設置為Selenium Server的Http Proxy。
Core是一堆JavaScript的集合,所以本質相當於運行這些JavaScript函數來實現對Html頁面的操作。——這也是為什么可以運行在幾乎所有主流的瀏覽器上。
然而直接運行JavaScript會有極大的安全漏洞,所以會受到“同源限制”,在這個基礎上,Selenium2.0引入了WebDriver。
2)Web Driver原理
webDriver是按照client/server模式設計的。client是我們的測試腳本,發送請求;server就是打開的瀏覽器,用來接收client的請求並作出響應。
具體的工作流程:
webDriver打開瀏覽器並綁定到指定端口。啟動的瀏覽器作為遠程服務器remote server
client通過CommandExecuter發送http請求給遠程服務器的偵聽端口(the wire protocal)
遠程服務器根據原生的瀏覽器組件來轉化為瀏覽器的本地(native)調用
所以web Driver用到的協議:
打開瀏覽器時:HTTP協議
client端發送http請求到遠程服務器的偵聽端口:the wire protocol
其中:
有線協議:指的是從點到點獲取數據的方式,是應用層的協議。
HTTP協議:是用於從服務器傳輸超文本標記語言HTML到客戶端的通信協議。是一個應用層協議,由請求/響應構成,是一個標准的客戶/服務器模式。是一個無狀態的協議。
(無狀態:對事務沒有記憶能力,不會保存這次傳輸的信息——節約內存)
環境搭建
1.安裝java運行環境

2.下載selenium IDE : https://www.seleniumhq.org/download/
下載chromedriver.exe : http://selenium-release.storage.googleapis.com/index.html

3.新建一個java項目,在其下面創建一個libs的文件夾,將selenium-java.zip中的jar包都拷貝進去

4.鼠標右擊java項目->Build Path -> Config build path -> java build Path -> Libraries -> Add JARs

如下所示,添加jar包成功

6.編寫代碼啟動Chrome瀏覽器
package com.java.sele; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class Test { public static void main(String[] args) { WebDriver driver; //設置瀏覽器驅動環境變量 System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\ChromeCore\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("http://www.baidu.com"); } }
注意:
chromedriver.exe與Chrome瀏覽器的版本要對應,否則代碼會報錯
參考資料:《基於Selenium 2的自動化測試》
