什么是大数据?.......................................................................................................................3
大数据测试类型.......................................................................................................................3
大数据测试步骤.......................................................................................................................3
Step 1:数据阶段验证.....................................................................................................3
Step 2:"MapReduce"验证..............................................................................................4
Step 3:输出阶段验证.....................................................................................................4
架构测试...................................................................................................................................4
性能测试...................................................................................................................................4
性能测试方法...........................................................................................................................4
性能测试参数化.......................................................................................................................5
大数据测试 VS 传统数据库测试...........................................................................................5
测试环境需求...........................................................................................................................6
大数据场景使用的工具...........................................................................................................6
大数据测试挑战.......................................................................................................................6
自动化...............................................................................................................................6
虚拟化...............................................................................................................................6
大数据集...........................................................................................................................6
大数据性能测试挑战...............................................................................................................6
大数据测试总结.......................................................................................................................7
大数据是一个大的数据集合,通过传统的计算技术无法进行处理。这些数据集的测试需
要使用各种工具、技术和框架进行处理。大数据涉及数据创建、存储、检索、分析,而且它
在数量、多样性、速度方法都很出色。
测试大数据应用程序更多的是验证其数据处理,而不是测试软件产品的个别功能。当涉
及到大数据测试时,性能和功能测试是关键。
在大数据测试中,QA 工程师使用集群和其他组件来验证对 TB 级数据的成功处理。因为
处理非常快,所以它需要高水平的测试技能。处理可以是三种类型:批量、实时、交互。
与此同时,数据质量也是大数据测试的一个重要因素。在测试应用程序之前,有必要检
查数据的质量,并将其视为数据库测试的一部分。它涉及检查各种字段,如一致性,准确性,
重复,一致性,有效性,数据完整性等。
下图给出了测试大数据应用程序阶段的高级概述:
大数据测试实现被分成三个步。
大数据测试的第一步,也称作 pre-hadoop 阶段该过程包括如下验证:
来自各方面的数据资源应该被验证,来确保正确的数据被加载进系统
将源数据与推送到 Hadoop 系统中的数据进行比较,以确保它们匹配
验证正确的数据被提取并被加载到 HDFS 正确的位置
该阶段可以使用工具 Talend 或 Datameer,进行数据阶段验证。Step 2:"MapReduce"验证
大数据测试的第二步是 MapReduce 的验证。在这个阶段,测试者在每个节点上进行业
务逻辑验证,然后在运行多个节点后验证它们,确保如下操作的正确性:
Map 与 Reduce 进程正常工作
在数据上实施数据聚合或隔离规则
生成键值对
在执行 Map 和 Reduce 进程后验证数据
大数据测试的最后或第三阶段是输出验证过程。生成输出数据文件,同时把文件移到一
个 EDW(Enterprise Data Warehouse:企业数据仓库)中或着把文件移动到任何其他基于需求
的系统中。在第三阶段的活动包括:
检查转换(Transformation)规则被正确应用
检查数据完整性和成功的数据加载到目标系统中
通过将目标数据与 HDFS 文件系统数据进行比较来检查没有数据损坏
Hadoop 处理数据量非常大且资源密集的数据。因此,架构测试对于确保大数据项目的
成功至关重要。不好活不当的系统设计可能导致性能下降,而且系统还可能无法满足要求。
至少,性能和故障转移测试服务应在 Hadoop 环境中完成。
性能测试包括测试作业完成时间、内存利用率、数据吞吐量和类似的系统指标。虽然
故障转移测试服务的动机是验证数据的无缝衔接,以防数据节点出现故障时,确保数据能
正常处理。
大数据的性能测试包括两个主要的操作:
数据摄取和吞吐量:在这个阶段,测试人员验证系统使用来自各种数据源的数据
有多快?测试涉及队列在给定时间内处理不同标识的消息。它还包括如何快速地将
数据插入到底层数据存储中,例如插入到 Mongo 和 Cassandra 数据库中的速率。
数据处理: 它涉及验证执行查询或 Map Reduce 作业的速度。它还包括当底层数据
存储填充在数据集中时,测试使用隔离规则方式处理数据。例如,在底层 HDFS 上
运行 Map Reduce 作业。
子组件性能:这些系统由多个组件组成,必须单独测试这些组件。例如,消息被索
引和使用的速度、mapreduce 作业、执行查询、搜索等。
大数据应用性能测试涉及大容量结构化数据测试和大容量非结构化数据测试,这些测试
需要特定的测试方法来测试如此大的数据量。性能测试方法执行流程如下:
性能测试执行步骤:
(1) 对性能测试的大数据集群进行设置
(2) 标识和设计相关的工作量
(3) 准备单个客服端(创建用户脚本)
(4) 执行测试并分析结果(如果目的没有达到,这是需要调整组件重新执行)
(5) 优化配置
要验证性能测试的各种参数:
数据存储(Data Storage):数据如何存储在不同的节点中
提交日志(Commit log):允许提交日志增长的大小
并发性(Concurrency):有多少线程可以执行写和读操作
缓存(Caching):调整缓存设置"row cache"和"key cache"。
超时(Timeouts):连接超时,查询超时等的值。
JVM 参数(JVM Parameters):堆大小(heap size),GC 收集算法等。
Map Reduce 性能:排序(sort),合并(merage)等
消息队列(Message queue):消息速率(Message rate),大小等
测试环境需求取决于要测试的应用程序的类型。对于大数据测试,测试环境应包括:
它应该有足够的空间用于存储和处理大量的数据
它应该具有分布式节点和数据的集群
它应该具有最低的 CPU 和内存利用率,以保持性能高
大数据场景使用的工具
自动化
大数据的自动化测试需要有技术专长的人员。此外,自动化工具未配备处理测试期间出现的
意外问题
虚拟化
它是测试的整体阶段之一。虚拟机延迟会在实时大数据测试中产生时序问题。在大数据中管
理图像也是一个麻烦。
大数据集
需要验证更多的数据,需要更快的速度;需要自动化测试工作;需要能够跨不同平台进行测
试。
多样化的技术:每个子组件属于不同的技术,需要孤立测试
特定工具的不可用性:没有单个工具可以执行端到端测试。例如,NoSQL 可能不适合消
息队列
测试脚本:需要为测试场景和测试用例设计高水的脚
测试环境:由于数据量大,需要特殊的测试环境
监控解决方案:存在可监控整个环境的有限解决方案
诊断解决方案:需要定制解决方案来开发性能瓶颈区域
随着数据工程和数据分析的进一步发展,大数据测试是不可避免的。大数据处理可以是
批处理、实时或交互。
测试大数据应用的 3 个阶段:数据分段验证、“MapReduce”验证、输出验证阶段。
架构测试是大数据测试的重要阶段,因为设计不当可能会导致前所未有的错误和性能下
降。
大数据的性能测试包括验证:数据吞吐量、数据处理、子组件性能。
大数据测试与传统数据测试在数据,基础设施和验证工具方面非常不同。
大数据测试的挑战包括虚拟化,测试自动化和处理大型数据集。大数据应用程序的性能
测试也是一个问题。