版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、自動化測試介紹,易往信息技術(shù)有限公司,陳明,2015-5-8,2,1,自動化測試的標準與目標,2,自動化測試框架與工具,3,自動化測試實施,4,自動化測試執(zhí)行與維護,1.1 什么是自動化測試 自動化測試是用程序模擬人的操作的一種測試方法,它主要分為基于UI的自動化測試與接口,單元的自動化測試。例如利用Junit 進行的單元測試也可歸入自動化測試。,1.2 自動化測試的準入標準 準入標準解決的是能不能做,適不適合做的問題。主要有以下幾方面: 技術(shù)上可實現(xiàn),頁面元素,對象等可以被工具識別。 自動化測試的收益,冒煙,回歸測試的頻率高,某些功能用例繁多。要測試的接口數(shù)量多,手工操作工作量大。,1 自動
2、化測試的標準與目標,功能整體穩(wěn)定,至少經(jīng)過一輪的系統(tǒng)測試,基本功能通暢。 維護量不應過大,需求變更不應過于頻繁和劇烈。 測試數(shù)據(jù)可重復使用或可恢復。,1.3 什么時候執(zhí)行自動化測試 自動化測試可以用在冒煙測試和回歸測試中。對于一些復雜或量多的單元測試,接口測試也可以考慮使用自動化測試,1 自動化測試的標準與目標,1.4 自動化測試的目標 通俗的說,自動化測試就是把功能測試用例 的腳本化,然后執(zhí)行腳本,產(chǎn)生一份自動化測試的報告。主要有以下的目標: 覆蓋率目標:一般而言覆蓋項目功能點或手工測試用例的55-60%。 節(jié)省人力成本的目標:對人力資源投入有一定程度的節(jié)省。 保證基本功能的正確性。 自動化
3、測試過程可跟蹤。,1 自動化測試的標準與目標,人力成本,功能正確,可跟蹤,覆蓋率,目標,2.1 自動化測試的框架 自動化測試框架是為了管理自動化測試,使得測試更高效的一種架構(gòu)。它將用例,腳本,數(shù)據(jù),報告,LOG有機的結(jié)合到一起。 自動化測試的框架工作情況如下面的圖來表示,2 自動化測試框架與工具,自動化測試框架,功能點管理,腳本管理,執(zhí)行管理,用例,數(shù)據(jù),測試報告,測試log,結(jié)果,一一對應,使用,產(chǎn)生,調(diào)用,用例管理 自動化測試的過程中,執(zhí)行的一個循環(huán)就相當于執(zhí)行一個測試用例。測試用例 描述了本次執(zhí)行的主要操作,驗證點,預期結(jié)果。 用例管理模塊提供將同一項目的不能模塊的各個功能點的測試用例組
4、織到一起的功能。 數(shù)據(jù)管理 自動化測試執(zhí)行的過程中要用到測試數(shù)據(jù)(如輸入的用戶名,密碼等)。對于不同模塊下的功能點對應的測試數(shù)據(jù),數(shù)據(jù)管理提供一個管理這些數(shù)據(jù)的體系結(jié)構(gòu)。 腳本管理 腳本管理方案對于腳本的質(zhì)量至關(guān)重要。一套結(jié)構(gòu)層次清晰,腳本堆滿的機制能夠減少腳本的維護成本,降低腳本錯誤的機率。一般而言,不同功能點的對應的腳本獨立管理。,2 自動化測試框架與工具,功能點管理 對于一個項目中要進行自動化測試的所有功能點,進行統(tǒng)一管理。功能點歸屬特定的模塊,測試執(zhí)行以功能點為單位。用例與數(shù)據(jù)跟功能點一一對應,可以選擇性對功能點進行自動化測試執(zhí)行。 執(zhí)行管理 負責控制自動化測試執(zhí)行的策略,如定時執(zhí)行,
5、執(zhí)行過程控制等。 測試結(jié)果管理 測試結(jié)果就是自動化測試用例的執(zhí)行結(jié)果,即成功還是失敗,在執(zhí)行過程中,框架會將這個結(jié)果記錄到指定的位置(如XML文件或者是測試用例中)。此模塊提供寫測試結(jié)果的函數(shù)。在測試執(zhí)行時調(diào)用該函數(shù)。,2 自動化測試框架與工具,測試報告管理 在一個項目的軟件版本的所有要執(zhí)行的自動化測試用例執(zhí)行完成后,會產(chǎn)生一個自動化測試報告。展示本次測試的一些基本情況。如通過率,各模塊的用例執(zhí)行報告。各模塊的通過率,失敗用例分布等。以柱狀圖,餅圖等形式展示。此模塊負責對測試結(jié)果產(chǎn)生的數(shù)據(jù)進行統(tǒng)計 并自動產(chǎn)生測試報告。 測試LOG及截圖管理 為了跟蹤自動化測試的過程,定位測試過程中發(fā)現(xiàn)的問題。
6、框架需要提供測試log與截圖的機制,在關(guān)鍵的驗證點或者是容易出現(xiàn)錯誤的地方,加上寫log信息及截圖函數(shù)即可產(chǎn)生log和截圖到指定目錄下的文件中。這些函數(shù)由些模塊提供。,2 自動化測試框架與工具,2.2 自動化測試的框架分類 自動化測試框架主要可以分為數(shù)據(jù)驅(qū)動和關(guān)鍵字驅(qū)動兩類框架。 所謂數(shù)據(jù)驅(qū)動框架主要是以測試數(shù)據(jù)的結(jié)構(gòu)以及腳本來驅(qū)動自動化執(zhí)行的一種框架結(jié)構(gòu)。 關(guān)鍵字驅(qū)動框架,將測試腳本分解成對象+數(shù)據(jù)+操作方法的形式,對象即為關(guān)鍵字。然后將這一系列對象+方法+數(shù)據(jù)的組合形成測試用例。最終由框架程序 將這些測試用例轉(zhuǎn)化為可以執(zhí)行的測試腳本。 這兩種類型的框架都包含用例管理,數(shù)據(jù)管理,腳本管理,測
7、試結(jié)果管理,測試報告管理,Log和截圖管理等功能。,2 自動化測試框架與工具,2.2.1 數(shù)據(jù)驅(qū)動測試框架 在測試某一功能點(如登錄)時,會嘗試用不同的測試數(shù)據(jù)來執(zhí)行測試。這些不同的測試數(shù)據(jù)的組合就是一個個的測試用例。測試腳本執(zhí)行時讀取這些測試數(shù)據(jù)就可以完成對自動化測試的有效實現(xiàn)。 下圖所求為測試數(shù)據(jù)舉例,2 自動化測試框架與工具,測試腳本根據(jù)測試模塊,驗證類型,ID和驗證字段來執(zhí)行測試。同時根據(jù)ID模塊名稱與測試用例中的用例進行關(guān)聯(lián)。并將測試結(jié)果寫入正確的位置。然后根據(jù)測試結(jié)果產(chǎn)生出一份自動化測試報告。,2 自動化測試框架與工具,2.2.2 關(guān)鍵字驅(qū)動測試框架 無論是利用QTP還是Selen
8、ium作為自動化測試的工具,我們都可以將測試腳本分解為對象+方法+測試數(shù)據(jù)的形式。將頁面元素抽象成為對象存儲到一個容器中,同時在方法中封裝好可能的邏輯判斷。在編寫 測試用例時,選取要操作的對象加上操作方法和測試數(shù)據(jù)即組成了一條操作,多個這樣的操作序列組成了一個功能點的測試用例,然后通過框架程序?qū)⑦@些用例解析為工具能識別的代碼。這樣就免去了大量的編寫腳本的工作。降低測試腳本的維護量。 下圖為測試用例 示例,2 自動化測試框架與工具,為了體現(xiàn)對象的層次結(jié)構(gòu),將對象存儲到XML文件中。在框架程序中將對象層次結(jié)構(gòu)解析出來。測試數(shù)據(jù)也會存儲到對應模塊的相應位置中(可以是EXCEL或者是數(shù)據(jù)庫),編寫用于
9、產(chǎn)生測試結(jié)果與測試報告的函數(shù),將測試結(jié)果寫入XML,產(chǎn)生測試報告時,解析該XML文件,最終生成一個HTML文件的測試報告。,2 自動化測試框架與工具,2.2.3 兩種類型框架的對比 數(shù)據(jù)驅(qū)動框架的結(jié)構(gòu)簡單,理論上能實現(xiàn)任何復雜邏輯的測試腳本。因為它是純腳本的框架,所以腳本的維護量很大,它適合能力較強、規(guī)模小的自動化測試團隊。 關(guān)鍵字驅(qū)動框架結(jié)構(gòu)復雜,對于一些復雜的測試邏輯比較難以實現(xiàn)(除非編寫專用的函數(shù)),它可極大的減少腳本的維護量,上手容易,適合較大規(guī)模的測試團隊。 它們的對比如下表所示:,對比維度,數(shù)據(jù)驅(qū)動框架,關(guān)鍵字驅(qū)動框架,2 自動化測試框架與工具,2.3 自動化測試工具 自動化測試工
10、具有很多,如QTP,Selenium,RFT,Monkey Test,Jmeter等。五花八門,有開源的也有商業(yè)的,但主流的測試工具還是QTP和Selenium,由于Selenium的開源和強大的瀏覽器兼容性和跨平臺性,正在被越來越多的人使用。而QTP與RFT作為商業(yè)工具的代表,以其易學易用和廣泛的軟件支持在市場上占據(jù)一席之地。下面主要介紹QTP和Selenium。 2.3.1 QTP工具 QTP是由HP公司提供的一款商業(yè)工具,它提供了強大的幫助文檔,用戶可以從文檔中查詢到關(guān)于工具以及VBS的幫助信息。 工作原理 QTP將要操作的界面元素(輸入框,單選框,按鈕等)抽象成對象。在腳本編寫 時,使
11、用錄制或者添加對象的方法將對象采集到對象庫中,QTP在執(zhí)行腳本時,,關(guān)鍵字驅(qū)動框架,2 自動化測試框架與工具,會從對象庫讀取對象取得對象名稱與對象屬性,與頁面元素做比對,如果匹配則執(zhí)行該腳本,否則拋出對象不識別的錯誤。 對象識別根據(jù)對象識別的規(guī)則來進行,即先對比強制屬性,如果強制屬性能唯一識別對象,那么對象識別停止,否則再進行輔助屬性的比對,接著是智能屬性和順序?qū)傩浴?常用的功能 Object spy 是QTP中一個重要的工具,它用于識別界面上操作的元素,如果能補object spy識別的元素就可以對它做自動化測試。 對象庫用于管理對象,錄制或者添加的對象會存儲到這里,一個好的方法就是將不同的
12、模塊對應的對象分別放在不同的action對應的對象庫中。 Datatable用于管理測試數(shù)據(jù),可以將測試數(shù)據(jù)先存入到EXCEL文件,在測試執(zhí)行時,將數(shù)據(jù)從EXCEL導入到Datatable供測試腳本引用 。,2 自動化測試框架與工具,場景恢復功能用在測試執(zhí)行過程中出現(xiàn)異常情況時要采取的策略。比如在測試執(zhí)行的過程中,出現(xiàn)了頁面404錯誤時,就可以利用場景恢復將瀏覽器重新啟動然后將腳本執(zhí)行轉(zhuǎn)到下一條用例 。 Action用于管理腳本,可以將不同模塊的腳本放在不同的action中來獨立的管理,這使得腳本的結(jié)構(gòu)更清晰。,2 自動化測試框架與工具,2.3.2 Selenium Selenium是Thou
13、ghtWorks公司開發(fā)的一款開源自動化測試工具,用于對web應用 程序的測試??梢灾С帜壳皫缀跛兄髁鞯臑g覽器。它工作在瀏覽器上,具有 執(zhí)行速度快,穩(wěn)定 性好的優(yōu)點。 工作原理 Selenium將頁面的HTML元素對應的XPATH,標簽,名稱,id等抽象成為工具可以識別的元素。腳本執(zhí)行時,selenium server將代碼轉(zhuǎn)化為javascript程序并將其裝載到瀏覽器中,由瀏覽器直接執(zhí)行轉(zhuǎn)化后的JS代碼,從而達到操作頁面元素的目的。 目前最常用的是Selenium2.0,即webdriver。以java+eclipse 為例 ,將需要的兩個jar包加入到工程中,就可開始進行腳本的編寫了。
14、為了便 于管理可以結(jié)合Junit或者是TestNG來進行自動化的腳本編寫 。,關(guān)鍵字驅(qū)動框架,2 自動化測試框架與工具,Selenium 測試直接在瀏覽器中運行,就像真實用戶所做的一樣。Selenium 測試可以在 Windows、Linux 和 Macintosh上的 Internet Explorer、Mozilla 和 Firefox 中運行。其他測試工具都不能覆蓋如此多的平臺。使用 Selenium 和在瀏覽器中運行測試還有很多其他好處。 通過編寫模仿用戶操作的 Selenium 測試腳本,可以從終端用戶的角度來測試應用程序。通過在不同瀏覽器中運行測試,更容易發(fā)現(xiàn)瀏覽器的不兼容性。Se
15、lenium 的核心,也稱browser bot,是用 JavaScript 編寫的。這使得測試腳本可以在受支持的瀏覽器中運行。browser bot 負責執(zhí)行從測試腳本接收到的命令,測試腳本或者是用 HTML 的表布局編寫的,或者是使用一種受支持的編程語言編寫的。編程語言可以實現(xiàn)復雜的邏輯,從而實現(xiàn)一些較復雜的測試任務(wù)。,關(guān)鍵字驅(qū)動框架,2 自動化測試框架與工具,2.3.3 QTP與Selenium的對比 QTP的優(yōu)點是簡單易用,可測試對象廣泛以及強大的幫助支持文檔庫。缺點是不穩(wěn)定,執(zhí)行效率不高,不能分布式和跨平臺執(zhí)行。支持的瀏覽器以及編程語言不多。 Selenium的優(yōu)點是執(zhí)行速度快,可分
16、布式跨平臺執(zhí)行,穩(wěn)定性好且開源免費。缺點是掌握難度大,對測試人員要求高,不能對非Web應用程序進行測試。對于瀏覽器上的對話框等元素的識別能力有限。,2 自動化測試框架與工具,3.1 自動化實施的基本流程 自動化實施就是將一個項目的測試進行自動化測試實現(xiàn)的過程。一般要經(jīng)過如下的流程:,3.1.1 項目自動化實施技術(shù)預研 在做自動化測試之前要對項目做一個比較全面的分析,主要依據(jù)自動化測試的準入標準來確定項目是否適合做自動化測試,3 自動化測試實施,技術(shù)預研,需求分析,編寫方案與計劃,搭建測試框架,腳本,用例,數(shù)據(jù)編寫,腳本調(diào)試,3.1.2 項目需求分析 對項目的需求進行分析,決定哪些功能點要進行自
17、動化實施,哪些功能點不要做自動化實施。一般而言,技術(shù)上能實現(xiàn)的基本功能的功能點都要進行自動化實現(xiàn),另外一些常測試的驗證,異常流也要進行自動化的實現(xiàn)。 3.1.3 實施方案與計劃的編寫 方案用于解決怎么做自動化實施的問題,可以將前期技術(shù)預研的結(jié)果寫入到方案中,主要內(nèi)容包括使用的框架,工具,平臺,編程語言等。計劃中包括各個任務(wù)的分工及資源情況,以及各個關(guān)鍵的節(jié)點對應的時間節(jié)點。 3.1.4 搭建自動化測試框架 根據(jù)團隊規(guī)模,人員能力,項目復雜度等 因素來決定例用數(shù)據(jù)驅(qū)動還是關(guān)鍵字驅(qū)動的框架。然后編寫框架的代碼,設(shè)計框架的結(jié)構(gòu),編寫公共函數(shù)等。,3 自動化測試實施,3.1.5 測試腳本,用例,數(shù)據(jù)的
18、編寫 這是關(guān)鍵的一步,測試腳本的質(zhì)量決定了自動化測試的執(zhí)行效率,執(zhí)行質(zhì)量及腳本的維護量。測試腳本要求要結(jié)構(gòu)清晰,可讀性強。 3.1.6 腳本調(diào)試 編寫好的測試腳本,肯定或多或少有錯誤,需要經(jīng)過不斷的腳本調(diào)試以及對測試用例及測試數(shù)據(jù)的修改,達到腳本運行穩(wěn)定,測試執(zhí)行過程符合預期的目的。,3 自動化測試實施,4.1 自動化測試的執(zhí)行 測試腳本,測試用例,測試數(shù)據(jù)編寫完成并經(jīng)過調(diào)試通過后,就可以配合項目的測試了。一般而言,自動化測試用于代替一部分的手工回歸測試和大部分的冒煙測試。因此,自動化測試執(zhí)行應該是在冒煙測試及回歸測試階段。 冒煙測試階段 在系統(tǒng)測試的一個輪次的測試開始前,一般要進行冒煙測試。如果是基于UI的自動化測試,準備冒煙測試的自動化測試腳本可能會有一些困難,因為測試之前,版本沒有發(fā)布,無法取得頁面元素,這就需要與開發(fā)人員進行溝通,可以在開發(fā)自己
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 妊娠期PKU的腸內(nèi)營養(yǎng)輸注管路維護培訓方案優(yōu)化策略總結(jié)-1
- 廠區(qū)招聘考試題目及答案
- 女性職場人群代謝綜合征的激素干預考量
- 頭頸部鱗癌分子分型與放療優(yōu)化
- 大數(shù)據(jù)視角下的體檢資源優(yōu)化配置策略-1
- 漢語考試初級試題及答案
- 職稱考試邏輯題及答案
- 多組學數(shù)據(jù)質(zhì)控:整合分析與結(jié)果可靠性
- 2025年大學烹飪類(烹飪技術(shù)創(chuàng)新)試題及答案
- 2025年高職(文創(chuàng)產(chǎn)品設(shè)計)產(chǎn)品研發(fā)專項測試試題及答案
- 2025年喀什地區(qū)巴楚縣輔警(協(xié)警)招聘考試題庫附答案解析
- 期末綜合質(zhì)量檢測卷(試題)-2025-2026學年 五年級上冊數(shù)學蘇教版
- 硅素行業(yè)分析報告
- 2025成都易付安科技有限公司第一批次招聘15人筆試重點試題及答案解析
- 2025內(nèi)蒙古鄂爾多斯市委政法委所屬事業(yè)單位引進高層次人才3人模擬筆試試題及答案解析
- 2025年院感防控知識考核試題含答案
- 跆拳道訓練服裝要求規(guī)范
- 食堂營銷方案創(chuàng)意(3篇)
- 《物流安全培訓》課件
- 2023北京石景山四年級(上)期末數(shù)學
- 新員工入職安全培訓資料
評論
0/150
提交評論