java+selenium3-簡介及環境搭建


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的自動化測試》

參考資料:面試准備——(三)Selenium(1)基礎問題及自動化測試


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM