利用Selenium建立自動化測試框架.docx_第1頁
利用Selenium建立自動化測試框架.docx_第2頁
利用Selenium建立自動化測試框架.docx_第3頁
利用Selenium建立自動化測試框架.docx_第4頁
利用Selenium建立自動化測試框架.docx_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

利用Selenium RC 搭建自動化測試框架 最近利用業(yè)余學(xué)習(xí)利用selenium RC 來進行自動化測試的初步框架,并寫了幾個簡單的自動化用例腳本,實現(xiàn)了從外部excel檔(即自動化測試用例)中讀取測試數(shù)據(jù),實現(xiàn)檢查點校驗并將測試結(jié)果寫入測試用例文檔,并對測試結(jié)果進行統(tǒng)計?,F(xiàn)在將具體實現(xiàn)過程進行歸納如下。1 selenium 簡介Selenium是ThoughtWorks公司開發(fā)的一套基于WEB應(yīng)用的測試工具,直接運行在瀏覽器中,仿真用戶的操作,它可以被用于單元測試,回歸測試,冒煙測試,集成測試,驗收測試,并且可以運行在各種瀏覽器和操作系統(tǒng)上。 為什么不用qtpSelenium可以很好的支持包括firefox瀏覽器在內(nèi)的各種瀏覽器,而qtp對firefox的支持很差。我們公司的OMS系統(tǒng)基本上是基于firefox開發(fā)的,從工具的兼容性及自動化腳本的調(diào)試難度來說,用selenium更加便利Qtp的腳本語言僅支持vbscript,selenium可以直接使用JAVA、python等語言進行編寫,從開發(fā)語言上手難易程度來講,采用selenium更加容易上手。2 Selenium RC搭建自動測試框架2.1.配置selenium運行環(huán)境2.1.1 安裝JDK這里我們使用java作為自動化腳本開發(fā)語言,要安裝JDK,并配置環(huán)境變量目前服務(wù)端的各臺測試機上應(yīng)該都安裝了,可以從 開始-運行- cmd中調(diào)出命令行窗口,輸入java version 如果能查看到當(dāng)前的jdk版本信息,代表jdk安裝成功,見圖。2.1.2 在eclipse上部署一個自動化測試工程 安裝eclipse在配置好jdk后,下載eclipse安裝包,然后按照提示信息一步一步安裝就行。 新建一個自動化測試工程打開eclipse,點擊file-new-project,新建一個工程 選擇Java Project,然后next輸入工程名,next在這個界面上我們點擊到libraries 標(biāo)簽,引入本次自動化測試所需要的4個jar包:其中:excel_handling.jar 是excel表格的處理函數(shù),包括讀寫等等;junit.jar是執(zhí)行測試的支持包;poi-3.8-20120326.jar是excel支持包;selenium-server-standalone-2.28.0.jar是 selenium的支持包。 新建一個主程序JAVA文件工程建好后,如圖首先建立一個主程序類的包包的名字是automation_test(如果改成其它名字,則對應(yīng)的主程序引入的包名也要修改)在包下新建一個類類的名字是OmsTest(如果改其他的名字,對應(yīng)的主程序java文件類的名字也要改)將自動生成的代碼清空,并將OmsTest.java 中的代碼拷貝進去即可主程序代碼有注釋,大家可以看一下。主要思路就是通過讀取excel中的測試用例的參數(shù),然后讓selenium自動執(zhí)行,并將執(zhí)行結(jié)果再寫入到測試用例,實現(xiàn)自動測試并統(tǒng)計測試結(jié)果的目的。判斷測試執(zhí)行是否正確的依據(jù)是元素檢查點,當(dāng)一個測試用例的某個步驟出現(xiàn)與預(yù)期結(jié)果不一致的情形時,程序中止該條用例的執(zhí)行,并將錯誤記錄下來,繼續(xù)進行下一條用例,直到所有用例執(zhí)行結(jié)束。2.2 編寫自動化測試用例2.2.1自動化用例模板我現(xiàn)在設(shè)計的用例模板的樣式是這樣的:字段解釋:用例編號:同一條用例的編號都設(shè)置為相同的,主要是為了當(dāng)某一步執(zhí)行錯誤時,中止該錯誤用例的繼續(xù)執(zhí)行,程序可以找出下一條用例的編號所在的excel行;用例說明:同手工用例用例步驟說明:基本類似手工用例動作函數(shù):執(zhí)行某個操作時,所需要用到的selenium類方法,目前使用較多的是鼠標(biāo)左鍵單擊(click)、鼠標(biāo)左鍵雙擊(doubleClick)、打字輸入(type)、鼠標(biāo)右鍵單擊(contextMenu),如果有其他鼠標(biāo)動作,需要查詢selenium的相關(guān)API文檔動作參數(shù): 這里的動作參數(shù)指的是元素的xpath路徑,xpath是xml元素查詢的語法,可以指向唯一的一個xml元素,關(guān)于xpath語法下面單獨設(shè)立一個章節(jié)來講。 對于不需要輸入值的鼠標(biāo)動作來說,只需要一個動作參數(shù),即元素本身,如click,doubleClick,contextMenu動作;對于需要輸入值的動作,如type,則需要兩個參數(shù),一個是操作的元素,一個是輸入的值。目前暫未發(fā)現(xiàn)有三個動作參數(shù)的情況。如果動作參數(shù)只有1個,則動作參數(shù)2、動作參數(shù)3字段輸入“無”;如果動作參數(shù)有2個,則動作參數(shù)3字段輸入“無”,這主要是為了讓程序找到執(zhí)行動作函數(shù)的入口元素檢查點:每執(zhí)行一個步驟后,都會輸出相應(yīng)的值,對于關(guān)鍵步驟,可以設(shè)置元素檢查點,檢查頁面是否存在某個元素,如果存在,表示該步驟執(zhí)行成功;如果不存在,則代表用例執(zhí)行錯誤。元素檢查點可以是檢查是否存在一個按鈕、或者一行文本等等。實際是否存在:程序執(zhí)行時根據(jù)實際的執(zhí)行頁面查找檢查點,如果找到了檢查點,則自動輸出“是”;如果沒找到檢查點,則輸出“否”;如果該步驟未進行檢查點判斷,則輸出”未驗證”。測試是否通過:程序根據(jù)檢查點判斷情況檢查測試用例執(zhí)行的正確與否,當(dāng)【實際是否存在】域值為是時,則輸出【是】;當(dāng)【實際是否存在】域值為否時,則輸出【否】; 當(dāng)【實際是否存在】域值為未驗證時,則輸出【未驗證】。用例執(zhí)行過程中,任何一步的【測試是否通過】域值為否時,都會中止當(dāng)前用例的執(zhí)行,自動尋找下一條用例繼續(xù)執(zhí)行結(jié)果統(tǒng)計:當(dāng)所有用例都執(zhí)行通過時,輸出“所有用例執(zhí)行成功”;當(dāng)某些用例執(zhí)行失敗時,輸出執(zhí)行錯誤的用例編號。2.2.2 Xpath元素定位自動化測試最根本的就是“元素定位”,如果元素定位出現(xiàn)問題,則自動化測試的過程和結(jié)果都會出現(xiàn)問題。Xpath是xml元素的查詢語言,可以準(zhǔn)確定位頁面上的任意一個元素,借助幾個firefox插件,可以很好地輔助我們學(xué)習(xí)xpath語法,正確編寫自動化測試用例。 xml頁面代碼中元素的定位看一段xml代碼:      保存2            保存為1.html后,用firefox打開如下:比如說我們要定位【測試輸入】這個文本框,可以用以下的xpath語句:/inputname=”testname”其中 / 表示在整個頁面元素中查找,input 代表元素的標(biāo)簽,name 表示這個元素的屬性名,testname表示屬性值;由此可見,xpath的第一種定位方式即 /元素卷標(biāo)名”屬性名”=”屬性值”。 這段代碼中,input 表示這個文本輸入框的標(biāo)簽名,name為屬性名,testname為屬性值。同理,還可以用/inputvalue=”測試輸入” 來定位該輸入框。/inputvalue=”保存1” 定位”保存1”這個按鈕;/buttontype=”button”定位 “保存2”這個按鈕。【思考】可否用 /inputname=”save” 來定位“另存為”這個按鈕?為什么,如果要定位“另存為”,該用什么表達式? 定位xml元素的輔助插件綜上所述,要定位頁面的一個元素,只需找到一個/元素卷標(biāo)名”屬性名”=”屬性值” 的表達式可以唯一的指向該元素即可,關(guān)鍵是我們該如何判斷一個元素卷標(biāo)、屬性名和屬性值,以及如何確定該表達式確實可以正確指向該元素。需要用到3個firefox插件:Firebug 、xpath checker 以及selenium IDE。.1 FireBUG 查找元素的標(biāo)簽名、屬性名、屬性值Firebug大家應(yīng)該比較熟悉了,我們要用到它的“查看元素”功能,如果我們不清楚一個元素的卷標(biāo)、屬性或者屬性值時,可以通過該功能進行查找。具體使用步驟看截圖通過該按鈕,可以很方便的找到頁面元素的各個屬性,為使用xpath語法定位元素創(chuàng)造基礎(chǔ)。.2 Xpath checker 檢查xpath定位語法的正確性如上所述,我們根據(jù)FIREBUG 查找到元素的標(biāo)簽及屬性值,并根據(jù)xpath 語法進行元素定位,那如何確定元素定位是否正確?這里就需要用到另一個插件,叫xpath checker,該插件可以檢查xpath路徑的正確與否,仍以剛才的頁面代碼為例。      保存2            從xml代碼中可以知道/inputname=”testname” 可以指向 【測試輸入】 這個文本框,可以用xpath checker來檢驗一下語法對不對??梢钥吹?inputname=”testname” 可以正確的定位到該文本框。如果輸入/inputname=”save” ,看看是什么情況??纯催@兩個元素的xml語言就知道為什么了。可以看到,如果以/inputname=”save” 作為xpath路徑定位語句,由于這兩個元素的標(biāo)簽都是 “input”,且都存在name這個屬性,而且屬性值都是”save”,因此就會匹配出2個,這種情況下,就不能唯一的定位一個元素,如果要定位 “保存1” 和“另存為”這兩個元素,就需要采用另外的屬性了??梢钥吹?,兩個元素雖然都有相同的value屬性名,但是屬性值是不同的,因此可以分別用/inputvalue=”保存1” ;/inputvalue=”另存為” 來定位這兩個元素,用xpath checker 檢查一下。我們在做自動化測試時,要確保元素的xpath都只能指向唯一的一個,否則如果指向多個的話,程序?qū)㈦S機點擊,那樣自動測試的結(jié)果就不會準(zhǔn)確。另外,對于保存2 這種有文本內(nèi)容在標(biāo)簽對之外的,可以直接使用/buttontext()=”保存2”來進行定位,十分方便,特別是OMS系統(tǒng)中很多按鈕的標(biāo)簽名、屬性名、屬性值都一樣的,只有按鈕名字不同,也只有用這個方式才能定位到唯一元素?!咀ⅰ?標(biāo)簽名text()=”文本內(nèi)容” 這個xpath定位語句在編寫用例中會經(jīng)常用到,應(yīng)該予以牢記。 .3 Selenium IDE進行單步調(diào)試如何檢驗我們的動作函數(shù)及動作參數(shù)是否準(zhǔn)確??梢杂胹elenium IDE進行單步調(diào)試。【注】selenium IDE 也可以進行錄制,但回放一般都會由于元素找不到而失敗,因此不采用selenium IDE錄制用例,而采用xpath定位元素的辦法手寫用例。在需要進行調(diào)試的頁面,點擊firefox瀏覽器的selenium IDE插件插入一條命令輸入需要調(diào)試的動作函數(shù)及動作參數(shù)執(zhí)行命令,進行調(diào)試3 OMS自動化測試實例簡單介紹了下元素定位方法后,就可以開始編寫自動測試用例了,下面以O(shè)MS-basic-內(nèi)容管理-【新建子欄目】為例,開始編寫并運行自動化測試用例。以百視通測試環(huán)境展現(xiàn)管理系統(tǒng)51:8080/oms-basic/main.html 作為被測系統(tǒng),首先通過修改數(shù)據(jù)庫,取消登錄動態(tài)驗證碼?!緦ms_sso_bestv 數(shù)據(jù)庫system_config 表的authType字段值改為1 ,重啟tomcat服務(wù)即可】3.1測試系統(tǒng)初始化用戶登錄頁面已在主程序中進行了初始化,可參考OmsTest.java 的 10-16行正式寫用例之前先把測試環(huán)境的值填好,寫完用例以后再把測試用例存放路徑以及需要執(zhí)行的測試用例的起始行及結(jié)束行填進去即可?!咀ⅰ空骄帉懹美龑⒁詀dministrator剛登陸進去以后的頁面為初始頁面,即:3.2編寫自動化測試用例打開excel自動測試用例模板,將用例步驟細化,在該用例模板中,以下字段為必填項:【用例編號】、【動作函數(shù)】、【動作參數(shù)1】、【動作參數(shù)2】、【動作參數(shù)3】、【元素檢查點】以在 應(yīng)用商店運營管理系統(tǒng)-selenium自動化測試 欄目下“添加子欄目”為例: 第1步:展開“應(yīng)用商店運營管理系統(tǒng)”目錄樹(因為剛登陸進去的時候該根目錄樹是折疊的)。展開目錄樹有兩種方法 1:點擊前面的+ 號;2:雙擊該欄目。如果選擇第1種方式,則【動作函數(shù)】字段填寫 click,【動作參數(shù)1】填寫“+”的xpath路徑,采用FIREBUG的查看元素功能查看該元素的標(biāo)簽及屬性.可以看到+號的元素標(biāo)簽及屬性如下: 如果按照/元素標(biāo)簽屬性名=”屬性值”的xpath語法的話,該元素有三種xpath定位寫法,分別是:/imgclass=” x-tree-ec-icon x-tree-elbow-end-plus”/imgsrc=” images/default/s.gif”/imgalt=”分別使用xpath checker 進行判斷:再看看+號 標(biāo)簽對之間也沒有文本,不能用/元素標(biāo)簽名text()=”文本”來進行定位因此該 + 號的定位就有點難度。我們采用第二種方式展開根目錄樹,即鼠標(biāo)雙擊。鼠標(biāo)雙擊的【動作函數(shù)】是doubleClick,我們只要找到“應(yīng)用商店運營管理系統(tǒng)”的xpath路徑作為【動作參數(shù)1】即可。使用FIREBUG 查看該元素的標(biāo)簽屬性:應(yīng)用商店運營管理系統(tǒng)采用/元素標(biāo)簽名text()=”文本” 來嘗試定位該元素因此在自動化用例模板里面第一步可以這樣寫:元素檢查點中存放的也是xpath,我們這一步檢查的是【selenium自動化測試】這個欄目,因為展開站點樹后,實際是存在這個欄目的。如果執(zhí)行展開站點樹后,沒有找到該欄目,則程序執(zhí)行失敗?!咀ⅰ?1因為doubleClick 動作只有1個參數(shù),因此【動作參數(shù)2】【動作參數(shù)3】填寫“無”,以便讓程序找到動作入口。如果后面的【動作參數(shù)2】【動作參數(shù)3】不填的話,程序會報空指針異常,這是下一步優(yōu)化的方向。2 【實際是否存在】【測試是否通過】【統(tǒng)計結(jié)果】這三欄不需要填寫,程序執(zhí)行后會自動統(tǒng)計結(jié)果以此類推展開樹以后,需要右鍵點擊”selenium自動化測試”,點擊”添加子欄目”,輸入必填信息,點擊保存。每一步根據(jù)需要設(shè)置檢查點。(完整的測試用例見附件oms.xls)3.3自動化測試用例執(zhí)行3.3.1啟動selenium 服務(wù)在桌面新建個txt文檔,輸入以下命令,另存為.bat格式,并雙擊。e:cd 軟件安裝包cd seleniumRC安裝包cd selenium-server-2.28.0cd selenium-2.28.0java -jar selenium-server-standalone-2.28.0.jar注意: 該批處理命令主要是找到selenium-server-standalone-2.28.0.jar 的本地存放路徑,上面的代碼是我機器上的存放路徑,大家根據(jù)自己的實際存放路徑

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論