一、大数据:

大数据是一个大的数据集合,通过传统的计算技术无法处理。这些数据集的测试需要用各种工具、技术、框架进行处理。大数据涉及数据创建,存储、检索、分析,而且它在数量、多样性、速度都很出色。

二、大数据的测试类型:

验证其数据处理、性能和功能测试是关键

  • 处理:批量、实时、交互
  • 数据质量测试:字段一致性、准确性、重复性、有效性、数据完整性
  • 性能测试

三、大数据的测试步骤

step1:数据阶段验证:

pre-Hadoop阶段,数据预测试阶段

工具:Talend或Datameer

step2:Mapreduce验证

测试每个节点上进行业务逻辑验证,然后运行多个节点后验证他们,确保如下操作的正确性。

  1. 来自方面的数据资源应该被验证,来确保正确的数据被加载进系统;
  2. 将源数据与推送到Hadoop系统中数据进行比较,确保他们匹配;
  3. 验证正确的数据被提取并加载到HDFS正确位置
  4. Map与Reduce进程正常工作;
  5. 在数据上实施数据聚合或隔离规则;
  6. 生成键值对;
  7. 在执行Map和Reduce进程后验证数据。

Step3:输出阶段验证

输出验证过程,生成输出数据文件,同时把文件移到EDW中或者把文件移动到任何其他基于需求的系统中。(一般有开发人员完成,测试需要在有数据调用处看数据回显是否正常)

  1. 检查转换规则被正确应用;
  2. 检查数据完整性和成功的数据加载到目标系统中;
  3. 通过目标数据与HDFS文件系统数据比较检查数据是否损坏。

四、架构测试

性能测试以及故障转移测试服务应该在hadoop中完成

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

五、性能测试

大数据性能测试包括两个主要的行动:数据采集和整个过程

数据采集和整个过程:在这个阶段,测试人员验证快速系统如何消耗来自各种数据源的数据。测试涉及识别队列在给定时间框架内可以处理的不同消息。它还包括如何快速将数据插入到底层数据存储中,例如插入到Mongo和Cassandra数据库中。

数据处理:它涉及验证执行查询或映射缩减作业的速度。它还包括在底层数据存储填充到数据集中时独立测试数据处理。例如,在底层HDFS上运行MapReduce作业
子组件性能:这些系统由多个组件组成,而且必须单独测试每个组件。例如,消息的索引和消费速度有多快,mapreduce作业,查询性能,搜索等

六、性能测试方法

大数据应用性能测试涉及大量结构化和非结构化数据的测试,并且需要特定的测试方法来测试这些海量数据。

性能测试按此顺序执行

性能测试的参数

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

数据存储:数据如何存储在不同的节点中;

  1. 过程从设置要测试性能的大数据群集开始
  2. 确定和设计相应的工作量
  3. 准备个人客户(自定义脚本创建)
  4. 执行测试并分析结果(如果不满足目标,则调整组件并重新执行)
  5. 最佳配置
  • 提交日志:允许增长的提交日志有多大;
  • 并发性:有多少个线程可以执行写入和读取操作;
  • 缓存:调整缓存设置“行缓存”和“键缓存”;
  • 超时:连接超时值,查询超时值等;
  • JVM参数:堆大小,GC收集算法等;
  • 地图降低性能:排序,合并等;
  • 消息队列:消息速率,大小等。

测试环境需求

测试环境需求取决于您正在测试的应用程序的类型。对于大数据测试,测试环境应该包含

  1. 它应该有足够的空间来存储和处理大量的数据;
  2. 它应该有分布式节点和数据的集群;
  3. 它应该有最低的CPU和内存利用率,以保持高性能。

七、大数据测试面临的挑战

自动化

大数据的自动化测试需要具有技术专长的人员。另外,自动化工具不具备处理测试过程中出现的意外问题的能力

虚拟化

这是测试的一个不可缺少的阶段。虚拟机延迟会在实时大数据测试中造成计时问题。在大数据中管理图像也是一件麻烦事。

大数据集

八、性能测试挑战

多种技术组合:每个子组件属于不同的技术,需要单独测试

不可用的特定工具:没有一个工具可以执行端到端的测试。例如,NoSQL可能不适合消息队列

测试脚本:需要高度的脚本来设计测试场景和测试用例

测试环境:数据量大,需要特殊的测试环境

监控解决方案:存在有限的解决方案,可以监控整个环境

诊断解决方案:需要定制解决方案来深入了解性能瓶颈区域

  1. 需要验证更多的数据,并需要更快地完成;
  2. 需要自动化测试工作;
  3. 需要能够跨不同的平台进行测试。

概要

随着数据工程和数据分析技术的不断进步,大数据测试是不可避免的。

大数据处理可以是批处理,实时或交互式处理

测试大数据应用程序的3个阶段是

数据分级验证
“MapReduce”验证
输出验证阶段

架构测试是大数据测试的重要阶段,因为设计不佳的系统可能会导致前所未有的错误和性能下降

大数据的性能测试包括验证

数据吞吐量
数据处理
子组件性能

大数据测试与传统数据测试在数据,基础架构和验证工具方面有很大的不同

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐