You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter中如何实现A01-A99、B01-Z99式字母数字递增?

实现A01-Z99格式的字母数字递增方案(JMeter环境)

方法一:结合Counter Config Element与JMeter内置函数

基于你已使用的Counter组件,新增字母计数器并配合格式化函数实现需求:

  1. 添加两个Counter Config Element:

    • 字母计数器:
      • 起始值:65(对应ASCII码中大写字母A)
      • 结束值:90(对应ASCII码中大写字母Z)
      • 递增:1
      • 引用名称:letterCode
    • 数字计数器:
      • 起始值:1
      • 结束值:99
      • 递增:1
      • 引用名称:num
      • 勾选「Reset counter on group iteration」,确保数字到99后自动重置为1,触发字母计数器递增
  2. 使用内置函数组合生成目标格式:
    用__char()将ASCII码转为字母,__formatNumber()将数字格式化为两位带前导零的字符串,最终组合表达式:

    ${__char(${letterCode})}${__formatNumber(00,${num},,)}
    

方法二:JSR223元件(Groovy脚本,推荐更灵活的场景)

如果需要精准控制边界逻辑(比如Z99后循环重置或停止),可以用Groovy脚本实现:

  1. 添加JSR223 PreProcessor(或Sampler),粘贴以下脚本:

    // 初始化全局变量(首次执行时触发)
    if (!vars.get("currentLetter")) {
        vars.put("currentLetter", "A")
        vars.put("currentNum", "1")
    }
    
    // 读取当前字母和数字
    def letter = vars.get("currentLetter") as char
    def num = vars.get("currentNum") as int
    
    // 生成当前序列值并存入变量
    def sequence = "${letter}${String.format('%02d', num)}"
    vars.put("sequence", sequence)
    
    // 更新下一次迭代的数值
    num++
    if (num > 99) {
        letter++
        num = 1
        // 可选:字母到Z后重置为A,按需移除或修改
        if (letter > 'Z') {
            letter = 'A'
        }
    }
    
    // 保存更新后的值
    vars.put("currentLetter", letter as String)
    vars.put("currentNum", num as String)
    
  2. 在需要使用序列的地方,直接引用变量${sequence}即可。


内容的提问来源于stack exchange,提问作者SNR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:55:36