在使用 JMeter 进行数据摄取测试期间,我应该采用啥功能/性能测试方法?

Posted

技术标签:

【中文标题】在使用 JMeter 进行数据摄取测试期间,我应该采用啥功能/性能测试方法?【英文标题】:What functional/performance testing approach should I take during data ingestion testing using JMeter?在使用 JMeter 进行数据摄取测试期间,我应该采用什么功能/性能测试方法? 【发布时间】:2020-06-24 05:56:50 【问题描述】:

项目概览:

我们正在构建一个数据提取后端平台。后端系统的 3 个主要组件是:Listener(将摄取车辆 GPS 跟踪器数据并存储在消息队列中)>> Adapter(将由 Listener 处理摄取的数据并将处理后的数据存储在消息队列中)>> Datarouter(将处理的路由通过适配器将数据传输到任何第 3 方平台)

我的任务:

在上述场景中,我的任务是使用JMeter开源工具对数据摄取后端平台进行功能测试和性能测试。我们使用 JMeter 作为负载生成器工具,它基本上是模拟向侦听器发送车辆 GPS 跟踪器数据。在 JMeter 中,我们使用 TCP 采样器以以下格式发送数据:

$$$data_identifier,$imei,AAA,35,$lat,$long,$__dateTimeConvert($__time(),,yyMMddhhmmss),
A,8,15,60,274,0.9,25,34900,211818,404|30|7033|0BBF5744,0000,0000|0000|0000|0190|04B7,00000001,,1,0000*80

从功能上看,我们需要检查listener所摄取的数据,经过datarouter处理后最终路由的数据是否一致。

从性能的角度来看,我们需要检查后端系统是否可以处理 say for ex 的负载。 100 辆汽车每 10 秒发送一次数据包,持续一段时间,比如说 15-20 天。 目前我正在本地测试所有功能。测试完成后,将部署到 dev env。

注意:请注意,我们使用任何大数据工具,如 HDFS、Apache Spark 等。作为消息代理,我们正在考虑使用 Redis/Kafka。

我的问题:

请告诉我要执行什么样的功能和性能测试场景?

是否可以直接从 JMeter 以统计格式/图片形式发布测试结果?

在本地环境设置中进行测试时,如何确保性能瓶颈和其他性能方面?

【问题讨论】:

【参考方案1】:

    Please let me know what kind of functional and performance test scenarios to execute?

    定义场景是你的工作,你可以从正常的Load Testing开始,看看系统性能在预期负载下是否可以接受,然后他们去Stress Testing确定饱和点、第一个瓶颈和第一个突破点

    Any option to publish test results in statistical format/pictorial form directly from JMeter?

    JMeter 提供了生成html Reporting Dashboard 的可能性 可以使用 JMeter Plugins Command Line Tool 生成单独的图表

    How can I ensure performance bottleneck & other performance aspects while testing in local environment setup?

    在本地环境中进行性能测试没有多大意义,因为您可以在那里检查的东西并不多,而且您将获得的结果无法正确推断到更大的系统。你还可以test several aspects against a scaled down environment点赞:

    运行功能测试 运行浸泡测试 测试组件集成

【讨论】:

感谢@Dmitri 对上述问题陈述的见解。我会浏览你提供的链接。

以上是关于在使用 JMeter 进行数据摄取测试期间,我应该采用啥功能/性能测试方法?的主要内容,如果未能解决你的问题,请参考以下文章

使用队列时如何在张量流中训练期间测试网络

使用1个端口或具有10,000+个传感器数据的多个端口进行nifi摄取?

使用 node.js 将非常大的 json 文件索引/摄取到数据库

使用 JMeter 进行测试:如何每秒运行 N 个请求

如何使用摄取节点管道添加自定义索引?

如何使用 JMeter 倒带和暂停视频流并再次播放