我需要在单个请求中传递两次DBID值,我已经尝试了两次放置_counter函数,但它每次在命中时都会更新计数器值
<v13:taskIdentifier>${__evalVar(taskcounter)}</v13:taskIdentifier>
<v13:databaseId>${__evalVar(dbid_${__counter(TRUE,)})}</v13:databaseId>
</v12:uniqueTaskIdentifier>
<v14:executionTime>
<v15:value>${__time(YYYY-MM-dd)}T13:00:00</v15:value>
</v14:executionTime>
<v14:resourceLocation>
<v16:identifierLocation>
<v17:type>Unique Task Identifier</v17:type>
<v17:identifier>${__evalVar(dbid_${__counter(TRUE,)})}${__evalVar(taskcounter)}</v17:identifier>
还有其他选项可以第二次获得相同的计数器值吗?
我建议您将该值保存在User Parameters中,它将是请求的子项
允许您为任何用户变量指定一系列值。对于每个线程,变量将按顺序分配序列中的一个值。如果线程数多于值,则会重复使用这些值。
将参数值定义为${__counter(TRUE,)}
,例如名称c
然后在XML中使用${c}
而不是
<v13:taskIdentifier>${__evalVar(taskcounter)}</v13:taskIdentifier>
<v13:databaseId>${__evalVar(dbid_${c})}</v13:databaseId>
</v12:uniqueTaskIdentifier>
<v14:executionTime>
<v15:value>${__time(YYYY-MM-dd)}T13:00:00</v15:value>
</v14:executionTime>
<v14:resourceLocation>
<v16:identifierLocation>
<v17:type>Unique Task Identifier</v17:type>
<v17:identifier>${__evalVar(dbid_${c})}${__evalVar(taskcounter)}</v17:identifier>
__counter((函数每次被调用时都会生成一个递增的值
选项在:
-
切换到计数器配置元素
-
修改您当前的设置如下:
-
第一次出现:
${__evalVar(dbid_${__counter(TRUE,dbid)})}
这将把生成的计数器号存储到
${dbid}
JMeter变量中 -
第2次、第3次等事件:
${__evalVar(dbid_${dbid})}
-
更多信息:如何在JMeter测试中使用计数器