大數據測試


1、前言

大數據測試是對大數據應用程序的測試過程,以確保大數據應用程序的所有功能按預期工作。大數據測試的目標是確保大數據系統在保持性能和安全性的同時,平穩無差錯地運行。

 

大數據是無法使用傳統計算技術處理的大型數據集的集合。這些數據集的測試涉及要處理的各種工具、技術和框架。大數據涉及數據的創建、存儲、檢索和分析,在數量、種類和速度方面都非常出色。您可以在此處了解有關大數據、Hadoop 和 MapReduce 的更多信息。

 

2、大數據測試策略

測試大數據應用更多的是對其數據處理的驗證,而不是測試軟件產品的單個功能。談到大數據測試,性能和功能測試是關鍵。

 

在大數據測試策略中,QA工程師使用商品集群和其他支持組件驗證TB級數據的成功處理。由於處理速度非常快,因此需要高水平的測試技能。處理可能分為三種類型

 

除此之外,數據質量也是大數據測試中的一個重要因素。在測試應用程序之前,有必要檢查數據的質量,應該被視為數據庫測試的一部分。它涉及檢查各種特征,如一致性、准確性、重復性、有效性、數據完整性等。

 

3、如何測試大數據應用程序

下圖給出了測試大數據應用程序階段的高級概述

 

大數據測試大致可分為三個步驟:

 

步驟1:數據分段驗證

大數據測試的第一步,也稱為 Hadoop 前階段,涉及過程驗證。

  • 應驗證來自 RDBMS、網絡日志、社交媒體等各種來源的數據,以確保將正確的數據提取到系統中。

  • 將源數據與推送到 Hadoop 系統的數據進行比較以確保它們匹配。

  • 驗證是否提取了正確的數據並將其加載到正確的 HDFS 位置。

像工具 Talend,Datameer,可用於數據分段的驗證。

 

步驟2:MapReduce驗證

第二步是驗證“MapReduce”。在這個階段,測試人員在每個節點上進行業務邏輯驗證,然后在多個節點上運行后驗證它們,確保

  • Map Reduce 進程正常工作。

  • 對數據實施數據聚合或隔離規則。

  • 鍵值對生成。

  • 在 Map-Reduce 過程之后驗證數據。

 

步驟3:輸出驗證階段

大數據測試的最后或第三階段是輸出驗證過程。輸出數據文件已生成並准備好根據要求移動到 EDW(企業數據倉庫)或任何其他系統。第三階段的活動包括

  • 檢查轉換規則是否正確應用。

  • 檢查數據完整性和成功的數據加載到目標系統。

  • 通過將目標數據與 HDFS 文件系統數據進行比較來檢查是否存在數據損壞。

 

4、架構測試 

Hadoop 處理非常大量的數據並且是高度資源密集型的。因此,架構測試對於確保大數據項目的成功至關重要。設計不佳或不當的系統可能會導致性能下降,並且系統可能無法滿足要求。至少,性能和故障轉移測試服務應該在 Hadoop 環境中完成。

 

性能測試包括對作業完成時間、內存利用率、數據吞吐量和類似系統指標的測試。而故障轉移測試服務的動機是驗證在數據節點發生故障的情況下數據處理是否無縫進行。

 

5、性能測試

大數據性能測試包括三個主要操作

  • 數據獲取和吞吐量:在此階段,測試人員驗證快速系統如何使用來自各種數據源的數據。測試涉及識別隊列可以在給定時間范圍內處理的不同消息。它還包括將數據插入底層數據存儲的速度,例如插入 Mongo 和 Cassandra 數據庫的速度。

  • 數據處理:它涉及驗證查詢或 map reduce 作業的執行速度。它還包括在數據集中填充底層數據存儲時單獨測試數據處理。例如,在底層 HDFS 上運行 Map Reduce 作業。

  • 子組件性能:這些系統由多個組件組成,必須單獨測試每個組件。例如,消息被索引和消費的速度、MapReduce 作業、查詢性能、搜索等。

 

6、性能測試方法

大數據應用的性能測試涉及對海量結構化和非結構化數據的測試,需要特定的測試方法來測試如此海量的數據。

 

性能測試按此順序執行

1、該過程從要測試性能的大數據集群的設置開始

2、識別和設計相應的工作負載

3、准備單個客戶端(創建自定義腳本)

4、執行測試並分析結果(如果不滿足目標,則調整組件並重新執行)

5、最佳配置

 

7、性能測試參數

性能測試需要驗證的各種參數是

  • 數據存儲:數據如何存儲在不同的節點。

  • 提交日志:允許提交日志增長的大小。

  • 並發:有多少線程可以執行讀寫操作。

  • 緩存:調整緩存設置“行緩存”和“鍵緩存”。

  • 超時:連接超時、查詢超時等的值。

  • JVM 參數:堆大小、GC 收集算法等。

  • 降低性能:排序、合並等。

  • 消息隊列:消息速率、大小等。

 

8、測試環境需求 

測試環境需要取決於您正在測試的應用程序類型。對於大數據軟件測試,測試環境應該包括

  • 它應該有足夠的空間來存儲和處理大量數據。

  • 它應該有一個具有分布式節點和數據的集群。

  • 它應該具有最低的 CPU 和內存使用率以保持高性能以測試大數據性能。

 

9、大數據測試對比傳統數據庫測試

 

10、大數據場景中使用的工具 

 

11、大數據測試的挑戰 

1、自動化

大數據的自動化測試需要具有技術專長的人員。此外,自動化工具不具備處理測試過程中出現的意外問題的能力。

 

2、虛擬化

它是測試的組成部分之一。虛擬機延遲會在實時大數據性能測試中產生計時問題。在大數據中管理圖像也很麻煩。

 

3、大數據集

需要驗證更多數據並且需要更快地完成。

需要自動化測試工作。

需要能夠跨不同平台進行測試。

 

12、性能測試挑戰

  • 多樣化的技術:每個子組件屬於不同的技術,需要單獨測試。

  • 特定工具不可用:沒有單一工具可以執行端到端測試。例如,NoSQL 可能不適合消息隊列。

  • 測試腳本:需要高度的腳本來設計測試場景和測試用例。

  • 測試環境:數據量大,需要特殊的測試環境。

  • 監控解決方案:存在可以監控整個環境的有限解決方案。

  • 診斷解決方案:需要開發自定義解決方案以深入挖掘性能瓶頸區域。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM