Testing 在线程组之间传递多个值-Jmeter
我有ThreadGroup1,它执行登录操作,使用CSV数据集配置从CSV文件获取凭据,并将用户名和密码保存在两个不同的变量中,如:Testing 在线程组之间传递多个值-Jmeter,testing,jmeter,load-testing,stress-testing,Testing,Jmeter,Load Testing,Stress Testing,我有ThreadGroup1,它执行登录操作,使用CSV数据集配置从CSV文件获取凭据,并将用户名和密码保存在两个不同的变量中,如: ${__setProperty(USERNAMEGlobal, ${USERNAME})} ${__setProperty(PASSWORDGlobal, ${PASSWORD})} 现在在ThreadGroup2中,我使用以下凭据: ${__property()} 对于单个用户,它可以正常工作,但如果我尝试多个用户(请求),最后一个值将覆盖以前的所有值,Th
${__setProperty(USERNAMEGlobal, ${USERNAME})}
${__setProperty(PASSWORDGlobal, ${PASSWORD})}
现在在ThreadGroup2中,我使用以下凭据:
${__property()}
对于单个用户,它可以正常工作,但如果我尝试多个用户(请求),最后一个值将覆盖以前的所有值,ThreadGroup2只接收定义的最后一个凭据
我希望将所有凭据逐一传递给ThreadGroup2,然后ThreadGroup2中的请求应分别根据所有这些凭据工作
如何做到这一点
PS:我定义了爬升周期=1,用户数=3,循环数=1。有一些选项:
- 将它们设置为不同的属性:
${__setProperty(USERNAMEGlobal1, ${USERNAME1})} ${__setProperty(USERNAMEGlobal2, ${USERNAME2})} etc.
- 使用所有用户名初始化数组,然后将其放入属性。然而,它看起来像是一个黑客,会减慢你的计划
您可以在脚本中设置变量:
vars.put(“var\u name”、“var\u value”)
,然后像${var\u name}
一样使用它。设置变量的选项。我不能这样做,因为每次在csv文件中定义的用户数量都是随机的。还有其他方法吗?“使用所有用户名初始化数组,将其字符串化,然后放入属性。但是,这看起来像是一个会减慢计划的黑客行为。”。。。如何做到这一点?我对Jmeter没有太多的经验,你能告诉我如何实现这个吗。。。代码片段?我正在做这个。。。但现在我在ThreadGroup1中只读了一次,然后使用uu setProperty(如上所述)设置和获取变量,但遇到了问题(在问题中提到)对不起,也许我遗漏了一些东西,但无法理解为什么要用csv更改非常简单的工作解决方案(看起来您必须在TG2中使用与TG1中相同的csv列表)在线程组之间传递多个属性会很麻烦吗?我怀疑每个用户存储2个属性会比在ThreadGroup2中再次从csv中读取相同的凭据消耗更少的资源。有什么原因吗?我只在threadGroup1中读取csv文件,然后使用TG2中的所有变量,我这样做是因为我是passing一些其他变量也被添加到TG2中,这些变量是用户特定的。如果我在TG2中单独读取CSV,它会向用户提供错误的变量…例如,如果user1应该有变量1,它可能会得到variable2,实际上应该提供给User2。我希望每个用户在TG2中都有特定的变量…PS:这些变量是我在TG1中发出的一些请求的结果。我对此进行了详细解释,在TG1中,用户登录从CSV文件获取凭据并执行操作(例如创建帐户),现在会生成一个帐户号,此帐户号必须与user1绑定…但当我将此帐户号提供给TG2并在之后再次登录TG2时从CSV读取凭据不能保证此帐号将提供给user1,它可以提供给user2…此外,我对accountnumber有类似的问题,在TG1中,由于多个HTTP请求而生成的多个帐号..当我将其放入变量以传递给TG2时,TG2只获得最后一个AccountUnt编号,因为它已覆盖所有其他AccountNumber。