【问题标题】:How to avoid duplicate usage of Users from CSV file in JMeter如何避免在 JMeter 中重复使用 CSV 文件中的用户
【发布时间】:2016-11-16 13:59:18
【问题描述】:

我正在使用 JMeter 执行负载测试,流程如下:

  • 由多个用户组成的线程组,无限循环5分钟。 (图片在下一个链接->1

  • 具有以下配置的 CSV 配置文件 (in this link CSV config)

所以,我的计划是:

  • 从 CSV 文件中获取用户(在 CSV 中,每一行都有用户名)。
  • 有一个循环控制器,里面有:
    • 仅用于我的登录请求的控制器。
    • 事务取决于会话有效性(这就是我有循环控制器的原因)。

问题是 - 我收到很多多个会话错误,所以我想确保我正在正确配置我的测试,以避免出现前一个线程循环中的用户尚未完成流程,但第二个线程循环开始并从导致无效会话的 CSV 文件中获取该特定用户的详细信息到第一次运行。

谢谢

【问题讨论】:

    标签: performance csv duplicates jmeter load


    【解决方案1】:

    您可以通过提供足够数量的凭据来克服这种情况,即,

    number of credentials = number of threads.
    

    因此,每个线程都可以选择一个唯一的用户名和密码,从而避免同一用户的多个会话冲突。


    如果 CSV 文件中没有足够的条目,JMeter 将重用凭据。即,Recycle on EOF, default value set to True.(在 CSV 数据集配置中)。因此,如果您提供的凭据数量较少,那么 JMeter 将从头开始重用这些值以供以后的线程使用。除非 AUT(被测应用程序)支持同一凭据的多个会话,否则您不能使用较少数量的凭据。关闭Recycle on EOF 设置会导致后面的用户(线程)缺少凭据,从而导致 JMeter 停止这些线程。


    如何读取 CSV 值:

    默认情况下,文件只打开一次,每个线程将使用与文件不同的行。但是,将行传递给线程的顺序取决于它们的执行顺序,这可能在迭代之间有所不同。在每次测试迭代开始时读取行。文件名和模式在第一次迭代中被解析。

    如果您想拥有特定于每个线程的值:

    如果您希望每个线程都有自己的一组值,那么您需要为每个线程创建一组文件。例如 test1.csv、test2.csv、……、testn.csv。使用文件名 test${__threadNum}.csv 并将“共享模式”设置为“当前线程”

    参考:

    1. http://jmeter.apache.org/usermanual/component_reference.html#CSV_Data_Set_Config

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      • 2017-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      相关资源
      最近更新 更多