專題 如何寫測試 HBase

2021-07-09 02:19:14 字數 2419 閱讀 5845

最近做spark streaming任務時用到了hbase做中間狀態查詢和儲存,順手寫了一些測試,小小總結了一下各部分測試的寫法。話說這裡為什麼不用redis呢?redis作為kv儲存系統還是太簡單了,hbase可以讓你少操很多很多心,這裡就不跑題了。

2. csdn上的翻譯:使用常用工具測試hbase應用

利用hbasetestobj的hbase的put測試。個人認為沒什麼用,要檢查put還不如直接檢查進入put之前的內容。

使用mrunit來測試mapreduce的hbase表輸入輸出,這一部分可以參照前一篇的mapreduce測試,本質與1是一致的,就是檢查put物件(取出put物件中的內容做比較,不要費神去自己構造put物件了,神煩)。

使用hbase mini cluster的hbasetestingutility進行整合測試,網上的介紹是說啟動一次需要20-30秒,實測結果是比一般的測試慢不了多少,建議就直接使用這個,簡單並且統一,不用專門為了測試而測試。下面的例子都是以hbase mini cluster為基礎進行的測試。

fakehbase,沒有嘗試使用,看起來挺好的。

一般來說只會使用其中的一種,選乙個就好。

org.apache.hadoopgroupid>

hadoop-commonartifactid>

2.4.0version>

test-jartype>

testscope>

dependency>

org.apache.hbasegroupid>

hbaseartifactid>

0.94.11version>

test-jartype>

testscope>

dependency>

org.apache.hadoopgroupid>

hadoop-hdfsartifactid>

2.4.0version>

test-jartype>

testscope>

dependency>

org.apache.hadoopgroupid>

hadoop-hdfsartifactid>

2.4.0version>

testscope>

dependency>

class

hbasetest

extends

flatspec

with

beforeandafterall

override

protected

def afterall(): unit =

驗證乙個寫入和讀出這個一般來說這一步意義不大,因為hbase裡面只有一種型別的資料——bytes。如果使用的是hbase提供的一系列方法

byte bytes.tobytes(long t);

byte bytes.tobytes(int t);

byte bytes.tobytes(byte t);

byte bytes.tobytes(string t);

是不會有問題的。需要驗證的是在某個邏輯序列之後輸出到hbase的結果的驗證。但是由於這裡使用的是mini cluster,具體操作上來說與普通的hbase表的put/get/delete並沒有差異。需要注意的是htable的獲得不能夠再由conf檔案建立得到

htable htable = new htable(conf, "tablename")
如果之前有直接使用conf來獲得表的函式,在這裡需要進行拆分成類似於def ipgeographicquery(htable: htable, ...)這樣的。要適應測試也是需要對**進行一些修改的。剩下的就沒有什麼了,都是普通的操作。下面是一段沒有邏輯的**:

val put = new put(key)

put.add(col.family(), col.qualifier(), thriftserde.serialize(u))

table.put(put)

val get = new get(key)

get.add(col.family(), col.qualifier(), thriftserde.serialize(u))

val rs = table.put(get)

val thriftobj = new thriftobj()

thriftserde.deserialize(thriftobj, rs.getvalue(col.family(), col.qualifier()))

基本上意思就是,如果使用mini-cluster就沒有什麼需要專門為測試特殊處理的地方了。

如何寫測試策略

簡單的說,測試 策略的意思就是說 你如何測試目標產品或應用程式?你要在測試策略中很明確的提出你進行測試時所使用的方法和步驟。我看到過很多公司嚴格地按照一些測試策略模板來寫。但是,其實不用模板,你也可以並且更高效地寫測試策略。下面是一些簡單的寫測試策略的技巧,1 在測試策略中要包括產品的背景資訊。在測...

如何寫測試用例

1 了解軟體的原始需求 測試目的 在編寫乙個軟體或者模組的測試用例時候,一定要明白這個功能的原始需求,也就是軟體的使用者 客戶 的需求。理解原始需求後,編寫的測試用例才更有目的性。2 熟悉軟體的功能需求 測試點 這個功能需求是指軟體的細化需求點,這個一般在需求文件裡面都會體現。這裡要做的是把需求穩定...

測試計畫應如何寫

良好的測試計畫應包括 1 目標。必須定義每個測試階段的目標 2 結束準則。必須制定準則以規定每個階段何時可以結束。3 進度。每個階段都須有時間表。應支出何時設計 編寫和執行測試用例。4 責任。對於每乙個階段,應該確定誰來設計 編寫和驗證測試用例,誰來修改發現的軟體錯誤。5 測試用例庫及標準。在大型專...