第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 在整条链路中的作用
相关推荐
GlobalSign数字证书6 小时前
小企业零运维 TLS 架构设计:证书生命周期管理(CLM)与自动化轮换策略的技术选型
运维·自动化
小小测试开发7 小时前
AI Agent 回归测试:Replay 录一次、CI 跑千遍,像 Jest 一样给非确定性系统写断言
人工智能·ci/cd
Nomarsgo8 小时前
机器视觉+六轴机械臂智能制造解决方案——基于联控Lionconit RMC-610构建视觉计算与机器人协同控制平台
科技·机器人·自动化·汽车·电脑·制造
小新讲网安9 小时前
云安全攻防实战:AWS与阿里云渗透测试全流程指南
安全·web安全·网络安全·阿里云·自动化·云计算·aws
纳米软件10 小时前
AIDC供电架构演进_从传统UPS到HVDC的测试挑战与验证方法
自动化·ate测试系统·aidc·服务器电源·电子测试测量
xiaoxiangsiyan11 小时前
RHCE2026云原生路线EX188和EX288完整备考指南
运维·网络·云原生·自动化
yinshuzhineng12 小时前
如何提升生产线自动化水平,降低人工成本?
运维·人工智能·自动化·制造
wechatbot88813 小时前
极客互动企业微信 SCRM 私域运营实战效果全景
大数据·汇编·微信·自动化·企业微信·rpa
weixin_4038101316 小时前
苹果群控带机量实测:一台电脑能稳定控多少台iPhone
自动化·iphone·跨境电商·苹果投屏·多媒体运营·安卓中控
Dream-Y.ocean16 小时前
具身智能落地实战:数字人驱动的全自动化舆情监控系统
运维·自动化