我将用户数设置为5,并且在测试计划中运行了3个线程。我的问题是,当我将变量从1个线程传递给另一个线程时,对于所有5个用户,它都传递相同的值而不是5个diff值。我正在使用Bean Shell断言将变量传递给其他线程
使用beanshell断言来传递变量
${__setProperty(name, ${name})};
${__setProperty(range, ${range})};
并在下一个线程中使用了属性函数
"name": "${__property(name)}",
"range": "${__property(range)}",
如果看到有效负载,则5个用户的名称和范围值始终相同:
POST数据:
{
"name": "testA",
"range": "range-A",
}
预期结果是5个用户应具有差异名称
{
"name": "testA",
"range": "range-A",
}
{
"name": "testB",
"range": "range-B",
}
{
"name": "testC",
"range": "range-C",
}
答案 0 :(得分:0)
-使用groovy而不是beanshell来提高性能。
-使用预处理器或后处理程序代替beanshell断言。
-假设它是5个用户和3个线程组,而不是5个用户和3个线程。
-属性和变量存在差异,如下所述:-
属性与变量不同。变量本地 线;属性是所有线程常用的
因此,如果将您的设置变量设置为属性,那么它将成为所有人的共同点,每个线程将获得相同的值。
要将值从第一个线程组传递到下一个线程组,还可以使用InterThread-Communication
考虑到您知道需要发送什么值,然后使用CSV Data set config。 如果要从发布请求中获取数据,请使用发布处理器来获取值并将其进一步传递。
希望这会有所帮助。