1

我有 ThreadGroup1 执行登录操作,它使用 CSV 数据集配置从 CSV 文件获取凭据,并将用户名和密码保存在两个不同的变量中,例如:

${__setProperty(USERNAMEGlobal, ${USERNAME})}
${__setProperty(PASSWORDGlobal, ${PASSWORD})}

现在在 ThreadGroup2 我使用这些凭据:

${__property()}

它适用于单个用户,但如果我尝试多个用户(请求),最后一个值会覆盖以前的所有值,并且 ThreadGroup2 只接收定义的最后一个凭据。

我希望将所有凭据一一传递给 ThreadGroup2,然后 ThreadGroup2 中的请求应分别根据所有这些凭据工作。

如何做到这一点?

PS:我定义了加速期=1,用户数=3,循环=1。

4

3 回答 3

0

有一些选项:

  • 线程间通信
  • 将它们放到不同的属性中:

    ${__setProperty(USERNAMEGlobal1, ${USERNAME1})}
    ${__setProperty(USERNAMEGlobal2, ${USERNAME2})}
    etc.
    
  • 使用所有用户名初始化数组,对其进行字符串化,然后放入属性。但是,它看起来像是一个会减慢您的计划的黑客。
于 2013-01-16T08:12:23.917 回答
0

看起来您可以将所有用户名-密码对保存到 ThreadGroup1 中的文件 csv-file 中,然后通过例如读取CSV Data Set Config在 ThreadGroup2 中重新使用它们。

于 2013-01-16T10:32:47.227 回答
0

我想知道您是否真的需要两个单独的线程组?

似乎您只需要一个 ThreadGroup 即可在其中执行登录操作,然后将用户/传递参数保存在vars中,而不是保存在props中。Vars 是线程本地的,因此一个线程的值不会覆盖另一个线程的值。

您可以在脚本中设置变量:vars.put("var_name", "var_value"),然后像${var_name}. 设置变量的另一个选项。

于 2016-08-31T05:56:53.637 回答