Big Data Test: functionality and performance

What is big data?

Large data set is not large data sets using conventional techniques calculation processing. These test data sets with various tools, techniques, and processing framework. Big data involves data creation, storage, retrieval and analysis, the number, diversity and speed are very good. Here you can learn more about big data, Hadoop and the Mapreduce

In this tutorial, we will learn,

Large data test strategy

More extensive testing to verify its data application is the data processing, rather than individual functional testing of software products. When it comes to large data test, performance and functional testing is the key.

In large data test, QA engineers use clusters and other components to support the process of verification success TB level data. It requires a high level of skills to the test, because the process is very fast. The process can be of three types

 
060315_1205_bigdatatest1.png

At the same time, data quality is an important factor in large data testing. Before testing the application, it is necessary to check the quality of the data, and should be considered part of the database test. It relates to examine the various features, such as consistency, accuracy, repeating, consistency, efficiency, data integrity.

Large data verification test step application

The following figure shows a high-level overview of the test phase of big data applications

 
060315_1205_bigdatatest2.png

Large test data can be roughly divided into three steps

Step 1: Verify data segments

The first step in large data test, also known as pre-Hadoop stage involves the process of verification.

  • From various sources (such as RDBMS, blog, social media, etc.) data should be verified to ensure that the correct data is pulled into the system
  • The source data with the data pushed Hadoop system compared to ensure that they match
  • Verify that the correct data is extracted and loaded into the correct position HDFS

Like tool Talend, Datameer, may be used to verify the data segments

Step 2: "MapReduce" Verify

The second step is to verify "MapReduce". At this stage, the business logic testers verify authentication on each node, and then verify that they run in the plurality of nodes, to ensure

  • Map Reduce process is working properly
  • Data aggregation rules implemented in isolation or data
  • 生成键值对
  • 在Map Reduce进程后验证数据

步骤3:输出验证阶段

大数据测试的最终或第三阶段是输出验证过程。生成输出数据文件,并准备根据需要将其移至EDW(企业数据仓库)或任何其他系统。

第三阶段活动包括

  • 检查转换规则是否正确应用
  • 检查数据完整性和成功的数据加载到目标系统中
  • 通过将目标数据与HDFS文件系统数据进行比较来检查没有数据损坏

架构测试
Hadoop处理非常大量的数据,并且资源密集。因此,架构测试对于确保大数据项目的成功至关重要。系统设计不当或设计不当可能导致性能下降,系统可能无法满足要求。至少,性能和故障转移测试服务应在Hadoop环境中完成。

性能测试包括测试作业完成时间,内存利用率,数据吞吐量和类似的系统指标。虽然故障转移测试服务的动机是验证数据处理在数据节点故障的情况下无缝地发生

性能测试

大数据的性能测试包括两个主要方面:

  • 数据获取和吞吐量:在这个阶段,测试人员验证快速系统如何使用来自各种数据源的数据。测试涉及识别队列在给定时间帧中可以处理的不同消息。它还包括如何快速地将数据插入到底层数据存储中,例如插入到Mongo和Cassandra数据库中。
  • 数据处理:它涉及验证执行查询或map reduce作业的速度。它还包括底层数据存储的数据集中填充时隔离测试数据的过程。例如,在底层HDFS上运行Map Reduce作业
  • 子组件性能:这些系统由多个组件组成,必须单独测试这些组件。例如,消息被索引和使用的速度,mapreduce作业,查询性能,搜索等。

性能测试方法

大数据应用程序的性能测试涉及大量结构化和非结构化数据的测试,它需要一种特定的测试方法来测试这样的大量数据。

 
060315_1205_BigDataTest3.png

性能测试按此顺序执行

  1. 对要性能测试的大数据集群的进行设置
  2. 识别和设计相应的工作负载
  3. 准备单个客户端(创建自定义脚本)
  4. 执行测试并分析结果(如果不满足目标,则调整组件并重新执行)
  5. 最佳配置

性能测试的参数

要验证性能测试的各种参数是

  • 数据存储:数据如何存储在不同的节点中
  • 提交日志:提交日志允许增长的大小
  • 并发性:有多少线程可以执行写和读操作
  • 缓存:调整缓存设置“行缓存”和“密钥缓存”。
  • 超时:连接超时,查询超时等的值。
  • 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
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Guess you like

Origin www.cnblogs.com/ceshi2016/p/12166946.html