第5章 零基础接口自动化到 Jenkins 持续集成【参数关联与登录鉴权实战】

第5章 参数关联与登录鉴权实战

本章目标

掌握"多变量提取 + 跨接口复用 + 鉴权注入"完整链路,让需要登录态和业务关联数据的接口都能自动化执行。

1. 先理解参数关联

接口自动化最常见需求:

先登录拿 token,再把 token 给后续接口使用。

进阶场景还包括:

  • 下单接口返回 orderNo,给"查询订单详情"接口使用
  • 创建用户返回 userId,给"查询/编辑/删除用户"接口使用
  • 课程创建返回 courseId,给"上下架/删除课程"接口使用

2. 参数关联语法(先记住这 2 条)

前置接口提取:

yaml 复制代码
extract:
  变量名: "响应JSON路径"

后续接口引用:

yaml 复制代码
${变量名}

本框架中可引用的位置:

  • headers
  • params
  • data
  • json

3. 实战一:登录接口提取 token

yaml 复制代码
- project: "演示项目"
  module: "登录模块"
  api_name: "登录接口"
  title: "登录成功-提取token和user_id"
  base_url_key: "admin_url"
  request:
    method: "POST"
    url: "/api/login"
    json:
      username: "test"
      password: "123456"
  extract:
    auth_token: "data.token"
    user_id: "data.userId"
  validate:
    - eq: ["status_code", 200]
    - eq: ["json.code", 0]

执行后,提取值会落入 config/extract.yaml

4. 实战二:后续接口复用 token 与 user_id

4.1 方式一:自动鉴权(推荐)

yaml 复制代码
request:
  method: "POST"
  url: "/api/order/list"
  need_auth: true
  json:
    userId: "${user_id}"

说明:need_auth: true 会自动把 auth_token 注入请求头(auth / Authorization)。

4.2 方式二:手动 header 引用

yaml 复制代码
request:
  method: "GET"
  url: "/api/user/info"
  params:
    userId: "${user_id}"
  headers:
    Authorization: "Bearer ${auth_token}"

5. 实战三:业务 ID 串联(下单 -> 查询详情)

5.1 下单接口提取 order_no

yaml 复制代码
- project: "演示项目"
  module: "订单模块"
  api_name: "创建订单"
  title: "创建订单并提取order_no"
  base_url_key: "sale_admin_url"
  request:
    method: "POST"
    url: "/api/order/create"
    need_auth: true
    json:
      userId: "${user_id}"
      productId: 1001
      count: 1
  extract:
    order_no: "data.orderNo"
  validate:
    - eq: ["status_code", 200]
    - eq: ["json.code", 0]

5.2 订单详情接口复用 order_no

yaml 复制代码
- project: "演示项目"
  module: "订单模块"
  api_name: "订单详情"
  title: "通过order_no查询详情"
  base_url_key: "sale_admin_url"
  request:
    method: "GET"
    url: "/api/order/detail"
    need_auth: true
    params:
      orderNo: "${order_no}"
  validate:
    - eq: ["status_code", 200]
    - eq: ["json.code", 0]

6. 为什么每次执行前要清空 extract

conftest.py 会在会话开始时清理历史提取值,避免旧 token 污染新执行结果。

7. 常见失败原因与排查顺序

  • 登录接口先后顺序不对(登录文件名未排前)
  • extract 表达式错误,没取到 token
  • token 过期,环境数据变更
  • 变量名写错(提取是 order_no,引用写成 ${orderNo}

推荐排查顺序:

  1. logs/ 是否有"提取变量"日志
  2. config/extract.yaml 是否已写入变量
  3. 看后续请求日志中变量是否已替换成真实值
  4. 再检查断言和业务数据

本章验收标准

  • 你能完成"登录提取 token/user_id -> 下单提取 order_no -> 订单详情复用"的链路
  • 你能区分自动鉴权(need_auth: true)与手动 header 引用两种方式
  • 能解释 extract.yaml 在整条链路中的作用
相关推荐
测试那点事儿7 小时前
第6章 零基础接口自动化到 Jenkins 持续集成【报告查看与常见报错排查】
ci/cd·自动化·jenkins
Agent手记7 小时前
药物研发数据处理或GSP合规管理医药Agent推荐:2026数智医药全链路自动化实战
运维·人工智能·ai·自动化
大势智慧17 小时前
矿影智测版|矿山自动化测绘,省时精准更省心!
自动化·三维建模·智慧矿山·安全巡检·空间智能··露天矿山
zhihuishuxia__1 天前
Multiplex通讯(多路复用通讯)
网络·图像处理·数码相机·计算机视觉·自动化
大貔貅喝啤酒1 天前
接口测试_Postman(详细版)
javascript·测试工具·node.js·自动化·postman
李日灐1 天前
< 6 > Linux 自动化构建工具:makefile 详解 + 进度条实战小项目
linux·运维·服务器·后端·自动化·进度条·makefile
JZC_xiaozhong1 天前
跨系统审批自动化怎么做?从采购到销售合同的完整方案
大数据·运维·自动化·流程自动化·数据集成与应用集成·业务流程管理·异构数据集成
搞科研的小刘选手1 天前
【高届数传感机电会议】第十二届传感器、机电一体化和自动化系统国际学术研讨会(ISSMAS 2026)
运维·人工智能·自动化·控制·传感器·传感·机电
SimLine芯见1 天前
专为空管环境打造的KVM切换器,满足主备自动化高速无缝切换需求
运维·自动化