如何对大数据应用进行性能测试

本文涉及的产品
性能测试 PTS,5000VUM额度
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 如何对大数据应用进行性能测试

大家好,我是阿萨。今天聊一个大数据的话题。

当涉及到测试大数据应用时,有很多东西需要考虑,并有可能被淹没在其中。本文让测试人员简单轻松上手。

数据质量是软件测试过程中最具挑战性,但也是最重要的要素之一。当涉及到测试大数据时,数据越大,挑战就越大。

随着大数据测试对企业应用质量变得更加不可或缺,测试人员必须确保数据被顺利收集。同样,支持大数据的技术也变得更加重要,包括廉价的存储、不同类型的数据库和强大的--且随时可用的--计算。

让我们研究一下大数据应用的性能测试如何在测试人员的日常工作中发挥重要作用。


一. 什么是大数据?


一般来说,大数据是指超过传统数据库内存能力的数据。此外,大数据通常涉及收集关于客户、交易、网站访问、网络性能等的大量不同信息。企业必须存储所有这些数据--也许是在很长的时间内。

然而,大数据不仅仅是规模。大数据最重要的方面可以细分为六个V。

  • 体积:庞大数量的数据。
  • 速度:系统创建和传输数据的速度。
  • 种类:有多少不同类型的数据。
  • 真实性:数据的准确性和质量。
  • 可变性:数据流如何变化和经常变化。
  • 价值:对企业有益的数据。

二、大数据和业务


大数据满足了关键的业务需求并产生了价值,因为它为企业提供了关于其业务趋势、客户和竞争对手的关键信息。数据能够实现分析--通常以统计学术语表达结果--如趋势、可能性或分布;即,企业的决策者可能会发现有用的统计数据。相对于数据查询,大数据应用都是关于分析的。

大数据通常是非结构化的,不适合用有组织的列和行来定义数据模型。数据可以以音频和视觉的形式出现,如电话、即时信息、语音邮件、图片、视频、PDF、地理空间数据和幻灯片分享。数据也可以采取社交媒体帖子的形式。一批大数据的格式和来源可能需要特别的QA考虑。例如,为了测试从社交媒体收集的大数据,测试人员可能需要检查每个单独的社交媒体渠道,以确保显示的广告与用户购买行为相对应。


三、测试大数据应用


虽然测试人员一般不测试数据本身,但他们需要对数据库类型、数据架构以及如何访问该数据库有基本的了解,以成功测试大数据应用。测试人员不太可能使用实时数据,因此他们必须维护自己的测试环境版本的数据库和足够的数据,以使测试切合实际。

依靠分析输出的应用并不都是一样的。用户更有可能运行统计和敏感性分析,而不是为一个特定的结果查询数据库。这种可能性意味着正确的输出--答案--取决于分布、概率或时间序列趋势。测试人员不可能提前知道答案,因为它们往往是趋势和复杂的计算,而不是数据库中的简单字段。而且,一旦测试人员找到这些答案,它们显然不会是正确或不正确的,这为设计测试用例和分析结果的测试人员增加了另一层不确定性。

然而,如果测试人员把大数据测试看成是某种水生动物,就会有帮助。


四、如何测试ETL


大数据测试就像测试水母。由于数据量巨大,而且其非结构化的性质(就像水母是一个模糊的未定义的形状),测试过程很难定义。测试将需要自动化,虽然存在许多工具,但它们很复杂,需要技术能力来排除故障。

在最高层次上,大数据测试方法涉及功能和非功能部分。功能性测试验证了数据质量和处理数据。所有大数据测试策略都是基于提取、加载、转换(ELT)过程。大数据测试验证了来自源数据库的数据质量、数据结构转换或流程以及加载到数据仓库的数据。

ELT测试有三个阶段。

数据暂存

MapReduce验证

输出验证

数据暂存是通过比较来自源系统的数据和暂存位置的数据来验证的。

下一个阶段是MapReduce验证,或者说是数据转换的验证。MapReduce是非结构化数据的编程模型,Hadoop的实现在测试界最常用。这种测试确保应用程序用来聚合和隔离数据的业务规则正常工作。

最后的ELT阶段是输出验证阶段,来自MapReduce的输出文件已经准备好移动到数据仓库。当数据到达这个阶段时,数据的完整性和转换是完整和正确的。

数据加载是负载--即,数据如何进入应用程序。这个组件的性能测试应该集中在该过程的压力和负载测试上。这种测试还应该检查应用程序是否有效地处理查询和消息。

评估数据处理的性能是整个测试的关键。验证MapReduce作业的速度,并考虑建立一个数据档案来测试整个端到端的过程。

对用于处理大数据的分析方法应进行性能测试。这就是验证算法和吞吐量的地方。

最后,确保包括提交日志的大小、并发性、缓存和超时在内的参数被纳入性能测试策略。


五、大数据性能测试的挑战


与功能测试一样,大数据的数量和种类--特别是其非结构化的性质--造成了与性能测试相关的潜在问题。当这些问题与大数据处理的速度和高速结合在一起时,它为测试人员需要注意的众多问题打开了大门。

但是,正是这些考虑使得性能测试变得更加重要。测试人员应验证负载、响应时间、网络带宽、内存容量和其他分析组件,因为由于大数据的巨大规模、数量和速度,这些领域中的任何问题都会导致问题。

数据处理由三个活动组成:提取、转换和加载。 性能测试策略必须解决这些活动中的每一项,以及端到端的数据流。在高层次上,大数据的性能测试的主要组成部分是提取、处理和分析。


六、相关工具


许多类型的工具支持大数据应用,包括用于存储、处理和查询的工具。以下是几个常用的选项。

Hadoop分布式文件系统在多台机器上存储数据,而Hadoop MapReduce为查询提供并行处理。另外,Apache发布了Hadoop Ozone,这是一个用于Hadoop的可扩展分布式对象存储。

另一个Apache的产品是Hive,一个开源的数据仓库系统,允许数据科学家和开发人员用SQL类型的语言进行查询。Pig Latin,一种为Apache Pig编写的查询语言,帮助团队分析大型数据集。它可以处理复杂的数据结构和NoSQL,通常用于查询非结构化数据。

从大数据分析的角度来看,一些最强大的工具是Tableau、Zoho Analytics和Splunk。Tableau提供了一个可以混合多个数据点的引擎,并且不需要用户知道编码来创建数据查询。Zoho Analytics是用户友好型的,并提供各种各样的详细报告。Splunk最重要的特点是其可扩展性;它每天可以处理多达100TB的数据。

NoSQL数据库--如MongoDB和Couchbase--的成熟使得分析的大数据挖掘更加有效。专门的数据库可以满足特定的用途,如用于高性能的内存数据库和用于数据长期趋势的时间序列数据库。

测试人员在测试大数据设置时应抛开测试案例的惯例。测试人员不应该寻找一个具体的、已知的答案,而应该寻找一个统计结果,所以测试用例必须反映这一点。例如,如果你测试一个零售网站收集的大数据,你必须设计测试用例,让团队从所有关于客户、他们的搜索、添加到购物车的产品、放弃和购买历史的信息中推断出购买潜力。

最后,测试人员不应该以其正确性来评估测试结果,因为没有简单的方法来确定这一点。你可能要把问题分成小块,从每块中分析测试。使用技术能力和解决问题的创造力来确定如何解释测试结果。


七、测试人员的定位


作为测试人员,我们常常对数据有一种爱恨交加的关系。处理数据是我们的应用程序存在的主要原因,没有数据,我们就不能测试。数据往往是测试问题的根源;我们并不总是有我们需要的数据,这导致测试用例受阻,而缺陷被返回为 "数据问题"。

在过去的几年里,数据已经成倍增长,并继续增长。我们开始用兆字节和千兆字节进行测试,随后是兆字节和千兆字节,现在艾兆字节、泽兆字节和尤兆字节已经加入了数据领域。欢迎来到大数据测试的勇敢新世界。


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
3月前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
21天前
|
数据采集 机器学习/深度学习 数据可视化
探索大数据分析的无限可能:R语言的应用与实践
探索大数据分析的无限可能:R语言的应用与实践
65 9
|
2月前
|
分布式计算 Shell MaxCompute
odps测试表及大量数据构建测试
odps测试表及大量数据构建测试
|
26天前
|
运维 自然语言处理 算法
云栖实录 | 大模型在大数据智能运维的应用实践
云栖实录 | 大模型在大数据智能运维的应用实践
102 2
|
1月前
|
算法
MATLAB在风险管理中的应用:从VaR计算到压力测试
本文介绍如何使用MATLAB进行风险管理,涵盖风险度量(如VaR)、压力测试和风险分解。通过历史模拟法、参数法和蒙特卡洛模拟法计算VaR,评估投资组合在极端市场条件下的表现,并通过边际VaR和成分VaR识别风险来源。结合具体案例和代码实现,帮助读者掌握MATLAB在风险管理中的应用,确保投资组合的稳健性。
|
2月前
|
搜索推荐 测试技术 API
探秘电商API:从测试到应用的深度解析与实战指南
电商API是电子商务背后的隐形引擎,支撑着从商品搜索、购物车更新到支付处理等各个环节的顺畅运行。它通过定义良好的接口,实现不同系统间的数据交互与功能集成,确保订单、库存和物流等信息的实时同步。RESTful、GraphQL和WebSocket等类型的API各自适用于不同的应用场景,满足多样化的需求。在测试方面,使用Postman、SoapUI和jMeter等工具进行全面的功能、性能和安全测试,确保API的稳定性和可靠性。未来,随着人工智能、大数据和物联网技术的发展,电商API将进一步智能化和标准化,为用户提供更个性化的购物体验,并推动电商行业的持续创新与进步。
71 4
|
4月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
127 61
|
4月前
|
jenkins 测试技术 持续交付
探索自动化测试在持续集成中的应用与挑战
本文深入探讨了自动化测试在现代软件开发流程,特别是持续集成(CI)环境中的关键作用。通过分析自动化测试的优势、实施策略以及面临的主要挑战,旨在为开发团队提供实用的指导和建议。文章不仅概述了自动化测试的基本原理和最佳实践,还详细讨论了如何克服实施过程中遇到的技术难题和管理障碍,以实现更高效、更可靠的软件交付。
117 19
|
3月前
|
机器学习/深度学习 人工智能 运维
智能化运维:AI与大数据在IT运维中的应用探索####
本文旨在探讨人工智能(AI)与大数据分析技术如何革新传统IT运维模式,提升运维效率与服务质量。通过具体案例分析,揭示AI算法在故障预测、异常检测及自动化修复等方面的实际应用成效,同时阐述大数据如何助力实现精准运维管理,降低运营成本,提升用户体验。文章还将简要讨论实施智能化运维面临的挑战与未来发展趋势,为IT管理者提供决策参考。 ####
|
4月前
|
机器学习/深度学习 人工智能 测试技术
探索自动化测试框架在软件开发中的应用与挑战##
本文将深入探讨自动化测试框架在现代软件开发过程中的应用,分析其优势与面临的挑战。通过具体案例分析,揭示如何有效整合自动化测试以提升软件质量和开发效率。 ##

热门文章

最新文章