自动化测试框架的一些建议
源地址:http://www.automationqa.com/forum.php?mod=viewthread&tid=441&extra=page%3D1
?
以下是自動(dòng)化測(cè)試框架的建議,需要在以后的實(shí)踐中改進(jìn)。自動(dòng)化測(cè)試框架一般可以分為上下兩個(gè)層次,上層是管理整個(gè)自動(dòng)化測(cè)試的開(kāi)發(fā),執(zhí)行以及維護(hù),在比較龐大的項(xiàng)目中,它體現(xiàn)重要的作用,它可以管理整個(gè)自動(dòng)測(cè)試,包括自動(dòng)化測(cè)試用例執(zhí)行的次序、測(cè)試腳本的維護(hù)、以及集中管理測(cè)試用例、測(cè)試報(bào)告和測(cè)試任務(wù)等。下層主要是測(cè)試腳本的開(kāi)發(fā),充分的使用相關(guān)的測(cè)試工具,構(gòu)建測(cè)試驅(qū)動(dòng),并完成測(cè)試業(yè)務(wù)邏輯。
一、自動(dòng)化測(cè)試管理
自動(dòng)化測(cè)試用例的執(zhí)行機(jī)制一般包括管理端和執(zhí)行端,由管理端發(fā)出信號(hào)通知執(zhí)行端開(kāi)始執(zhí)行相應(yīng)的測(cè)試任務(wù),從而執(zhí)行相應(yīng)的腳本進(jìn)行測(cè)試,并將測(cè)試結(jié)果報(bào)告管理端。
1.管理端
管理端主要完成以下任務(wù):運(yùn)行控制的決策系統(tǒng),負(fù)責(zé)建立并維護(hù)運(yùn)行隊(duì)列,控制運(yùn)行策略和信號(hào)燈;在管理端還必須維護(hù)一個(gè)測(cè)試任務(wù)的隊(duì)列,每個(gè)測(cè)試任務(wù)的開(kāi)始執(zhí)行的時(shí)間可能不同,狀態(tài)也不一樣,管理端根據(jù)這些標(biāo)志對(duì)其進(jìn)行控制。
2.執(zhí)行端
執(zhí)行端根據(jù)管理端的決策系統(tǒng),來(lái)執(zhí)行運(yùn)行隊(duì)列中的測(cè)試腳本,其中運(yùn)行控制的執(zhí)行系統(tǒng),負(fù)責(zé)分配測(cè)試腳本,并按照指定策略啟動(dòng)腳本等也是執(zhí)行端的功能。
二、自動(dòng)化測(cè)試腳本開(kāi)發(fā)
1.測(cè)試驅(qū)動(dòng)
測(cè)試驅(qū)動(dòng)是一個(gè)自動(dòng)化測(cè)試框架的核心,其決定整個(gè)自動(dòng)化腳本設(shè)計(jì)。當(dāng)前比較流行的測(cè)試驅(qū)動(dòng)有數(shù)據(jù)驅(qū)動(dòng)和關(guān)鍵字驅(qū)動(dòng),使用不同的測(cè)試驅(qū)動(dòng),關(guān)系到腳本重用率,以及后期的可維護(hù)性。
(1)數(shù)據(jù)驅(qū)動(dòng)
基于數(shù)據(jù)驅(qū)動(dòng)的自動(dòng)化測(cè)試框架是指測(cè)試驅(qū)動(dòng)引擎從數(shù)據(jù)源獲取測(cè)試數(shù)據(jù),然后將將數(shù)據(jù)以參數(shù)的形式傳遞給測(cè)試腳本,最后通過(guò)執(zhí)行測(cè)試腳本,驗(yàn)證測(cè)試結(jié)果,并將測(cè)試結(jié)果輸出。一般數(shù)據(jù)源與測(cè)試結(jié)果存儲(chǔ)在、Excel文件、Csv文件等。數(shù)據(jù)驅(qū)動(dòng)主要優(yōu)點(diǎn)是:測(cè)試腳本與測(cè)試數(shù)據(jù)的分離,當(dāng)應(yīng)用功能變更時(shí),只需要修改該功能部分的腳本;執(zhí)行測(cè)試用例的人員不需要了解測(cè)試腳本的實(shí)現(xiàn),只關(guān)注測(cè)試數(shù)據(jù)表與測(cè)試報(bào)告表。而且測(cè)試腳本的執(zhí)行是離散的,即非線(xiàn)性的,測(cè)試人員可以有選擇的執(zhí)行測(cè)試用例。數(shù)據(jù)庫(kù)
(2)關(guān)鍵字驅(qū)動(dòng)
關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試框架是在數(shù)據(jù)驅(qū)動(dòng)的基礎(chǔ)上進(jìn)行改進(jìn),數(shù)據(jù)源里包含的不只是數(shù)據(jù),還有關(guān)鍵字,一個(gè)測(cè)試用例由一個(gè)或若干個(gè)關(guān)鍵字組成。每個(gè)關(guān)鍵字對(duì)應(yīng)個(gè)不同的業(yè)務(wù)邏輯,例如,登錄、注銷(xiāo)等。數(shù)據(jù)表通過(guò)關(guān)鍵字,查找映射表,執(zhí)行相關(guān)的腳本。
(3)驅(qū)動(dòng)引擎
驅(qū)動(dòng)引擎是對(duì)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行分析,根據(jù)不同的測(cè)試數(shù)據(jù)或關(guān)鍵字調(diào)用相應(yīng)測(cè)試腳本。驅(qū)動(dòng)引擎還需完成一些測(cè)試環(huán)境初始化、全局參數(shù)設(shè)置、測(cè)試用例是否執(zhí)行的判斷,以及測(cè)試報(bào)告的處理等。
2.測(cè)試腳本開(kāi)發(fā)
測(cè)試腳本開(kāi)發(fā)必須通過(guò)詳細(xì)、合理的設(shè)計(jì),要對(duì)腳本代碼進(jìn)行劃分,腳本文件或數(shù)據(jù)文件分層管理。這樣有利于自動(dòng)化腳本的開(kāi)發(fā)與維護(hù),從而節(jié)省自動(dòng)化測(cè)試的投入成本,也使得不同測(cè)試人員或開(kāi)發(fā)人員可以協(xié)調(diào)開(kāi)發(fā)腳本。
(1)腳本規(guī)范
測(cè)試腳本的開(kāi)發(fā)也要遵循編程的規(guī)則與標(biāo)準(zhǔn),應(yīng)該統(tǒng)一規(guī)劃,所有開(kāi)發(fā)腳本的人員按照統(tǒng)一的規(guī)定進(jìn)行編碼。除了編程本身規(guī)范,還考慮測(cè)試用例與庫(kù)函數(shù)名的命名,測(cè)試用例需要加上項(xiàng)目名稱(chēng),但公共的庫(kù)函數(shù)卻不需要,因?yàn)楣驳膸?kù)函數(shù)是獨(dú)立于項(xiàng)目的。例如,項(xiàng)目M4.1客戶(hù)端登錄測(cè)試用例可命名為:TC_M4.1_client_login;讀取excel表的函數(shù)可命名為:read_excel。
(2)腳本劃分
測(cè)試腳本的劃分,如何定義公共的腳本庫(kù),不同模塊特有的腳本庫(kù),以及直接構(gòu)建測(cè)試用例的腳本。為了方便以后腳本的維護(hù)問(wèn)題,必須對(duì)腳本進(jìn)行有效的分層,同時(shí),提高了腳本的復(fù)用率。
① 公共類(lèi)庫(kù)
公共類(lèi)庫(kù)包括所有模塊都可能用戶(hù)的操作方法,其抽象了不同模塊同性,比如操作excel表的方法、讀寫(xiě)測(cè)試報(bào)告、驅(qū)動(dòng)引擎等。
② 模塊特定類(lèi)庫(kù)
在模塊內(nèi)部將可以為該模塊共享使用的方法抽象出來(lái),作為一個(gè)公共類(lèi)。它可以是一個(gè)單的邏輯操作,也比較獨(dú)立。比如客戶(hù)端登錄操作、控制臺(tái)登錄操作、控制臺(tái)更新操作等。
③ 測(cè)試用例腳本
測(cè)試用例腳在最上層,它根據(jù)測(cè)試點(diǎn)進(jìn)行設(shè)計(jì),面向具體的應(yīng)用。它可直接調(diào)用公共類(lèi)庫(kù)或模塊特定類(lèi)庫(kù)的方法,即調(diào)單個(gè)邏輯操作。它是單個(gè)或多個(gè)邏輯操作的集合,即一個(gè)測(cè)試用戶(hù)腳本。比如,在客戶(hù)端訪(fǎng)問(wèn)資源的測(cè)試用例,它調(diào)用了客戶(hù)端登錄方法和訪(fǎng)問(wèn)資源方法。
(3)測(cè)試用例
① 測(cè)試用例粒度
測(cè)試用例的粒度決定了用例模型級(jí)的復(fù)雜度,也決定了每一個(gè)用例內(nèi)部的復(fù)雜度。應(yīng)該根據(jù)每個(gè)系統(tǒng)的具體情況來(lái)把握各個(gè)層次的復(fù)雜度,在盡可能保證整個(gè)用例模型的易理解性前提下決定用例的大小和數(shù)目。用例不能太大,這樣一旦出執(zhí)行測(cè)試用例出錯(cuò),不利于定位問(wèn)題;但也不能太細(xì)化,太小則不方便執(zhí)行。
② 測(cè)試用例與測(cè)試套件
一個(gè)大型的項(xiàng)目有許功能模塊,必然會(huì)產(chǎn)生大量的測(cè)試用例,怎樣才能有效的管理這些測(cè)試用例呢?這就需要?jiǎng)?chuàng)建測(cè)試套件,通過(guò)測(cè)試套件將測(cè)試某一個(gè)模塊或功能點(diǎn)的測(cè)試用例集合起來(lái),方便運(yùn)行與管理。例如,只驗(yàn)證“用戶(hù)管理”模塊功能,則只需要執(zhí)行“用戶(hù)管理”模塊套件即可。
(4)腳本與html標(biāo)記分離
腳本與html標(biāo)記分離使得在一定程度上腳本獨(dú)立于WEB頁(yè)面,腳本沒(méi)有直接的處理html標(biāo)記,腳本代碼通過(guò)html映射表獲取賦有WEB頁(yè)面標(biāo)記值的變量。WEB頁(yè)面標(biāo)記包括html標(biāo)記和頁(yè)面內(nèi)容(文本或圖片等,這些都可能是判斷用例是否成功能的檢查點(diǎn)),當(dāng)WEB頁(yè)面標(biāo)記變更后,不需要在范圍的修改腳本。
(5)選擇適合自動(dòng)化測(cè)試的用例
在編寫(xiě)自動(dòng)化測(cè)試腳本前,首先要確定哪些用例適合做自動(dòng)化測(cè)試,因?yàn)樽曰瘻y(cè)試不像手工測(cè)試,它不能那么智能,也沒(méi)有發(fā)發(fā)散思維。
通常適合自動(dòng)化測(cè)試的用例有:
產(chǎn)品型項(xiàng)目。產(chǎn)品型的項(xiàng)目,新版本是在舊版本的基礎(chǔ)上進(jìn)行改進(jìn),功能變不大的項(xiàng)目,但項(xiàng)目的新老功能都必須重復(fù)的測(cè)試。
回歸測(cè)試。回歸測(cè)試是自動(dòng)化測(cè)試的強(qiáng)項(xiàng),它能夠很好的驗(yàn)證你是否引入了新的缺陷,老的缺陷是否修改過(guò)來(lái)了。在某種程度上可以把自動(dòng)化測(cè)試工具叫做回歸測(cè)試工具。
機(jī)械并頻繁的測(cè)試。每次需要輸入相同、大量的一些數(shù)據(jù),并且在一個(gè)項(xiàng)目中運(yùn)行的周期比較長(zhǎng)。
有一些交互性比較強(qiáng),需要人工干預(yù)的操作,就不要指望通過(guò)自動(dòng)化測(cè)試來(lái)完成了。例如,用戶(hù)使用DKEY登錄
轉(zhuǎn)載于:https://www.cnblogs.com/ruby-huang/archive/2012/08/18/2645544.html
總結(jié)
以上是生活随笔為你收集整理的自动化测试框架的一些建议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在Action类中获得HttpServl
- 下一篇: 初学web开发需要掌握哪些方面?