JMeter及Taurus测试中如何实现循环迭代时变量逐次递增
JMeter 实现递增计数方案
你之前每次请求myCount都是固定值0,是因为使用了静态变量配置,没有配置动态计数逻辑,可以通过以下两种常用方案实现需求:
方案1:使用计数器配置元件
- 右键点击对应线程组,依次选择
添加→配置元件→计数器 - 按需求配置计数器参数:
- 启动值:填1(第一次请求取值为1)
- 递增值:填1
- 最大值:按循环次数填写,比如100,也可留空不限制
- 引用名称:填写
myCount - 若需要多线程场景下每个线程单独计数,勾选「每个用户独立计数器」,若需要全局所有线程共用同一个计数序列,取消勾选即可
- 配置完成后,在POST请求的myCount参数值处填写
${myCount}即可获取每次递增的值
方案2:使用__counter内置函数
无需新增配置元件,直接在POST请求的myCount参数值处填写函数表达式即可:
- 单线程/多线程各自独立计数:
${__counter(TRUE,)} - 多线程全局共用计数:
${__counter(FALSE,)}
Taurus 实现递增计数方案
Taurus兼容JMeter的所有函数,同时自带内置循环计数变量,可任选以下方案实现:
方案1:使用Taurus内置迭代变量
Taurus执行循环时会自动生成内置变量__iteration,代表当前循环的次数,第一次循环取值为1,刚好符合你的需求,直接在请求参数中引用即可,示例配置如下:
execution: - concurrency: 1 # 并发数按需调整 iterations: 100 # 循环100次 scenario: requests: - url: "你的接口请求地址" method: POST body: myCount: ${__iteration}
方案2:复用JMeter的counter函数
直接在参数值处填写${__counter(TRUE,)}即可,使用逻辑和JMeter完全一致。
内容的提问来源于stack exchange,提问作者born2Learn
相关产品推荐
相关产品推荐

