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

如何使用JMeter函数实现按指定概率取值并赋值给变量?

按指定概率在JMeter中分配变量值的解决方案

当然有办法实现,给你三种常用方案:

方案一:用__Random + __If函数组合

这是最直接的内置函数方案,无需写代码:

  1. 先生成1-100的随机数并存储到临时变量:
    ${__Random(1,100,randNum)}
  2. 用__If函数判断概率区间,赋值给result变量:
    ${__If(${randNum}<=90,Sport,movies,result)}
    逻辑很清晰:随机数≤90时(对应90%概率)返回Sport,否则返回movies(对应10%概率),结果直接存入result变量。

方案二:用__Switch函数(JMeter 5.1及以上版本支持)

如果你的JMeter版本较新,用__Switch会更简洁:
同样先生成1-100的随机数,再通过通配符匹配区间完成赋值:
${__Switch(${randNum},<=90:Sport,*:movies,,result)}
这里*代表所有不满足<=90的情况,直接映射到movies,一步完成变量赋值。

方案三:JSR223元件(适合复杂概率场景)

如果后续需要扩展多值不同概率的场景,用Groovy脚本会更灵活:

  1. 添加JSR223 PreProcessor或JSR223 Sampler
  2. 写入以下Groovy代码:
def randomNum = new Random().nextInt(100) + 1
def result = randomNum <= 90 ? "Sport" : "movies"
vars.put("result", result)

Groovy在JMeter中性能表现最优,后续若要添加更多值(比如三个值按60%、30%、10%分配),直接扩展条件判断即可,适配性很强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:20:06