什么是大數據?
大數據是不能使用傳統計算技術處理的大型數據集的集合。這些數據集的測試涉及各種工具,技術和框架來處理。大數據涉及數據創建,存儲,檢索和分析,在數量,多樣性和速度方面都非常出色。您可以在這里了解有關大數據,Hadoop和Mapreduce的更多信息
在本教程中,我們將學習,
大數據測試策略
測試大數據應用程序更多的是驗證其數據處理,而不是測試軟件產品的個別功能。當涉及到大數據測試時,性能和功能測試是關鍵。
在大數據測試中,QA工程師使用集群和其他支持組件來驗證TB級數據的成功過程。它需要高水平的測試技能,因為過程非常快。過程可以是三種類型

與此同時,數據質量也是大數據測試的一個重要因素。在測試應用程序之前,有必要檢查數據的質量,並應將其視為數據庫測試的一部分。它涉及檢查各種特征,如一致性,准確性,重復,一致性,有效性,數據完整性等。
驗證大數據應用程序的測試步驟
下圖給出了測試大數據應用程序階段的高級概述

大數據測試大致可分為三個步驟
步驟1:數據分段驗證
大數據測試的第一步,也稱為pre-Hadoop階段涉及過程驗證。
- 來自各種來源(如RDBMS,博客,社交媒體等)的數據應進行驗證,以確保正確的數據被拉入系統
- 將源數據與推送到Hadoop系統中的數據進行比較,以確保它們匹配
- 驗證正確的數據被提取並加載到正確的HDFS位置
像工具Talend,Datameer,可用於數據分段的驗證
步驟2:“MapReduce”驗證
第二步是驗證“MapReduce”。在這個階段,測試人員驗證每個節點上的業務邏輯驗證,然后在多個節點運行后驗證它們,確保
- Map Reduce進程正常工作
- 在數據上實現數據聚合或隔離規則
- 生成鍵值對
- 在Map Reduce進程后驗證數據
步驟3:輸出驗證階段
大數據測試的最終或第三階段是輸出驗證過程。生成輸出數據文件,並准備根據需要將其移至EDW(企業數據倉庫)或任何其他系統。
第三階段活動包括
- 檢查轉換規則是否正確應用
- 檢查數據完整性和成功的數據加載到目標系統中
- 通過將目標數據與HDFS文件系統數據進行比較來檢查沒有數據損壞
架構測試
Hadoop處理非常大量的數據,並且資源密集。因此,架構測試對於確保大數據項目的成功至關重要。系統設計不當或設計不當可能導致性能下降,系統可能無法滿足要求。至少,性能和故障轉移測試服務應在Hadoop環境中完成。
性能測試包括測試作業完成時間,內存利用率,數據吞吐量和類似的系統指標。雖然故障轉移測試服務的動機是驗證數據處理在數據節點故障的情況下無縫地發生
性能測試
大數據的性能測試包括兩個主要方面:
- 數據獲取和吞吐量:在這個階段,測試人員驗證快速系統如何使用來自各種數據源的數據。測試涉及識別隊列在給定時間幀中可以處理的不同消息。它還包括如何快速地將數據插入到底層數據存儲中,例如插入到Mongo和Cassandra數據庫中。
- 數據處理:它涉及驗證執行查詢或map reduce作業的速度。它還包括底層數據存儲的數據集中填充時隔離測試數據的過程。例如,在底層HDFS上運行Map Reduce作業
- 子組件性能:這些系統由多個組件組成,必須單獨測試這些組件。例如,消息被索引和使用的速度,mapreduce作業,查詢性能,搜索等。
性能測試方法
大數據應用程序的性能測試涉及大量結構化和非結構化數據的測試,它需要一種特定的測試方法來測試這樣的大量數據。

性能測試按此順序執行
- 對要性能測試的大數據集群的進行設置
- 識別和設計相應的工作負載
- 准備單個客戶端(創建自定義腳本)
- 執行測試並分析結果(如果不滿足目標,則調整組件並重新執行)
- 最佳配置
性能測試的參數
要驗證性能測試的各種參數是
- 數據存儲:數據如何存儲在不同的節點中
- 提交日志:提交日志允許增長的大小
- 並發性:有多少線程可以執行寫和讀操作
- 緩存:調整緩存設置“行緩存”和“密鑰緩存”。
- 超時:連接超時,查詢超時等的值。
- JVM參數:堆大小,GC收集算法等。
- 降低性能:排序,合並等
- 消息隊列:消息速率,大小等
測試環境需求
測試環境需求取決於要測試的應用程序的類型。對於大數據測試,測試環境應包括
- 它應該有足夠的空間用於存儲和處理大量的數據
- 它應該具有分布式節點和數據的集群
- 它應該具有最小的CPU和內存利用率,以保持高性能
<h3 id="6">大數據測試 傳統數據庫測試</h3>
屬性 | 傳統數據庫測試 | 大數據測試 |
---|---|---|
數據 | 使用結構化數據 | 同時處理結構化數據和非結構化數據 |
測試方法定義明確和time-tested | 測試方法需要集中的研發工作 | |
測試人員可以選擇“自動化工具”手動執行“抽樣”策略或“完全驗證”策略 | 大數據中的“抽樣”策略是一個挑戰 | |
基礎設施 | 它不需要特殊的測試環境,因為文件大小有限 | 它需要特殊的測試環境,因為大的數據大小和文件(HDFS) |
驗證工具 | 測試程序使用基於Excel的宏或基於UI的自動化工具 | 沒有定義的工具,范圍從廣泛從編程工具,如MapReduce到HIVEQL |
測試工具可以使用基本的操作知識和較少的培訓 | 它需要一組特定的技能和培訓來操作測試工具。此外,工具處於新生階段,加班也許會帶來新的功能。 |
大數據場景中使用的工具
大數據集群 | 大數據工具 |
---|---|
NoSQL | CouchDB,MongoDB,Cassandra,Redis,ZooKeeper,Hbase |
MapReduce | Hadoop,Hive,Pig,Cascading,Oozie,Kafka,S4,MapR,Flume |
存儲 | S3,HDFS(Hadoop分布式文件系統) |
服務器 | Elastic,Heroku,Google App Engine,EC2 |
處理 | R,Yahoo!Pipes,Mechanical Turk,BigSheets,Datameer |
大數據測試中的挑戰
-
自動化
大數據的自動化測試需要有技術專長的人員。此外,自動化工具不能處理測試期間出現的意外問題 -
虛擬化
它是測試的必需階段之一。虛擬機延遲會在實時大數據測試中產生時序問題。還有在大數據中管理圖像是一個麻煩。 -
大數據集
- 需要驗證更多的數據,需要做的更快
- 需要自動化測試工作
- 需要能夠跨不同平台進行測試
性能測試的挑戰
- 多樣化的技術:每個子組件屬於不同的技術,需要獨立測試
- 特定工具的不可用性:沒有單個工具可以執行端到端測試。例如,NoSQL可能不適合消息隊列
- 測試腳本:需要高度的腳本來設計測試場景和測試用例
- 測試環境:由於數據量大,需要特殊的測試環境
- 監控解決方案:可監控整個環境的解決方案有限
- 診斷解決方案:需要開發定制解決方案下鑽到性能瓶頸區域
概要
- 隨着數據工程和數據分析的進一步發展,大數據測試是不可避免的。
- 大數據處理可以是批處理,實時或交互
- 測試大數據應用的3個階段架構測試是大數據測試的重要階段,因為設計不良可能會導致前所未有的錯誤和性能下降
- 數據分段驗證
- “MapReduce”驗證
- 輸出驗證階段
- 大數據的性能測試包括驗證大數據測試與傳統數據測試在數據,基礎設施和驗證工具方面非常不同
- 數據吞吐量
- 數據處理
- 子組件性能
- 大數據測試的挑戰包括虛擬化,測試自動化和處理大型數據集。大數據應用程序的性能測試也是一個問題。
作者:傑克家的貓
鏈接:https://www.jianshu.com/p/397eb4bb4ea8
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。