




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、如何設計一個自動化測試呢?我們第一步要做的事情,是封裝你的無關操作。而這一步的基礎,就是設計自動化測試用例。什么是無關操作?無關操作是和期望操作正好相反的一個概念。測試人員的期望操作,就是要寫在自動化測試用例里面的代碼的最理想狀況。所以無關操作就是你不想寫在自動化測試用例里面的代碼。拿下面這個測試來舉例:第一個例子:假設我們要測試一個 hive 代碼:(如果你熟悉 hive,那么你應該可以看出我代碼所指的事情,如果你沒有用過 hive,那么就把 hive 看成是一種 sql 語言就好了)/下面一段是期望操作$input=zhangsan|28|8000n;/ 準 備輸 入 數喜歡下雨時的親和感
2、,帶給人寧靜。也可能有人遇見下雨就心煩,怪淋濕衣服據,第一行$input.=lisi|30|10000n;/準備輸入數據,第二行$input.=wangwu|40|20000n;/ 準 備輸 入 數據 , 第 三 行 / 下 面 一 段 是 無 關 操 作file_put_contents(&39;/tmp/staff.table&39;,$input);/ 將 輸 入 的 數 據 寫 入 到 文 件exec(&39;hadoopfs-mkdir/table_path/staff/&39;);/在 hadoop 上建立目標文件的目錄路徑exec(&39;
3、hive-ecreateexternaltablestuff(namestring,agebigint,salarybigint)partitionedby(dpstring)location&39;/table_path/staff/dp=etao&39;&39;);/建立 hive 的建表語句exec(&39;hadoopfs-put/tmp/staff.table/tab喜歡下雨時的親和感,帶給人寧靜。也可能有人遇見下雨就心煩,怪淋濕衣服le_path/staff/dp=etao/part-000&39;);/ 將我 們 的 數 據 文 件 放 到
4、hdfs上exec(&39;hive-ealtertablestaffaddifnotexistspartition(dp=etao)location/table_path/staff/dp=etao );/ 調 用altertable 為我們的表增加一個分區,地址是剛剛 上 傳 的 文 件 (hive的 專 有 特性)exec(&39;underTestShell.sh&39;);/執行被測試代碼exec(&39;hadoopfs-cat/tmp/result.table/table_path/result/dp=etao/part-000/tmp/resul
5、t.tmp&39;);/ 將 結 果 表 的 結 果 下 載 下 來$result=file_get_contents(&39;/tmp/result.tmp);/結果表讀取到內存中/下面一段是期喜歡下雨時的親和感,帶給人寧靜。也可能有人遇見下雨就心煩,怪淋濕衣服望操作 assert:equal($result,38000);?上面的測試代碼是我們最開始很可能寫出來的代碼,這樣的代碼面向過程,每一步都清楚的指明了他要干什么,非常直觀,因為他就是我們簡單的命令行命令的疊加。我相信交給別的測試人員,雖然看起來頭大,但是當他了解一個 hive的測試過程之后,就容易理解這樣的代碼了。但
6、是這個測試用例會在后期的維護中給測試人員帶來巨大的麻煩,原因就在于,這個測試用例的無關操作太多,甚至多過了測試人員真正關心的數據準備的代碼。(無關操作還是期望操作,我已經在注釋中給出)這么做的壞處很多,最主要的就是以下三點:1.測試人員無法集中注意力在自己應該集中注意力的數據準備上,導致效率下喜歡下雨時的親和感,帶給人寧靜。也可能有人遇見下雨就心煩,怪淋濕衣服降,這里效率下降的原因不僅僅是花時間關注無需關注的事情上,而且在不同的任務之間來回切換注意力,也會耗費大量的時間。2.測試代碼過于冗余,導致代碼無法維護。設想一下,當你擁有 3 個這樣的測試用例的時候,如果你想修改一下其中 hadoop
7、地址的路徑,這樣的代碼就需要將這個變化進行 3 次,如果有 300 個這樣的測試用例呢?自動化測試用例的易維護性是在日常中點點滴滴進行的。3.不熟悉 hive 代碼的人同學,編寫這樣的測試用例幾乎無法獨自完成。比如說你有一個同伴,對數據類型的驗證和測試方法很有成就,但是對 hive 一竅不通,那么他需要一個人手幫他熟悉 hive 的流程。這導致測試人員在同是數據測試的情況下跨項目流動困難。下面喜歡下雨時的親和感,帶給人寧靜。也可能有人遇見下雨就心煩,怪淋濕衣服是我們期望的封裝過無關操作之后的測試用例:/下面一段是期望操作$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);?從上面我們可以看出來,所有的測試的過程都被一個 run 函數所取代。如果這么做,測試人員可以將自己的注意力放在$input 的編寫和$result 的預期結果,也對開發的修改測試也可以方便的修改所有的東西。這個概念也可以平移到其他自動化測試中去:UI 的自動化測試,測試人員主要關心的焦點在于業務邏輯是否跑通,喜歡下雨時的親和感,帶給人寧靜。也可能有人遇見下雨就心煩,怪淋濕衣服而不是某一個頁面元素如何定位上, UI 自動測試要盡量把頁面元素抽取出來,定義成面向對象的類,或者使用關鍵字驅動來開發。單元測試的時候,主要需要關注的是當前開發代碼的運行狀況,所以會使用 Mock 將目前的模塊所依賴的其他模塊模擬出來。這些都是封裝無關操作的例子。回顧一下,這一個小節我主要想說的是,自動化測試不是簡單的把手動步驟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 九江學院《高等數學理論教學》2023-2024學年第一學期期末試卷
- 江蘇財會職業學院《彈性力學與有限元》2023-2024學年第二學期期末試卷
- 天津鐵道職業技術學院《PHP動態網站開發》2023-2024學年第二學期期末試卷
- 深圳技術大學《透過影像看健康》2023-2024學年第一學期期末試卷
- 天津美術學院《鄉村幼兒園教師專業素養案例原理方法》2023-2024學年第二學期期末試卷
- 漯河食品職業學院《住宅及辦公空間室內環境設計》2023-2024學年第一學期期末試卷
- 石家莊城市經濟職業學院《漢語國際教育概論》2023-2024學年第二學期期末試卷
- 楊凌職業技術學院《食品工程原理(2)》2023-2024學年第二學期期末試卷
- 離婚協議書模板子女已成年
- 回遷房屋買賣合同集錦二零二五年
- 《公務員法》專題講座
- 軟件工程介紹
- 功能性動作篩查(FMS)
- 電子商務的區塊鏈技術應用
- 船用起重機作業安全操作規程培訓課件
- 挺膺擔當主題團課
- 煤礦安全監控系統施工方案
- 中國地圖素材課件
- 動火作業專項安全施工方案
- 【新能源汽車電池回收技術方案設計3500字(論文)】
- 刑偵行業:刑偵技術與案件偵查培訓研討會
評論
0/150
提交評論