如何設(shè)計(jì)你的自動(dòng)化測(cè)試_第1頁(yè)
如何設(shè)計(jì)你的自動(dòng)化測(cè)試_第2頁(yè)
如何設(shè)計(jì)你的自動(dòng)化測(cè)試_第3頁(yè)
如何設(shè)計(jì)你的自動(dòng)化測(cè)試_第4頁(yè)
如何設(shè)計(jì)你的自動(dòng)化測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、如何設(shè)計(jì)一個(gè)自動(dòng)化測(cè)試呢?我們第一步要做的事情,是封裝你的無(wú)關(guān)操作。而這一步的基礎(chǔ),就是設(shè)計(jì)自動(dòng)化測(cè)試用例。什么是無(wú)關(guān)操作?無(wú)關(guān)操作是和期望操作正好相反的一個(gè)概念。測(cè)試人員的期望操作,就是要寫(xiě)在自動(dòng)化測(cè)試用例里面的代碼的最理想狀況。所以無(wú)關(guān)操作就是你不想寫(xiě)在自動(dòng)化測(cè)試用例里面的代碼。拿下面這個(gè)測(cè)試來(lái)舉例:第一個(gè)例子:假設(shè)我們要測(cè)試一個(gè) hive 代碼:(如果你熟悉 hive,那么你應(yīng)該可以看出我代碼所指的事情,如果你沒(méi)有用過(guò) hive,那么就把 hive 看成是一種 sql 語(yǔ)言就好了)/下面一段是期望操作$input=zhangsan|28|8000n;/ 準(zhǔn) 備輸 入 數(shù)喜歡下雨時(shí)的親和感

2、,帶給人寧?kù)o。也可能有人遇見(jiàn)下雨就心煩,怪淋濕衣服據(jù),第一行$input.=lisi|30|10000n;/準(zhǔn)備輸入數(shù)據(jù),第二行$input.=wangwu|40|20000n;/ 準(zhǔn) 備輸 入 數(shù)據(jù) , 第 三 行 / 下 面 一 段 是 無(wú) 關(guān) 操 作file_put_contents(&39;/tmp/staff.table&39;,$input);/ 將 輸 入 的 數(shù) 據(jù) 寫(xiě) 入 到 文 件exec(&39;hadoopfs-mkdir/table_path/staff/&39;);/在 hadoop 上建立目標(biāo)文件的目錄路徑exec(&39;

3、hive-ecreateexternaltablestuff(namestring,agebigint,salarybigint)partitionedby(dpstring)location&39;/table_path/staff/dp=etao&39;&39;);/建立 hive 的建表語(yǔ)句exec(&39;hadoopfs-put/tmp/staff.table/tab喜歡下雨時(shí)的親和感,帶給人寧?kù)o。也可能有人遇見(jiàn)下雨就心煩,怪淋濕衣服le_path/staff/dp=etao/part-000&39;);/ 將我 們 的 數(shù) 據(jù) 文 件 放 到

4、hdfs上exec(&39;hive-ealtertablestaffaddifnotexistspartition(dp=etao)location/table_path/staff/dp=etao );/ 調(diào) 用altertable 為我們的表增加一個(gè)分區(qū),地址是剛剛 上 傳 的 文 件 (hive的 專(zhuān) 有 特性)exec(&39;underTestShell.sh&39;);/執(zhí)行被測(cè)試代碼exec(&39;hadoopfs-cat/tmp/result.table/table_path/result/dp=etao/part-000/tmp/resul

5、t.tmp&39;);/ 將 結(jié) 果 表 的 結(jié) 果 下 載 下 來(lái)$result=file_get_contents(&39;/tmp/result.tmp);/結(jié)果表讀取到內(nèi)存中/下面一段是期喜歡下雨時(shí)的親和感,帶給人寧?kù)o。也可能有人遇見(jiàn)下雨就心煩,怪淋濕衣服望操作 assert:equal($result,38000);?上面的測(cè)試代碼是我們最開(kāi)始很可能寫(xiě)出來(lái)的代碼,這樣的代碼面向過(guò)程,每一步都清楚的指明了他要干什么,非常直觀,因?yàn)樗褪俏覀兒?jiǎn)單的命令行命令的疊加。我相信交給別的測(cè)試人員,雖然看起來(lái)頭大,但是當(dāng)他了解一個(gè) hive的測(cè)試過(guò)程之后,就容易理解這樣的代碼了。但

6、是這個(gè)測(cè)試用例會(huì)在后期的維護(hù)中給測(cè)試人員帶來(lái)巨大的麻煩,原因就在于,這個(gè)測(cè)試用例的無(wú)關(guān)操作太多,甚至多過(guò)了測(cè)試人員真正關(guān)心的數(shù)據(jù)準(zhǔn)備的代碼。(無(wú)關(guān)操作還是期望操作,我已經(jīng)在注釋中給出)這么做的壞處很多,最主要的就是以下三點(diǎn):1.測(cè)試人員無(wú)法集中注意力在自己應(yīng)該集中注意力的數(shù)據(jù)準(zhǔn)備上,導(dǎo)致效率下喜歡下雨時(shí)的親和感,帶給人寧?kù)o。也可能有人遇見(jiàn)下雨就心煩,怪淋濕衣服降,這里效率下降的原因不僅僅是花時(shí)間關(guān)注無(wú)需關(guān)注的事情上,而且在不同的任務(wù)之間來(lái)回切換注意力,也會(huì)耗費(fèi)大量的時(shí)間。2.測(cè)試代碼過(guò)于冗余,導(dǎo)致代碼無(wú)法維護(hù)。設(shè)想一下,當(dāng)你擁有 3 個(gè)這樣的測(cè)試用例的時(shí)候,如果你想修改一下其中 hadoop

7、地址的路徑,這樣的代碼就需要將這個(gè)變化進(jìn)行 3 次,如果有 300 個(gè)這樣的測(cè)試用例呢?自動(dòng)化測(cè)試用例的易維護(hù)性是在日常中點(diǎn)點(diǎn)滴滴進(jìn)行的。3.不熟悉 hive 代碼的人同學(xué),編寫(xiě)這樣的測(cè)試用例幾乎無(wú)法獨(dú)自完成。比如說(shuō)你有一個(gè)同伴,對(duì)數(shù)據(jù)類(lèi)型的驗(yàn)證和測(cè)試方法很有成就,但是對(duì) hive 一竅不通,那么他需要一個(gè)人手幫他熟悉 hive 的流程。這導(dǎo)致測(cè)試人員在同是數(shù)據(jù)測(cè)試的情況下跨項(xiàng)目流動(dòng)困難。下面喜歡下雨時(shí)的親和感,帶給人寧?kù)o。也可能有人遇見(jiàn)下雨就心煩,怪淋濕衣服是我們期望的封裝過(guò)無(wú)關(guān)操作之后的測(cè)試用例:/下面一段是期望操作$input=zhangsan|28|8000n;$input.=lisi

8、|30|10000n;$input.=wangwu|40|20000n;$underTest=newunderTest();$result=$underTest-run();/ 下 面 一 段 是 期 望 操 作assert:equal($result&39;result&39;,38000);?從上面我們可以看出來(lái),所有的測(cè)試的過(guò)程都被一個(gè) run 函數(shù)所取代。如果這么做,測(cè)試人員可以將自己的注意力放在$input 的編寫(xiě)和$result 的預(yù)期結(jié)果,也對(duì)開(kāi)發(fā)的修改測(cè)試也可以方便的修改所有的東西。這個(gè)概念也可以平移到其他自動(dòng)化測(cè)試中去:UI 的自動(dòng)化測(cè)試,測(cè)試人員主要關(guān)心的焦點(diǎn)在于業(yè)務(wù)邏輯是否跑通,喜歡下雨時(shí)的親和感,帶給人寧?kù)o。也可能有人遇見(jiàn)下雨就心煩,怪淋濕衣服而不是某一個(gè)頁(yè)面元素如何定位上, UI 自動(dòng)測(cè)試要盡量把頁(yè)面元素抽取出來(lái),定義成面向?qū)ο蟮念?lèi),或者使用關(guān)鍵字驅(qū)動(dòng)來(lái)開(kāi)發(fā)。單元測(cè)試的時(shí)候,主要需要關(guān)注的是當(dāng)前開(kāi)發(fā)代碼的運(yùn)行狀況,所以會(huì)使用 Mock 將目前的模塊所依賴的其他模塊模擬出來(lái)。這些都是封裝無(wú)關(guān)操作的例子?;仡櫼幌?,這一個(gè)小節(jié)我主要想說(shuō)的是,自動(dòng)化測(cè)試不是簡(jiǎn)單的把手動(dòng)步驟

溫馨提示

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

評(píng)論

0/150

提交評(píng)論