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

如何在JMeter中从API返回的JSON响应提取OTP 563991

嘿,我来给你分享几种在JMeter里提取这个OTP(563991)的实用方法,都是实战里常用的,你可以根据需求选:

方法1:JSON Extractor + 正则表达式提取器(精准分步)

这种方法先定位到包含OTP的Body字段,再从中提取数字,适合JSON结构复杂的场景:

  • 第一步:添加JSON Extractor到返回该响应的HTTP请求下
    右键目标HTTP请求 → 后置处理器 → JSON Extractor,然后配置:
    • 引用名称:填bodyContent(随便起个好记的名字就行)
    • JSON Path表达式:$.data.Body (这个路径能精准拿到"Please use OTP : 563991 to complete the process"这段文本)
    • 匹配数字:填1(取第一个匹配结果,这里只有一个)
  • 第二步:添加正则表达式提取器到同一个HTTP请求下
    右键目标HTTP请求 → 后置处理器 → 正则表达式提取器,配置:
    • 引用名称:填otp(后续用${otp}调用这个值)
    • 要检查的响应字段:选「引用名称」,然后填bodyContent(也就是刚才提取的Body内容)
    • 正则表达式:OTP : (\d+) (括号里的\d+会匹配连续的数字,就是我们要的OTP)
    • 模板:$1$(取第一个分组的内容,也就是匹配到的数字)
    • 匹配数字:填1
方法2:直接用正则表达式提取器(一步到位)

如果你的响应里OTP的格式很固定,直接从整个JSON响应里匹配更省事:

  • 添加正则表达式提取器到目标HTTP请求下
  • 配置参数:
    • 引用名称:otp
    • 要检查的响应字段:选「响应文本」(默认就是这个,不用改)
    • 正则表达式:OTP : (\d+)
    • 模板:$1$
    • 匹配数字:1

完成后,直接用${otp}就能拿到提取到的OTP码啦。

方法3:JSR223 PostProcessor(灵活定制)

要是你需要做一些额外的逻辑处理,比如验证OTP长度,可以用Groovy脚本:

  • 添加JSR223 PostProcessor到目标HTTP请求下
  • 在脚本编辑框里输入这段代码:
import groovy.json.JsonSlurper

// 获取响应文本
def response = prev.getResponseDataAsString()
// 解析JSON
def json = new JsonSlurper().parseText(response)
// 拿到Body内容
def bodyText = json.data.Body
// 正则匹配OTP
def otpMatcher = bodyText =~ /OTP : (\d+)/
// 把OTP存入变量
vars.put("otp", otpMatcher[0][1])

脚本执行后,${otp}就会包含提取到的563991了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:00:52