應上篇同學的要求,自己整合了一些關於Selenium rc的一些資料,供參考與互相學習。
Selenium 是 thoughtworks公司的一個集成測試的強大工具。希望大家能多多使用這樣的強大的,免費的工具,來保證我們的質量。
Selenium 的文檔現存的不少,不過都太簡單了。使用Selenium的時候,我更多的是直接去看API文檔,好在API不錯,一個一個看,就能找到所需要的官方網站:http://www.openqa.org/selenium/
好,下面進入正題!
一、Selenium 的版本
在安裝Selenium 之前我們應該根據具體情況選擇什麼版本,以及工具集的選擇,目前Selenium工具集包括:Selenium Core、Selenimu IDE、Selenium Remote Control(selenium RC)、Selenium Grid。目前我們樂園這邊只用到Selenium Remote Control(selenium RC)。
工具介紹
Selenium Core:一個用JavaScript開發的測試驅動引擎,用以驅動Selenimu IDE和Selenium Remote Control,同時也可部署在任意用戶想要的應用服務器上。可以模擬用戶在瀏覽器中的操作,比如:“點擊按鈕、輸入文本框”等。
Selenium IDE:一個專門用於Firefox瀏覽器的插件,能夠錄製回放用戶在Firefox中的行爲,並把所記錄的Selenese (Selenium Commands)轉化爲HTML/Java/C#/Python/Perl/Php/Ruby等語言腳本。
Selenium RC:一個C/S架構的web測試體系框架,在web瀏覽器與待測的web應用間架起代理服務器(Selenium server),Selenium Client端測試程序發起的請求通過代理服務器轉發給web應用,web應用的返回結果直接返回給代理服務器,最後由代理服務器轉發給client端測試程序。
Selenium Grid:基於Selenium RC的擴展工具,通過多Server的支持,Client端測試程序可以做到分佈式部署。
selenium-core 是使用HTML的方式來編寫測試腳本,你也可以使用 Selenium-IDE來錄製腳本,但是目前Selenium-IDE只有 FireFox 版本。
二、下載
1.去官網下載:http://www.openqa.org/selenium/ 下載就可以了,記得選擇selenium-rc 的版本。
2.另外需要學習一下Xpath的有關知識,有個教程:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html,可以去這裏學習下。
3.安裝jdk,推薦jdk1.6。
三、配置與安裝
1.Selenium RC的配置
Step1:確保已安裝java運行環境,可以是JDK,也可以是其它集成開發環境,推薦JDK1.6。
Step2:將Selenium RC工具目錄(server & client)部署到任一自定義的目錄下,並將“selenium-X-client-driver-1.0.1”相關的路徑添加到系統環境變量中,確保 Client測試程序在編譯或運行時能連接到Selenium RC提供的驅動工具包。
2.Selenium IDE的安裝(可以選擇是否安裝,目前樂園自動化測試並沒有安裝)
step1:下載安裝FireFox瀏覽器。
step2:打開FireFox瀏覽器,按“工具-附件組件-獲取添加組件”菜單順序找到插件安裝頁面,在搜索欄輸入“selenium ide”進行搜索,選擇一個版本進行安裝(即:選擇“添加至FireFox”操作。
四、啓動Selenium RC
Step1:cmd啓動selenium-server.jar服務包,啓動命令“java -jar selenium-server.jar”。
Step2:selenium-server.jar服務成功啓動後,根據測試程序/腳本所用語言啓動相應的編譯運行環境。比如:若用java寫的 client端測試程序,則要再啓動一個java程序編譯運行環境,如JDK1.6命令行環境;若用python寫的client端測試腳本,則要再啓動一個python解釋運行環境,如python IDLE或直接在cmd環境輸入“python ****.py”。若用PHP寫的client端測試腳本,則要再啓動一個PHP解釋運行環境,如在cmd環境輸入“php run.php”。
到這裏,可能有的人會問:“Selenium IDE 好像並沒有什麼用處啊,爲什麼要有這個出來呢?”有存在必有存在的理由,下面我們說說Selenium IDE 在Selenium RC中的配合應用:
五、Selenium RC與Selenium IDE的配合使用
Selenium IDE比較適合做迴歸測試,selenium RC則可用於功能測試自動化。
Selenium IDE對使用Selenium RC的最大幫助可能在於:通過分析Selenium IDE的錄製腳本,可以清楚地知道自己所採用的Format語言是如何去標記一個web元素和如何去操作它的。比如用python去打開一個連接,用 “sel.click(unicode("link=Widget技術爲統一通信注入新活力"))”方法,如用java,則是 “selenium.click("link=Widget技術爲統一通信注入新活力");”方法。
對於Selenium RC測試框架,個人認爲主要有以下優勢:
(1)Selenium RC工具server端作爲測試服務代理實現了直接對web服務器的直接請求,使得測試程序的開發可在Client端完成,並可調用client端驅動包提供的針對代理server端的操作,這些操作集(API)根據web應用程序特點對httprequest等web應用倚賴的低層服務進行了封裝,不用測試人員再費力去學習低層服務接口用法,上手門檻相對降低了。
(2)由於client端提供了豐富的測試驅動包,使得測試程序開發語言或腳本選擇多樣化,相應地對測試工程師的技能要求也就多樣化了,在不追求測試運行環境統一的前提下,不同的測試工程師可以選擇自己擅長的語言來編寫測試腳本。