概要
1、隨著數(shù)據(jù)工程和數(shù)據(jù)分析技術(shù)的不斷進(jìn)步,大數(shù)據(jù)測試是不可避免的嫌褪。
2、大數(shù)據(jù)處理可以是批處理痢虹,實(shí)時或交互式處理
3、測試大數(shù)據(jù)應(yīng)用程序的3個階段是
數(shù)據(jù)分級驗(yàn)證
“MapReduce”驗(yàn)證
輸出驗(yàn)證階段
4、架構(gòu)測試是大數(shù)據(jù)測試的重要階段,因?yàn)樵O(shè)計不佳的系統(tǒng)可能會導(dǎo)致前所未有的錯誤和性能下降
5竭鞍、大數(shù)據(jù)的性能測試包括驗(yàn)證
數(shù)據(jù)吞吐量
數(shù)據(jù)處理
子組件性能
6、大數(shù)據(jù)測試與傳統(tǒng)數(shù)據(jù)測試在數(shù)據(jù)橄镜,基礎(chǔ)架構(gòu)和驗(yàn)證工具方面有很大的不同
7、大數(shù)據(jù)測試挑戰(zhàn)包括虛擬化冯乘,測試自動化和處理大型數(shù)據(jù)集洽胶。大數(shù)據(jù)應(yīng)用程序的性能測試也是一個問題。
一裆馒、什么是大數(shù)據(jù)?
大數(shù)據(jù)是一個大的數(shù)據(jù)集合姊氓,通過傳統(tǒng)的計算技術(shù)無法進(jìn)行處理。這些數(shù)據(jù)集的測試需要使用各種工具喷好、技術(shù)和框架進(jìn)行處理翔横。大數(shù)據(jù)涉及數(shù)據(jù)創(chuàng)建、存儲梗搅、檢索禾唁、分析,而且它在數(shù)量无切、多樣性荡短、速度方法都很出色。
二哆键、大數(shù)據(jù)測試類型
測試大數(shù)據(jù)應(yīng)用程序更多的是驗(yàn)證其數(shù)據(jù)處理掘托,而不是測試軟件產(chǎn)品的個別功能。當(dāng)涉及到大數(shù)據(jù)測試時籍嘹,性能和功能測試是關(guān)鍵闪盔。
在大數(shù)據(jù)測試中弯院,QA工程師使用集群和其他組件來驗(yàn)證對TB級數(shù)據(jù)的成功處理。因?yàn)樘幚矸浅泪掀?焯运枰咚降臏y試技能。處理可以是三種類型:批量族淮、實(shí)時辫红、交互。
與此同時祝辣,數(shù)據(jù)質(zhì)量也是大數(shù)據(jù)測試的一個重要因素贴妻。在測試應(yīng)用程序之前,有必要檢查數(shù)據(jù)的質(zhì)量蝙斜,并將其視為數(shù)據(jù)庫測試的一部分名惩。它涉及檢查各種字段,如一致性孕荠,準(zhǔn)確性娩鹉,重復(fù),一致性稚伍,有效性弯予,數(shù)據(jù)完整性等。
三个曙、大數(shù)據(jù)測試步驟
下圖給出了測試大數(shù)據(jù)應(yīng)用程序階段的高級概述:
大數(shù)據(jù)測試實(shí)現(xiàn)被分成三個步锈嫩。
Step 1:數(shù)據(jù)階段驗(yàn)證
大數(shù)據(jù)測試的第一步,也稱作pre-hadoop階段該過程包括如下驗(yàn)證:
1垦搬、來自各方面的數(shù)據(jù)資源應(yīng)該被驗(yàn)證呼寸,來確保正確的數(shù)據(jù)被加載進(jìn)系統(tǒng)
2、將源數(shù)據(jù)與推送到Hadoop系統(tǒng)中的數(shù)據(jù)進(jìn)行比較猴贰,以確保它們匹配
3对雪、驗(yàn)證正確的數(shù)據(jù)被提取并被加載到HDFS正確的位置 ,該階段可以使用工具Talend或Datameer,進(jìn)行數(shù)據(jù)階段驗(yàn)證米绕。
Step 2:"MapReduce"驗(yàn)證
大數(shù)據(jù)測試的第二步是MapReduce的驗(yàn)證瑟捣。在這個階段,測試者在每個節(jié)點(diǎn)上進(jìn)行業(yè)務(wù)邏輯驗(yàn)證栅干,然后在運(yùn)行多個節(jié)點(diǎn)后驗(yàn)證它們蝶柿,確保如下操作的正確性:
1、Map與Reduce進(jìn)程正常工作
2非驮、在數(shù)據(jù)上實(shí)施數(shù)據(jù)聚合或隔離規(guī)則
3交汤、生成鍵值對
4、在執(zhí)行Map和Reduce進(jìn)程后驗(yàn)證數(shù)據(jù)
Step 3:輸出階段驗(yàn)證
大數(shù)據(jù)測試的最后或第三階段是輸出驗(yàn)證過程。生成輸出數(shù)據(jù)文件芙扎,同時把文件移到一個EDW(Enterprise Data Warehouse:企業(yè)數(shù)據(jù)倉庫)中或著把文件移動到任何其他基于需求的系統(tǒng)中星岗。在第三階段的活動包括:
1、檢查轉(zhuǎn)換(Transformation)規(guī)則被正確應(yīng)用
2戒洼、檢查數(shù)據(jù)完整性和成功的數(shù)據(jù)加載到目標(biāo)系統(tǒng)中
3俏橘、通過將目標(biāo)數(shù)據(jù)與HDFS文件系統(tǒng)數(shù)據(jù)進(jìn)行比較來檢查沒有數(shù)據(jù)損壞
四、架構(gòu)測試
Hadoop處理大量的數(shù)據(jù)圈浇,并且是非常耗費(fèi)資源的寥掐。因此,架構(gòu)測試對于確保您的大數(shù)據(jù)項(xiàng)目的成功至關(guān)重要磷蜀。系統(tǒng)設(shè)計不當(dāng)或設(shè)計不當(dāng)可能導(dǎo)致性能下降召耘,系統(tǒng)不能滿足要求。至少褐隆,性能和故障轉(zhuǎn)移測試服務(wù)應(yīng)該在Hadoop環(huán)境中完成污它。
性能測試包括測試作業(yè)完成時間,內(nèi)存使用率庶弃,數(shù)據(jù)吞吐量和類似的系統(tǒng)指標(biāo)衫贬。而故障轉(zhuǎn)移測試服務(wù)的動機(jī)是為了驗(yàn)證在數(shù)據(jù)節(jié)點(diǎn)發(fā)生故障的情況下數(shù)據(jù)處理是否無縫地發(fā)生
五、性能測試
大數(shù)據(jù)性能測試包括兩個主要的行動
數(shù)據(jù)采集和整個過程:在這個階段歇攻,測試人員驗(yàn)證快速系統(tǒng)如何消耗來自各種數(shù)據(jù)源的數(shù)據(jù)固惯。測試涉及識別隊列在給定時間框架內(nèi)可以處理的不同消息。它還包括如何快速將數(shù)據(jù)插入到底層數(shù)據(jù)存儲中缴守,例如插入到Mongo和Cassandra數(shù)據(jù)庫中缝呕。
數(shù)據(jù)處理:它涉及驗(yàn)證執(zhí)行查詢或映射縮減作業(yè)的速度。它還包括在底層數(shù)據(jù)存儲填充到數(shù)據(jù)集中時獨(dú)立測試數(shù)據(jù)處理斧散。例如,在底層HDFS上運(yùn)行Map Reduce作業(yè)
子組件性能:這些系統(tǒng)由多個組件組成摊聋,而且必須單獨(dú)測試每個組件鸡捐。例如,消息的索引和消費(fèi)速度有多快麻裁,mapreduce作業(yè)箍镜,查詢性能,搜索等
六煎源、性能測試方法
大數(shù)據(jù)應(yīng)用性能測試涉及大量結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的測試色迂,并且需要特定的測試方法來測試這些海量數(shù)據(jù)。
性能測試按此順序執(zhí)行
1手销、過程從設(shè)置要測試性能的大數(shù)據(jù)群集開始
2歇僧、確定和設(shè)計相應(yīng)的工作量
3、準(zhǔn)備個人客戶(自定義腳本創(chuàng)建)
4、執(zhí)行測試并分析結(jié)果(如果不滿足目標(biāo)诈悍,則調(diào)整組件并重新執(zhí)行)
5祸轮、最佳配置
性能測試的參數(shù)
性能測試需要驗(yàn)證的各種參數(shù):
1、數(shù)據(jù)存儲:數(shù)據(jù)如何存儲在不同的節(jié)點(diǎn)中
2侥钳、提交日志:允許增長的提交日志有多大
3适袜、并發(fā)性:有多少個線程可以執(zhí)行寫入和讀取操作
4、緩存:調(diào)整緩存設(shè)置“行緩存”和“鍵緩存”舷夺。
5苦酱、超時:連接超時值,查詢超時值等
6给猾、JVM參數(shù):堆大小疫萤,GC收集算法等
7、地圖降低性能:排序耙册,合并等
8给僵、消息隊列:消息速率,大小等
測試環(huán)境需求
測試環(huán)境需求取決于您正在測試的應(yīng)用程序的類型详拙。對于大數(shù)據(jù)測試帝际,測試環(huán)境應(yīng)該包含:
1、它應(yīng)該有足夠的空間來存儲和處理大量的數(shù)據(jù)
2饶辙、它應(yīng)該有分布式節(jié)點(diǎn)和數(shù)據(jù)的集群
3蹲诀、它應(yīng)該有最低的CPU和內(nèi)存利用率,以保持高性能
七弃揽、大數(shù)據(jù)測試面臨的挑戰(zhàn)
自動化
大數(shù)據(jù)的自動化測試需要具有技術(shù)專長的人員脯爪。另外,自動化工具不具備處理測試過程中出現(xiàn)的意外問題的能力
虛擬化
這是測試的一個不可缺少的階段矿微。虛擬機(jī)延遲會在實(shí)時大數(shù)據(jù)測試中造成計時問題痕慢。在大數(shù)據(jù)中管理圖像也是一件麻煩事。
大數(shù)據(jù)集
1涌矢、需要驗(yàn)證更多的數(shù)據(jù)掖举,并需要更快地完成
2、需要自動化測試工作
3娜庇、需要能夠跨不同的平臺進(jìn)行測試
八塔次、性能測試挑戰(zhàn)
1、多種技術(shù)組合:每個子組件屬于不同的技術(shù)名秀,需要單獨(dú)測試
2励负、不可用的特定工具:沒有一個工具可以執(zhí)行端到端的測試。例如匕得,NoSQL可能不適合消息隊列
3继榆、測試腳本:需要高度的腳本來設(shè)計測試場景和測試用例
4、測試環(huán)境:數(shù)據(jù)量大,需要特殊的測試環(huán)境
5裕照、監(jiān)控解決方案:存在有限的解決方案攒发,可以監(jiān)控整個環(huán)境
6、診斷解決方案:需要定制解決方案來深入了解性能瓶頸區(qū)域