1. 程式人生 > >拋磚引玉----個人大資料測試小結

拋磚引玉----個人大資料測試小結

最近一直想在大資料方面做更為全面的測試,但是涉及這一塊目前資料較少,所以拋磚引玉,希望有同行加微信互相交流 (soy0209)

1.ETL測試

    ETL, Extract-Transform-Load 的縮寫,將資料從來源端經過抽取(extract)、轉換(transform)、載入(load)至目的端的過程.

   ETL工具較多,用過的是informatica.它從目標表抽取資料載入到結果表 hive<-->資料庫.

   測試思路:

     a.測試抽取的符合條件的資料總量;

     b.報表欄位型別轉換測試;

     c.報表欄位特殊值測試(空,null,複合型字元);

     d.根據sql過濾條件進行造數測試;

     e.根據業務場景進行造數測試;

     f.開發建立的報表/報表欄位和測試報表進行對比測試;

     g.開發條件過濾sql初步遍歷看有無明顯語法錯誤測試;

     h.報表拉數耗費時間測試;

     j.報表大批量資料拉取效能測試.

用過informatica的同學都知道它有四個介面段,基於開發寫的sql,報表欄位,資料庫連線串,errorlog都能從裡面獲取到資訊,建議當工具拉數報錯時,自己能更改的錯誤自己就直接改了(當然事後別忘記告訴開發更新)。

2.Linux環境的shell指令碼測試.

   一般shell指令碼都是基本 資料庫-->hive-->資料庫的過程,也就是 hive的一個import 和 export的過程,需要涉及的知識面:基本的linux命令,shell指令碼命令,hivesql,hdfs命令.

     因為shell指令碼測試有些時候是基於需要直接更改報表在hdfs路徑下的資料檔案,本人是建議測試完全掌握這一塊的,畢竟公司部門的shell指令碼一般都是有一個統一格式的.

     測試思路:

      1.遍歷shell指令碼檢視開發輸出的指令碼是否正確(命名規範,指令碼內容,呼叫函式,日誌列印,異常檢查機制);

2.遍歷oracle/mysql/hive等建表語句(包含報表名稱,報表欄位,報表hdfs路徑,索引建立,分割槽建立);

3.import/export報表資料總量;

4.import/export報表資料的指令碼執行時間;

5.資料庫--hive 的資料型別轉換;

6.歷史資料報表的歷史資料量;

7.一些簡單的sql語句優化..

  hive報表主要涉及的都是一些資料傳輸過程,然後在hive裡面使用sql進行一些邏輯計算,最後得出結果再把資料傳輸出去,所以主要關注點都在hive這一塊。

3.kafka/scala

這個是目前正在做的專案,涉及到的kafka以及scala語言均需要補充新知識,scala語言相對好一點,是類似sql的一種寫法,主要是在kafka中進行計算然後進行一個介面資料傳輸,從測試角度來看,涉及到:需求確定的邏輯計算方式 ,需求確定的各欄位名稱,需求確定的取數範圍(標識,時間,狀態),考慮報表歷史資料量大小對效能的影響,基於伺服器大小對各報表歷史資料儲存時間的確定,json串資料傳輸.

(私人討論總結,請轉載註明出處為test_soy,謝謝!)

 效能方面,個人感覺伺服器大小配置會很大程度上影響到資料的傳輸速度,資料的處理速度,也就是說,客戶看到需要的資料的時間會根據伺服器的配置來進行延長或縮短,而作為測試,目前一直思考的也是這塊的,如何在排除伺服器配置的情況下,能更好的測試處程式碼計算的效能是一直在想的問題,因為這一塊也沒找到比較有用的對比資料以及參考指標.