在单个请求中传递两次DBID值



我需要在单个请求中传递两次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((函数每次被调用时都会生成一个递增的值

选项在:

  1. 切换到计数器配置元素

  2. 修改您当前的设置如下:

    • 第一次出现:${__evalVar(dbid_${__counter(TRUE,dbid)})}

      这将把生成的计数器号存储到${dbid}JMeter变量中

    • 第2次、第3次等事件:${__evalVar(dbid_${dbid})}

更多信息:如何在JMeter测试中使用计数器