来自 csv 文件的 JMeter 和数据集

Posted

技术标签:

【中文标题】来自 csv 文件的 JMeter 和数据集【英文标题】:JMeter and data set from csv file 【发布时间】:2012-11-18 20:42:02 【问题描述】:

我正在研究使用 JMeter 进行负载测试。 我计划创建适度数量的线程 ~300,因为我从各种帖子中了解到 JMeter 不能很好地扩展并且我没有一些真正特殊的硬件。 所以我打算循环大约 20 次来模拟 6000 个用户。

如果我使用包含 6000 个条目的 CSV 数据集,JMeter 将为 每个 线程提供 CSV 文件的单个条目,因此在 20 个循环结束时 all 条目将作为请求的一部分发送到服务器在每个循环开始时,将从开始读取 csv 文件中的数据集?

【问题讨论】:

【参考方案1】:

这取决于 CSV 数据集配置中设置的共享模式。如果共享模式=所有线程,则每次执行 CSV 数据集时,都会从 CSV 中读取新行。这似乎是你想要的。

注意事项:

如果将线程数设置为 300,则无论循环中的计数器如何,都只会同时获得 300 个“用户”。 您无法事先说明您的测试机可以同时提供多少用户。根据测试计划、SUT、网络,此数字可能高于或低于 300。如果您想在您的站点上产生高负载,请关注official best practices on reducing resource usage,考虑distributed testing,最后考虑使用来自 Jmeter 的HTTP Raw Request -插件。

【讨论】:

但是如果我从服务器的角度循环 20 次,就好像在X 一段时间内访问了 6000 个用户,对吧? 你也是在说实验?你说的极限是多少? @Cratylus 您的服务器可能同时支持 300 个用户,但不太可能同时支持 6000 个用户。您应该决定是否希望用户同时使用。 没有人能说你的测试机能提供多少负载。实验,但请遵循指南 好点。例如,要测试 6000 个并发用户,如果我使用 真的 好机器,我能做到吗?或者我需要做分布式测试?【参考方案2】:

我同意 Andrey 在 csv 上的观点,但您不需要原始请求,标准的 http 采样器就足够了。

关于 JMeter 的可扩展性,只要您遵循最佳实践,它就可以很好地扩展。 阅读:

http://wiki.apache.org/jmeter/JMeterPerformance

最终 6000 个并发用户并不意味着 6000 个线程。 阅读:

http://www.webperformance.com/library/tutorials/CalculateNumberOfLoadtestUsers/

【讨论】:

为什么您认为不需要 HTTP 原始请求?我同意在大多数情况下不太可能需要它。但是,如果由于使用较少的资源而应该生成非常高的负载,则可能需要它。免责声明:我没用过

以上是关于来自 csv 文件的 JMeter 和数据集的主要内容,如果未能解决你的问题,请参考以下文章

使用 JMeter 中的 CSV 数据集配置多次运行 HTTP 请求后提取有序结果

如何使用CSV数据集配置在Jmeter的不同线程中使用不同输入登录多个用户

我如何在 quicksight 中刷新 csv 数据集而不是替换数据集,因为这会丢失我的计算

从 Jmeter 中的 CSV 文件中随机选择

如何按百分比将 CSV 数据集拆分为训练集和测试集,并将拆分后的数据集与 pandas 一起保存到本地文件夹中? [复制]

Jmeter连接Redis,获取Redis数据集