大數據測試

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 可能不適合消息隊列。

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

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

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

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10591.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10591.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10591.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Foxmail使用經驗總結

本篇博客將詳盡講解如何利用Foxmail進行高效的郵件管理,以及一些實用的使用技巧,讓郵件管理變得更為高效和有序。 1. 賬戶設置與管理 多賬戶整合:Foxmail支持多個郵件賬戶同時管理,用戶可以將個人和工作郵箱整合在同一個界面&am…

實戰中使用 QEMU 進行內網穿透

前言 閱讀 https://xz.aliyun.com/t/14052 《使用 QEMU 進行內網穿透?》 https://securelist.com/network-tunneling-with-qemu/111803/ 《Network tunneling with… QEMU?》 我將此項技術應用到實戰中,取得不錯的效果,但是也遇到很多坑&am…

機器學習算法應用——樸素貝葉斯分類器

樸素貝葉斯分類器 樸素貝葉斯分類器(Naive Bayes Classifier)是一種基于貝葉斯定理和特征條件獨立假設的分類方法。它適用于分類任務,特別是文本分類、垃圾郵件識別等領域。 原理 樸素貝葉斯分類器基于以下兩個主要假設: 特征條…

JS_ES6(1)

作用域鏈: 作用域鏈是底層變量查找的機制:當函數執行時,優先查找當前函數作用域中有無需要用到的變量,如果找不到,逐級查找父級,直到全局 > 嵌套關系形成作用域鏈,同一作用域鏈從小到大查找…

taro3兼容支付寶/微信小程序的自定義拖拽排序組件

描述:列表可以完成拖拽排序 此組件是根據支付寶原生文檔改編成taro-vue3的形式,只保留了拖拽的部分,其他功能都去除了,測試下來可以兼容支付寶和微信小程序。 支付寶原生文檔: https://opendocs.alipay.com/support/…

BGP(border gateway protocol)邊界網關協議初識篇

BGP它是一種路徑矢量協議,用于決定數據包在互聯網中的最佳路徑。 1、工作原理: 自治系統(AS)間路由: BGP主要用于連接不同自治系統之間的路由器,其中每個自治系統(AS)代表一組具有共同路由的網…

編譯 fdk-aac

文章目錄 關于 fdk-aac編譯 fdk-aac在 FFMpeg 編譯中啟用 關于 fdk-aac A standalone library of the Fraunhofer FDK AAC code from Android. github : https://github.com/mstorsjo/fdk-aac代碼托管 : https://sourceforge.net/projects/opencore-am…

最新巨量X-Bogus、_signature參數逆向分析與算法還原

文章目錄 1. 寫在前面2. 接口分析3. 斷點分析4. 扣代碼補環境5. 數據解密 【🏠作者主頁】:吳秋霖 【💼作者介紹】:擅長爬蟲與JS加密逆向分析!Python領域優質創作者、CSDN博客專家、阿里云博客專家、華為云享專家。一路…

# 從淺入深 學習 SpringCloud 微服務架構(十六)

從淺入深 學習 SpringCloud 微服務架構(十六) 一、SpringCloudStream:自定義消息通道 1、在子工程 stream_product (子模塊)中,創建 自定義的消息通道類 MyProcessor.java /*** spring_cloud_demo\stream_product…

JavaEE概述 + Maven

文章目錄 一、JavaEE 概述二、工具 --- Maven2.1 Maven功能 倉庫 坐標2.2 Maven之項目構建2.3 Maven之依賴管理 三、插件 --- Maven Helper 一、JavaEE 概述 Java SE、JavaEE: Java SE:指Java標準版,適用于各行各業,主要是Java…

【負載均衡式在線OJ項目day5】OJ服務模塊概要

前言 經過四天的努力已經完成了編譯運行這個大模塊,今天將要進入OJ服務模塊設計,該模塊的本質就是建立一個小型網站 一.功能 為用戶提供題目列表頁面為用戶提供網站首頁(用題目列表充當首頁)為用戶提供指定題目的編輯頁面為用戶提供提交代碼判題功能&a…

FFmpeg常用API與示例(二)—— 解封裝與轉封裝

封裝層 封裝格式(container format)可以看作是編碼流(音頻流、視頻流等)數據的一層外殼,將編碼后的數據存儲于此封裝格式的文件之內。 封裝又稱容器,容器的稱法更為形象,所謂容器,就是存放內容的器具,飲料是內容&…

【QT學習】補充:qt使用已經存在的類

1.右鍵項目--》添加現有文件 注意:不是添加新文件!!! 2.添加配置

掌握Android Fragment開發之魂:Fragment的深度解析(上)

Fragment是Android開發中用于構建動態和靈活界面的基石。它不僅提升了應用的模塊化程度,還增強了用戶界面的動態性和交互性,允許開發者將應用界面劃分為多個獨立、可重用的部分,每個部分都可以獨立于其他部分進行操作。本文將從以下幾個方面深…

信息系統項目管理師0102:可行性研究的內容(7項目立項管理—7.2項目可行性研究—7.2.1可行性研究的內容)

點擊查看專欄目錄 文章目錄 7.2項目可行性研究7.2.1可行性研究的內容1.技術可行性分析2.經濟可行性分析3.社會效益可行性分析4.運行環境可行性分析5.其他方面的可行性分析記憶要點總結7.2項目可行性研究 可行性研究是在項目建議書被批準后,從技術、經濟、社會和人員等方面的條…

OpenWrt項目UCI配置介紹

UCI(Unified Configuration Interface)是 OpenWrt 項目中使用的一種配置管理系統。它旨在為嵌入式設備提供一個統一且易于理解的配置接口。UCI 主要用于簡化 OpenWrt 系統的各種配置過程,使得管理網絡、服務和其他系統參數變得更加方便。 1 …

String的substring()方法導致的內存泄露問題

JDK 6的實現 String(int offset, int count, char value[]) {this.value value;this.offset offset;this.count count; }public String substring(int beginIndex, int endIndex) {//check boundaryreturn new String(offset beginIndex, endIndex - beginIndex, value);…

r語言數據分析案例-北京市氣溫預測分析與研究

一、選題背景 近年來,人類大量燃燒煤炭、天然氣等含碳燃料導致溫室氣 體過度排放,大量溫室氣體強烈吸收地面輻射中的紅外線,造 成溫室效應不斷累積,使得地球溫度上升,造成全球氣候變暖。 氣象溫度的預測一直以來都是…

[算法][差分][延遲相差][leetcode]2960. 統計已測試設備

題目地址: https://leetcode.cn/problems/count-tested-devices-after-test-operations/description/ 解法一:暴力解法 class Solution {public int countTestedDevices(int[] batteryPercentages) {//特殊條件判斷if(null batteryPercentages || ba…

JavaScript DOM 對元素進行的操作

DOM(Document Object Model)是一種用于訪問和操作HTML和XML文檔的編程接口。JavaScript通過DOM提供的方法和屬性可以對網頁的元素進行各種操作,比如修改元素的內容、樣式、屬性等。 下面是一些常見的對DOM元素的操作以及相應的代碼示例&…