.大数据测试方法和工具梳理1什么是大数据大数据是一个大的数据集合,通过传统的计算技术无法进行处理。这些数据集的测试需要使用各种工具、技术和框架进行处理。大数据涉及数据创建、存储、检索、分析,而且它在数量、多样性、速度方法都很出色。2大数据测试类型测试大数据应用程序更多的是验证其数据处理,而不是测试软件产品的个别功能。当涉及到大数据测试时,性能和功能测试是关键。在大数据测试中,QA工程师使用集群和其他组件来验证对TB级数据的成功处理。因为处理非常快,所以它需要高水平的测试技能。处理可以是三种类型:批量、实时、交互。与此同时,数据质量也是大数据测试的一个重要因素。在测试应用程序之前,有必要检查数据的质量,并将其视为数据库测试的一部分。它涉及检查各种字段,如一致性,准确性,重复,一致性,有效性,数据完整性等。3大数据测试实现被分成三个步3.1步骤1:数据分段验证大数据测试的第一步,也称为pre-Hadoop阶段涉及过程验证。.来自各种来源(如RDBMS,博客,社交媒体等)的数据应进行验证,以确保正确的数据被拉入系统将源数据与推送到Hadoop系统中的数据进行比较,以确保它们匹配验证正确的数据被提取并加载到正确的HDFS位置该阶段可以使用工具Talend或Datameer,进行数据阶段验证。3.2步骤2:“MapReduce”验证大数据测试的第二步是MapReduce的验证。在这个阶段,测试者在每个节点上进行业务逻辑验证,然后在运行多个节点后验证它们,确保如下操作的正确性:MapReduce进程正常工作在数据上实现数据聚合或隔离规则生成键值对在MapReduce进程后验证数据3.3步骤3:输出验证阶段大数据测试的最后或第三阶段是输出验证过程。生成输出数据文件,同时把文件移到一个EDW(EnterpriseDataWarehouse:企业数据仓库)中或着把文件移动到任何其他基于需求的系统中。在第三阶段的活动包括:检查转换(Transformation)规则被正确应用.检查数据完整性和成功的数据加载到目标系统中通过将目标数据与HDFS文件系统数据进行比较来检查没有数据损坏4架构测试Hadoop处理非常大量的数据,并且资源密集。因此,架构测试对于确保大数据项目的成功至关重要。系统设计不当或设计不当可能导致性能下降,系统可能无法满足要求。至少,性能和故障转移测试服务应在Hadoop环境中完成。性能测试包括测试作业完成时间,内存利用率,数据吞吐量和类似的系统指标。虽然故障转移测试服务的动机是验证数据处理在数据节点故障的情况下无缝地发生5性能测试大数据的性能测试包括两个主要方面:数据获取和吞吐量:在这个阶段,测试人员验证快速系统如何使用来自各种数据源的数据。测试涉及识别队列在给定时间帧中可以处理的不同消息。它还包括如何快速地将数据插入到底层数据存储中,例如插入到Mongo和Cassandra数据库中。数据处理:它涉及验证执行查询或mapreduce作业的速度。它还包括底层数据存储的数据集中填充时隔离测试数据的过程。例如,在底层HDFS上运行MapReduce作业.子组件性能:这些系统由多个组件组成,必须单独测试这些组件。例如,消息被索引和使用的速度,mapreduce作业,查询性能,搜索等。5.1性能测试方法大数据应用程序的性能测试涉及大量结构化和非结构化数据的测试,它需要一种特定的测试方法来测试这样的大量数据。性能测试按此顺序执行1.对要性能测试的大数据集群的进行设置2.识别和设计相应的工作负载3.准备单个客户端(创建自定义脚本)4.执行测试并分析结果(如果不满足目标,则调整组件并重新执行)5.最佳配置5.2性能测试的参数要验证性能测试的各种参数是数据存储:数据如何存储在不同的节点中提交日志:提交日志允许增长的大小并发性:有多少线程可以执行写和读操作缓存:调整缓存设置“行缓存”和“密钥缓存”。超时:连接超时,查询超时等的值。.JVM参数:堆大小,GC收集算法等。降低性能:排序,合并等消息队列:消息速率,大小等6测试环境需求测试环境需求取决于要测试的应用程序的类型。对于大数据测试,测试环境应包括它应该有足够的空间用于存储和处理大量的数据它应该具有分布式节点和数据的集群它应该具有最小的CPU和内存利用率,以保持高性能7大数据测试和传统数据库测试.8大数据场景中使用的工具8.1针对大数据单个组件测试工具GridMix针对Hadoop集群的测试基准,它具备评测大规模数据处理系统所需的各个功能模块,包括:产生数据,生成并提交作业,统计作业完成时间等。TeraSort针对文本数据的排序。1TB排序通常用于衡量分布式数据处理框架的数据处理能力。Terasort是hadoop中的的一个排序作业,在2008年,Hadoop在1TB排序基准评估中赢得第一名,耗时209秒。YCSB是Yahoo开发的一个专门用来对新一代数据库进行基准测试的工具。全名是Yahoo!CloudServingBenchmark。他们开发这个工具的目的是希望有一个标准的工具用来衡量不同数据库的性能。YCSB做了很多优化来提高客户端性能,例如在数据类型上用了最原始的比特数组以减少数据对象本身创建转换所需的时间等。.Filebench是一款文件系统性能的自动化测试工具,它通过快速模拟真实应用服务器的负载来测试文件系统的性能。它不仅可以仿真文件系统微操作(如copyfiles,createfiles,randomread,randomwrite),而且可以仿真复杂的应用程序(如varmail,fileserver,oltp,dss,webserver,webproxy)。Filebench比较适合用来测试文件服务器性能,但同时也是一款负载自动生成工具,也可用于文件系统的性能。8.2综合类测试工具,覆盖大数据平台多个功能组件Hibench是用来在速度方面评估不同的大数据框架的,它包括一系列的Hadoop,Spark,streaming工作负载,包括sort,wordcount,TeraSort,Sleep,SQL,PageRank,Nutchindexing,Bayes,Kmeans,NWeightandenhancedDFSIO,等。同样也为parkStreaming,Flink,StormandGearpump提供工作负载。BigDataBench是中科院计算所提出的大数据测试工具,覆盖了结构数据、半结构数据和非结构数据,其负载模拟了搜索引擎、社交网络和电子商务等业务模型。8.3具体应用领域端到端大数据测试工具BigBench是基于TPC-DS开发的端到端测试工具,面向零售业务,模拟电子商务的整个流程,主要测试MapReduce和并行DBMS。.9大数据测试中的挑战9.1自动化大数据的自动化测试需要有技术专长的人员。此外,自动化工具不能处理测试期间出现的意外问题9.2虚拟化它是测试的必需阶段之一。虚拟机延迟会在实时大数据测试中产生时序问题。还有在大数据中管理图像是一个麻烦。9.3大数据集需要验证更多的数据,需要做的更快需要自动化测试工作需要能够跨不同平台进行测试9.4性能测试的挑战多样化的技术:每个子组件属于不同的技术,需要独立测试特定工具的不可用性:没有单个工具可以执行端到端测试。例如,NoSQL可能不适合消息队列测试脚本:需要高度的脚本来设计测试场景和测试用例测试环境:由于数据量大,需要特殊的测试环境监控解决方案:可监控整个环境的解决方案有限诊断解决方案:需要开发定制解决方案下钻到性能瓶颈区域万维测试部大数据测试研究小组.成员:王成飞、王亮、袁军才、何鹏林2017年7月31号