首页 > 解决方案 > JMeter,将 CSV 中的 URL 随机(或均等地)分配给用户,而不需要多次调用 URL

问题描述

我有一种情况,我在 CSV 文件中有 100000 个 URL,我想同时启动 N 个用户(线程),但他们应该参与 CSV 文件而不干扰彼此的数据集。

Url1
Url2
....
Url100000

User1应该取自Url1-Url100User2应该取自Url101-Url200等等..(不一定是相等的拆分),但一个 URL 应该只热一次。并且所有用户必须同时启动才能达到我想要的负载。

我可以将文件拆分为多个 CSV 并创建多个线程组,但如果我有 1000 个用户,则实际上不可能创建 1000 个线程组。

尝试了多种方法(OnceOnlyControllerThroughputController)但没有帮助。

对此有任何意见吗?

标签: jmeter

解决方案


  1. 要让您的用户从 CSV 文件中获取唯一行,只需将共享模式设置为All Threads

    JMeter CSV 数据集配置共享模式

  2. 使请求“唯一”的另一种方法是切换到__StringFromFile()函数,但在这种情况下,您将不得不手动计算迭代次数(虚拟用户 * 循环应该 <= .csv 文件中的行数),否则会有重复的网址。
  3. 最后还有HTTP Simple Table Server插件,即使是分布式测试也能保证唯一性
  4. 要在完全相同的时刻启动线程,请将线程组中的 Ramp Up 设置为0或使用同步计时器

推荐阅读