使用 JMeter 从 Fiddler 捕获请求并生成测试脚本(下)

使用 JMeter 从 Fiddler 捕获请求并生成测试脚本(下)

用 JMeter 生包 —— 1:1 复现请求

目标:在 JMeter 中精确重建你抓到的登录请求,使其返回与浏览器一致的响应(如 {"code":-105,"message":"验证码错误"})。

2.1 创建测试计划结构

  1. 打开 Apache JMeter(建议 5.6 或更高版本)。
  2. 在左侧 Test Plan 上右键 → 添加 → 线程(用户)→ 线程组
  3. 保持默认配置(适用于单次测试):
    • 线程数(用户数)1
    • Ramp-Up 时间(秒)1
    • 循环次数1

2.2 添加 HTTP 请求取样器

  1. 右键刚创建的 线程组添加 → 取样器 → HTTP 请求
  2. “基本” 选项卡中填写以下内容:
字段
协议 https
服务器名称或IP passport.bilibili.com
端口 (留空,JMeter 会自动使用 443)
方法 POST
路径 /x/passport-login/web/login

❗ 注意:路径不要包含 ? 及之后的查询参数(如 ?spm=xxx),这些应通过“参数”表处理(但本例中无查询参数)。

2.3 配置请求头(HTTP 信息头管理器)

  1. 右键 HTTP 请求添加 → 配置元件 → HTTP 信息头管理器
  2. 点击 “Add” 按钮,逐行添加以下 Header:
Name Value
Content-Type application/x-www-form-urlencoded
Cookie YOUR_COOKIE_STRING
Origin https://www.bilibili.com
Referer https://www.bilibili.com/?spm=a2ty_o01.29997173.0.0.5cce51713vRb7n

关键提醒

  • Cookie 的值必须是你从 Fiddler Headers 中复制的完整字符串(例如:buvid3=xxx; _uuid=yyy; sid=zzz; bili_ticket=aaa...)。
  • 不要在值前面加 Cookie:,JMeter 会自动拼接 Header 名称。

2.4 填写请求体(参数表)

  1. 切换到 HTTP 请求的 “参数” 选项卡。
  2. 点击 “Add”,逐行添加以下字段(值替换为你抓包所得):
名称
username YOUR_USERNAME
password YOUR_PASSWORD_HASH
captcha YOUR_CAPTCHA_VALUE
validate YOUR_VALIDATE_TOKEN
token YOUR_LOGIN_TOKEN
source main-fe-header
seccode YOUR_SECCODE
go_url https://www.bilibili.com/?spm=a2ty_o01.29997173.0.0.5cce51713vRb7n
challenge YOUR_CHALLENGE

💡 说明

  • 所有字段均来自 Fiddler 的 WebFormsTextView 中的 Body。
  • password 字段通常是前端加密后的值,并非明文密码,但仍属敏感信息,勿泄露。

密码3

2.5 添加监听器并验证结果

  1. 右键 HTTP 请求添加 → 监听器 → 查看结果树

  2. 点击工具栏绿色 ▶️ 启动按钮 运行测试。

  3. 在左侧 查看结果树 中点击你的请求,检查:

    • 取样器结果:状态码是否为 200

    • 响应数据(Response Data) → 切换到 “Response body” 标签:

      • 是否返回类似以下 JSON?

      • {
          "code": -105,
          "message": "验证码错误"
        }
        

        如果响应与你在 Fiddler 中看到的一致,说明 “生包”成功
        密码4

posted @ 2025-12-31 01:12  hifyfye  阅读(0)  评论(0)    收藏  举报