JMeter中的多用户登录

JMeter中的多用户登录,jmeter,jmeter-5.0,Jmeter,Jmeter 5.0,我正在尝试对NodeJS应用程序执行负载测试,该应用程序允许用户进行单次登录会话 但是,当我尝试使用8个并发用户(使用相同的凭据)执行负载测试时,它是有效的 因此,我尝试创建10个用户ID,并将其添加到CSV文件中,配置“CSV数据集配置”和“HTTP Cookie管理器”,并将“线程数”设置为80 当我运行测试计划时,凭据不会平均地传递给每个会话。例如,userID1被传递了3次,userID2被传递了7次 您能否澄清这种行为的原因,以及如何使用csv文件中的每个凭据(每个凭据8个会话)运行线

我正在尝试对NodeJS应用程序执行负载测试,该应用程序允许用户进行单次登录会话

但是,当我尝试使用8个并发用户(使用相同的凭据)执行负载测试时,它是有效的

因此,我尝试创建10个用户ID,并将其添加到CSV文件中,配置“CSV数据集配置”和“HTTP Cookie管理器”,并将“线程数”设置为80

当我运行测试计划时,凭据不会平均地传递给每个会话。例如,userID1被传递了3次,userID2被传递了7次


您能否澄清这种行为的原因,以及如何使用csv文件中的每个凭据(每个凭据8个会话)运行线程

我能理解的是,您正试图为每个用户实现8个会话。为此,您必须进行10个并发线程和8次迭代,这就是为每个凭据实现8个会话的方式。
但您的要求之一是运行80个并发用户,然后尝试创建80个用户并运行测试。

确保您已将
CSV数据集配置的选项设置为
共享模式的所有线程,并提供最短的
爬升期
(例如1秒)这样,每个线程都可以正确地读取CSV行,而不会发生冲突


对于为什么它可以工作8个并发会话的问题,您只允许来自UI的单个会话-我猜您对所有8个用户使用相同的凭据-所以服务器可能会认为它是来自同一用户的8个并行请求。这取决于会话的维护方式。例如,如果它使用的是一个
会话cookie
,那么如果您有8个不同的cookie,它可能会失败。但这只是一个猜测,因为我不知道它是如何在你的应用程序中完成的

JMeter的作用如下:

  • 所有线程都在您在
  • 每个线程都以尽可能快的速度开始倒挂执行(或根据)
  • JMeter在启动下一个采样器之前等待上一个请求完成
  • 当线程没有更多要执行的采样器和要迭代的循环时,它将被关闭
  • 如果您观察到这样或那样的逻辑比另一种逻辑使用得更多,那么很可能登录的响应时间更短


    您可能希望检查响应的大小,因为对于成功的请求,响应的大小应该大致相同,并且可能是服务器返回但响应正文包含错误的情况,也就是说,某些登录可能会无声地失败,如果是这种情况,添加一个来添加一些额外的检查是有意义的,即“欢迎”文本或“注销”链接或没有“错误”文本或其他内容。

    您在CSV配置中使用的共享模式是什么?“所有线程”“共享模式,我在测试计划中只有一个线程组。请给一个爬升周期,然后再试一次。可能是1秒?非常感谢。它很好用。你知道8个并发会话是如何工作的吗?我添加了这个作为答案,这样你就可以接受了。创建太多的用户是很耗时的,同时并发用户的数量也需要增加到500个以上。即使你这样做,用更少的用户进行测试也不是实时场景。