大数据是不能使用传统计算技术处理的大型数据集的集合。这些数据集的测试涉及各种工具,技术和框架。大数据涉及数据创建,存储,检索和分析,数量,多样性和速度都要求非常高。
测试策略
更多的是验证其数据处理而不是单个功能,性能和功能测试*是关键都很重要。
使用集群和其他支持组件来验证TB级数据的处理。它需要高水平的测试技能,因为处理非常快。处理有三种类型
数据质量也是大数据测试的重要因素,检查数据的质量是重要环节,需要检查一致性、有效性,重复,完整性等。
测试步骤
数据分段验证
也称为pre-Hadoop阶段,涉及处理验证。
- 各种来源(如RDBMS,博客,社交媒体等)的数据应进行验证,以确保正确的数据pull到系统
- 比较源数据与推送到Hadoop系统中的数据
- 验证数据正确提取并加载到正确的HDFS位置
像工具Talend,Datameer,可用于数据分段的验证
MapReduce验证
验证每个节点上的业务逻辑验证,然后在多个节点运行后验证它们,确保
- Map Reduce进程正常工作
- 数据聚合或隔离规则
- 生成键值对
- 验证Map Reduce处理后数据
输出验证阶段
生成输出数据文件,并准备根据需要将其移至EDW(企业数据仓库)或其他系统。
- 转换规则正确应用
- 数据完整并成功加载到目标系统
- 将目标数据与HDFS文件系统数据进行比较以确认没有数据损坏
架构测试
Hadoop处理非常大量的数据,资源密集。架构测试对于确保大数据项目的成功至关重要。系统设计不当会导致性能下降,系统可能无法满足要求。至少,需要测试性能和Failover 。
性能测试包括测试作业完成时间,内存利用率,数据吞吐量和类似的系统指标。Failover 测试验证数据处理在节点故障的情况下无缝转移。
性能测试
大数据的性能测试包括两个主要方面:
- **数据获取和吞吐量:包含获取数据和插入数据。例如插入数据到Mongo和Cassandra数据库中。
- 数据处理:查询或map reduce作业的速度。还包括数据隔离。例如,在底层HDFS上运行Map Reduce作业
- 子组件性能:如,消息索引和使用的速度,mapreduce作业,查询性能,搜索等。
性能测试方法
大数据应用程序的性能测试涉及大量结构化和非结构化数据的测试,它需要特别的测试方法。
- 对要性能测试的大数据集群的进行设置
- 识别和设计相应的工作负载
- 准备单个客户端(创建自定义脚本)
- 执行测试并分析结果(如果不满足目标,则调整组件并重新执行)
- 优化配置
性能测试的参数
- 数据存储:数据如何存储在不同的节点中
- 提交日志:提交日志允许增长的大小
- 并发性:有多少线程可以执行写和读操作
- 缓存:调整缓存设置“row缓存”和“key缓存”。
- 超时:连接超时,查询超时等。
- JVM参数:堆大小,GC收集算法等。
- Map reduce性能:排序,合并等
- 消息队列:消息速率,大小等
参考资料
- python测试开发项目实战-目录
- python工具书籍下载-持续更新
- python 3.7极速入门教程 - 目录
- 讨论qq群630011153 144081101
- 原文地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
- https://www.guru99.com/big-data-testing-functional-performance.html
测试环境需求
- 足够的空间用于存储和处理大量的数据
- 分布式节点和数据的集群
- 最小的CPU和内存利用率
大数据测试和传统数据库测试比较
属性 | 传统数据库测试 | 大数据测试 |
---|---|---|
数据 | 使用结构化数据 | 同时处理结构化数据和非结构化数据 |
测试方法定义明确且成熟 | 探索中 | |
手工抽样或自动化完全验证 | 抽样的挑战很大 | |
基础设施 | 需要特殊的测试环境,因为文件大小有限 | 需要特殊的测试环境,因为大的数据和文件(HDFS) |
验证工具 | Excel的宏、基于UI的自动化工具、Python等 | 从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 |
大数据测试中的挑战
-
自动化
技术难度高,异常难处理。
-
虚拟化
虚拟机的延时及镜像管理。 -
大数据集
- 大量数据集
- 自动化测试
- 跨平台
性能测试的挑战
- 技术复杂多样
- 多种工具
- 脚本来设计测试场景和测试用例
- 特殊的测试环境
- 监控复杂
- 开发定制解决方案定位性能瓶颈
作者:python测试开发_AI命理
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。