我正在使用JMeter执行负载测试,具有以下流程:
由多个用户组成的线程组,无限循环5分钟。 (图片在下一个链接 - > 1)
具有以下配置(in this link CSV config)
所以,我的计划是:
问题是 - 我收到了很多多个会话错误,所以我想确保我正在配置我的测试,以避免来自前一个线程循环的用户无法完成流程的情况,第二个线程循环开始并从CSV文件中获取该特定用户的详细信息,导致第一次运行的会话无效。
由于
答案 0 :(得分:3)
你可以通过提供足够数量的凭证来克服这种情况,例如,
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并设置"共享模式"到"当前线程"
参考: