• 15
  • 15
分享
  • 大数据测试:功能和性能——软件测试圈
  • 恬恬圈 2021-11-04 10:47:10 字数 2898 阅读 1861 收藏 15

什么是大数据?

大数据是不能使用传统计算技术处理的大型数据集的集合。这些数据集的测试涉及各种工具,技术和框架来处理。大数据涉及数据创建,存储,检索和分析,在数量,多样性和速度方面都非常出色。您可以在这里了解有关大数据,Hadoop和Mapreduce的更多信息,在本教程中,我们将学习:

  • 大数据测试策略

  • 验证大数据应用程序的测试步骤

  • 架构测试

  • 性能测试

  • 测试环境需求

  • 大数据测试 传统数据库测试

  • 大数据场景中使用的工具

  • 大数据测试中的挑战

测试大数据应用程序更多的是验证其数据处理,而不是测试软件产品的个别功能。当涉及到大数据测试时,性能和功能测试是关键。

在大数据测试中,QA工程师使用集群和其他支持组件来验证TB级数据的成功过程。它需要高水平的测试技能,因为过程非常快。过程可以是三种类型

1.png

与此同时,数据质量也是大数据测试的一个重要因素。在测试应用程序之前,有必要检查数据的质量,并应将其视为数据库测试的一部分。它涉及检查各种特征,如一致性,准确性,重复,一致性,有效性,数据完整性等。

下图给出了测试大数据应用程序阶段的高级概述

1.jpg

大数据测试大致可分为三个步骤

步骤1:数据分段验证

大数据测试的第一步,也称为pre-Hadoop阶段涉及过程验证。

  • 来自各种来源(如RDBMS,博客,社交媒体等)的数据应进行验证,以确保正确的数据被拉入系统;

  • 将源数据与推送到Hadoop系统中的数据进行比较,以确保它们匹配;

  • 验证正确的数据被提取并加载到正确的HDFS位置。

像工具Talend,Datameer,可用于数据分段的验证

步骤2:“MapReduce”验证

第二步是验证“MapReduce”。在这个阶段,测试人员验证每个节点上的业务逻辑验证,然后在多个节点运行后验证它们,确保

  • Map Reduce进程正常工作

  • 在数据上实现数据聚合或隔离规则

  • 生成键值对

  • 在Map Reduce进程后验证数据

步骤3:输出验证阶段

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

第三阶段活动包括

  • 检查转换规则是否正确应用;

  • 检查数据完整性和成功的数据加载到目标系统中;

  • 通过将目标数据与HDFS文件系统数据进行比较来检查没有数据损坏。

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

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

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

  • 数据获取和吞吐量:在这个阶段,测试人员验证快速系统如何使用来自各种数据源的数据。测试涉及识别队列在给定时间帧中可以处理的不同消息。它还包括如何快速地将数据插入到底层数据存储中,例如插入到Mongo和Cassandra数据库中。

  • 数据处理:它涉及验证执行查询或map reduce作业的速度。它还包括底层数据存储的数据集中填充时隔离测试数据的过程。例如,在底层HDFS上运行Map Reduce作业

  • 子组件性能:这些系统由多个组件组成,必须单独测试这些组件。例如,消息被索引和使用的速度,mapreduce作业,查询性能,搜索等。

性能测试方法

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

1.jpg

性能测试按此顺序执行

  1. 对要性能测试的大数据集群的进行设置

  2. 识别和设计相应的工作负载

  3. 准备单个客户端(创建自定义脚本)

  4. 执行测试并分析结果(如果不满足目标,则调整组件并重新执行)

  5. 最佳配置

性能测试的参数

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

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

  • 提交日志:提交日志允许增长的大小

  • 并发性:有多少线程可以执行写和读操作

  • 缓存:调整缓存设置“行缓存”和“密钥缓存”。

  • 超时:连接超时,查询超时等的值。

  • JVM参数:堆大小,GC收集算法等。

  • 降低性能:排序,合并等

  • 消息队列:消息速率,大小等

测试环境需求取决于要测试的应用程序的类型。对于大数据测试,测试环境应包括

  • 它应该有足够的空间用于存储和处理大量的数据

  • 它应该具有分布式节点和数据的集群

  • 它应该具有最小的CPU和内存利用率,以保持高性能

属性传统数据库测试大数据测试
数据使用结构化数据同时处理结构化数据和非结构化数据
测试方法定义明确和time-tested测试方法需要集中的研发工作
测试人员可以选择“自动化工具”手动执行“抽样”策略或“完全验证”策略大数据中的“抽样”策略是一个挑战
基础设施它不需要特殊的测试环境,因为文件大小有限它需要特殊的测试环境,因为大的数据大小和文件(HDFS)
验证工具测试程序使用基于Excel的宏或基于UI的自动化工具没有定义的工具,范围从广泛从编程工具,如MapReduce到HIVEQL
测试工具可以使用基本的操作知识和较少的培训它需要一组特定的技能和培训来操作测试工具。此外,工具处于新生阶段,加班也许会带来新的功能。
大数据集群大数据工具
NoSQLCouchDB,MongoDB,Cassandra,Redis,ZooKeeper,Hbase
MapReduceHadoop,Hive,Pig,Cascading,Oozie,Kafka,S4,MapR,Flume
存储S3,HDFS(Hadoop分布式文件系统)
服务器Elastic,Heroku,Google App Engine,EC2
处理R,Yahoo!Pipes,Mechanical Turk,BigSheets,Datameer
  • 自动化

大数据的自动化测试需要有技术专长的人员。此外,自动化工具不能处理测试期间出现的意外问题

  • 虚拟化

它是测试的必需阶段之一。虚拟机延迟会在实时大数据测试中产生时序问题。还有在大数据中管理图像是一个麻烦。

  • 大数据集

  1. 需要验证更多的数据,需要做的更快

  2. 需要自动化测试工作

  3. 需要能够跨不同平台进行测试

性能测试的挑战

  • 多样化的技术:每个子组件属于不同的技术,需要独立测试

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

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

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

  • 监控解决方案:可监控整个环境的解决方案有限

  • 诊断解决方案:需要开发定制解决方案下钻到性能瓶颈区域

概要

  1. 随着数据工程和数据分析的进一步发展,大数据测试是不可避免的。

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

  3. 测试大数据应用的3个阶段

  • 数据分段验证

  • “MapReduce”验证

  • 输出验证阶段

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

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

  • 数据吞吐量

  • 数据处理

  • 子组件性能

  1. 大数据测试与传统数据测试在数据,基础设施和验证工具方面非常不同

  2. 大数据测试的挑战包括虚拟化,测试自动化和处理大型数据集。大数据应用程序的性能测试也是一个问题。


作者:杰克家的猫

链接:https://www.jianshu.com/p/397eb4bb4ea

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、前提开启模拟器(我的是直接用的Android Studio的模拟器,所以在开启模拟器之前我还要开启Android Studio)打开appium服务器打开pycharm打开cmd二、上实战打开模拟器在cmd中输入代码:adb shell dumpsys window | findstr mCurrentFocus可查询到包名和界面名(界面名可以省略包名,但是我害怕漏了那个点,一般都不省略)比如说我的包名:com.google.android.apps.messaging界面名.conversation.screen.Convers...
            12 12 1784
            分享
          •   随着国产商用密码算法领域的发展,国密协议在各行业的应用也愈发广泛。国密算法在TLS协议中的应用是目前国密算法普及度最高的场景,目前市面已有多种国密浏览器,支持国密算法的TLS协议。国密SSL协议以SM3算法作为哈希算法,SM2算法作为密钥协商以及加解密算法,具备极高的安全性。本文主要利用开源的gmssl,构建国密CA,签发国密证书,以及使用签发的证书进行简单的国密SSL通信测试。  在进行证书签发之前,首先准备配置好gmssl的配置文件,由于gmssl是openssl的一个国产化的分支,因此配置文件与openssl的配置规则基本相同。图1为本文使用的配置文件示例,主要是指定了证书及密钥生成...
            12 12 2021
            分享
          • 一、Jmeter的关联用到了哪些方法去实现?接口的响应结果通常为html和Json格式的数据,主要会用到正则提取器、Json提取器,还有Xpath器以及边界值提取器,还有beanshell来进行数据的提取,而对于html这种响应结果我们通常会用正则或者是Xpath来进行数据的提取;对于Json格式的数据通常会用Json提取器。二、jmeter参数化有哪几种方法?第一种,可以通过函数助手来实现参数化,比如说像_RandomString这种随机函数;第二种:通过CSV读取文档数据实现参数化;第三种:通过配置元件、用户定义的变量来实现参数化;第四种:通过前置处理器中的用户参数也可以实现参数化。三、用...
            1 2 2911
            分享
          •   技术背景  需要有一定的python基础,代码阅读能力;以及自动化测试思想。  去到任何一家企业,如果少不了自动化,必然会要搭建一套自动化测试框架!  那么问题随之而来,这框架如何选择呢?  如果是代码能力强,可以自行开发与设计,那要是不呢?KPI摆在那,总不能说不行吧!  不行,代表着真的不行,在测试职业领域真的没有什么测试的不行!作者回顾以往工作经历,测试从来没有说过不字。  不会安全测试,但总得会几样安全型测试工具吧,不济也该知道安全测试的目的和原理吧。  不会性能测试,但总得会使用工具吧,理解性能测试指标和知道如何设计性能测试场景吧。  不会单元测试,不会自动化测试?不会渗透测试?...
            0 0 1050
            分享
          •   据支付宝官微消息,2024 年 3 月份,境外宾客通过支付宝在国内的累计交易金额同比去年 3 月份增长近 10 倍,交易笔数同比增长近 8 倍,活跃用户数同比增长近 6 倍。  截至 2024 年 3 月,入境后使用支付宝 App 绑定国际银行卡的外国游客来自近 200 个国家和地区;其中,韩国、马来西亚、新加坡、美国、日本、泰国、德国、澳大利亚、英国、印度尼西亚是十大来源国。  据IT之家此前报道,中国人民银行官微近期发布了中英文双语的《外籍来华人员支付指南》(Guide to Payment Services in China),明确外籍来华人员可选择移动支付、银行卡、现金等一系列支付...
            0 0 821
            分享
      • 51testing软件测试圈微信