jMeter CSV数据集配置-同时运行多个用户失败

mpgws1up  于 2023-05-11  发布在  其他
关注(0)|答案(1)|浏览(211)

我已经设法让一切都运行到一定程度,但现在我卡住了。希望你能帮上忙。
我已经使用了Blazemeter关于CSV配置的说明。https://www.blazemeter.com/blog/jmeter-csv-dataset-config
我有一个线程组,我

  • 检索承载令牌并将其存储为属性变量
  • 我用用户名和密码登录(信息存储在CSV文件中,效果很好)
  • 然后我将一个项目添加到购物篮中(在需要用户ID的情况下,此信息也存储在CSV文件中)。

当我将“线程组”设置设置为

  • 线程数:1
  • 循环计数:6一切都正常工作。在每次迭代中,都会使用CSV文件中的新行,并从User 01运行到User 06。此时CSV数据配置设置为“所有线程”。我添加了JSR 223Assert,以查看从CSV文件中选择哪个User来分析问题。我稍后会删除它。下图显示了成功运行的所有6次迭代。

enter image description here
现在我的问题是:当我尝试同时运行2个用户时,测试用例开始失败。我在CSV中尝试了不同的设置,比如“当前线程组”和“所有线程”。
首先,运行2个AuthCode-4(这是我们检索承载令牌的部分),其中第一个显示“User 01”,第二个显示“User 02”。这意味着到目前为止它应该工作。在脚本的后面,我得到了auth错误。我也知道原因了。当User 02运行时,承载令牌变量覆盖来自User 01的承载令牌。这意味着用户01的身份验证对于进一步的请求失败。
解决方案是在为每个用户运行承载令牌之后,将其存储在CSV文件中,并在以后从那里调用它。但我该怎么做呢?

cczfrluj

cczfrluj1#

检索承载令牌并将其存储为属性变量
如果你希望每个用户都有自己的令牌,请不要将其存储为属性,而是将其保留为变量。
根据JMeter documentation
属性与变量不同。变量是线程的局部变量;属性对所有线程都是通用的
如果你真的需要一个属性,使用__threadNum()函数作为属性名的前缀或后缀,这样每个虚拟用户都有自己的属性和令牌。
如果您仍然希望将令牌写入CSV文件,请查看Flexbile File Writer

相关问题