在所有线程中使用相同的随机变量
Posted
技术标签:
【中文标题】在所有线程中使用相同的随机变量【英文标题】:Use same random variable in all threads 【发布时间】:2021-11-26 22:44:46 【问题描述】:我有测试计划:
线程组(用户 3,循环 2) 随机变量 HTTP 请求
我希望仅在每个循环中更改变量,因此在每次迭代下,所有三个线程都应该发送相同的值。
所以我想要这样的东西:
请求随机变量 = X
请求随机变量 = X
请求随机变量 = X
请求随机变量 = Y
请求随机变量 = Y
请求随机变量 = Y
我尝试了很多解决方法,但找不到合适的解决方案。
附:我不想从文件中读取变量。我需要生成它们
【问题讨论】:
【参考方案1】:无论你“想要”什么,最好的选择是在setUp Thread Group 的某处预先生成随机值并将其写入文件,然后在“主”线程组中使用CSV Data Set Config 来读取这些值。
但是,如果这仍然不是您“想要”的东西,这里还有另一种“解决方法”,希望它对您来说足够“合适”:
将JSR223 PreProcessor 添加为您“想要”使用随机变量参数化的请求的子项
将以下代码放入“脚本”区域:
if (props.get('foo_' + vars.getIteration()) != null
props.put('foo_' + vars.getIteration(), org.apache.commons.lang3.RandomUtils.nextInt(0, 100))
在需要时使用以下__groovy() function 引用“生成的”随机值:
$__groovy(props.get('foo_' + vars.getIteration()),)
演示:
【讨论】:
好的,谢谢。我已将其标记为答案。我找不到任何其他解决方案。我以两种方式运行测试: 1. 正如你所说,我创建了 .csv 文件并从那里读取变量。 2.我添加了Counter元素,所有线程都相同,每次迭代更新一次以上是关于在所有线程中使用相同的随机变量的主要内容,如果未能解决你的问题,请参考以下文章