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

如何在JMeter中从区块链提取Re-captcha Token

在JMeter中提取区块链场景的Re-captcha Token及复用Token ID

一、提取Re-captcha Token

  • 先定位返回Re-captcha Token的请求:在JMeter查看结果树中,找到包含该Token的响应(通常是区块链平台的人机验证接口、初始化请求或前置校验请求)
  • 根据响应格式选择对应提取器:
    • JSON响应场景:使用JSON Extractor
      • 变量名填recaptcha_token
      • JSON Path表达式根据实际响应结构调整,例如$.data.recaptchaToken(可在查看结果树的JSON Path测试器中验证表达式有效性)
      • 匹配数字选1(取第一个匹配值)
    • HTML响应场景:使用CSS Selector Extractor或XPath Extractor
      • CSS选择器示例:input[name='recaptcha-token']::attr(value)
      • XPath示例://input[@name='recaptcha-token']/@value
  • 验证提取结果:在后续请求中通过${recaptcha_token}引用,查看结果树确认Token是否正确带入

二、提取Token ID并应用到GraphQL请求

1. 提取Token ID

  • 找到返回Token ID的区块链请求(比如查询Token列表的GraphQL请求、链上数据查询接口)
  • 针对GraphQL返回的JSON响应,用JSON Extractor提取:
    • 变量名设为token_id
    • JSON Path表达式根据实际响应结构调整,例如$.data.tokens[0].id(取第一个Token的ID,若需其他位置的Token,修改数组下标或路径)

2. 在GraphQL请求中复用Token ID

  • 打开目标GraphQL请求的HTTP编辑器,在请求体的查询语句中替换Token ID为变量:
    原查询示例:
    query GetTokenInfo {
      token(id: "固定TokenID") {
        name
        symbol
        totalSupply
      }
    }
    
    修改后:
    query GetTokenInfo {
      token(id: "${token_id}") {
        name
        symbol
        totalSupply
      }
    }
    
  • 运行测试,查看结果树中的请求体,确认${token_id}已被实际提取到的Token ID替换

关键注意事项

  • 提取器必须放在目标请求的子节点下,确保作用域正确
  • 所有提取表达式需结合实际响应结构调整,可利用JMeter查看结果树的测试工具(JSON Path/XPath tester)验证有效性
  • Re-captcha Token通常有有效期,需保证提取和使用的时机在有效期内
  • 区块链请求可能需要签名、特定Headers等验证,需确保JMeter请求的参数、Headers与实际业务请求完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:45:37