问题描述
当匹配计数设置为 -1 时,Jmeter ForEach 控制器从正则表达式变量结果中挑选重复值。
ThreadGroup
--Req1
--Req2
---RegEx: with Match No. -1 (Debug Sampler shows match count: 40 )
---ForEach Controller
----Http req using ForEach controller's output variable
它为单个用户正确选择,当超过 1 个用户执行时,它选择重复值
请指导
解决方法
当然可以。
属性与变量不同。 变量是线程的局部变量;属性对所有线程都是通用的,需要使用 __P 或 __property 函数引用。
所以每个线程(虚拟用户)执行 Req2,Regular Expression Extractor 返回 40 个变量。所以每个用户都有自己的一组 40 个变量,并使用 ForEach 控制器来迭代它们
如果您有多个用户并且需要每个用户拥有自己的变量或一组变量,您可以:
-
用 1 个线程在 setUp Thread Group 中的某处提取这 40 个变量
-
使用 JSR223 Post-Processor 和如下代码将 JMeter 变量转换为 JMeter 属性:
1.upto(vars.get('myVar_matchNr') as int,{ props.put('myVar_' + it,vars.get('myVar_' + it)) }) props.put('myVar_matchNr',vars.get('myVar_matchNr'))
-
就是这样,您应该能够在需要时使用 __P() function 访问第一个变量,例如
${__P(myVar_1,)}
,第二个变量作为${__P(myVar_2,)}
等。
计数器是我请求中出现问题的原因,
Firebase CLI v9.9.0