Postman怎么把返回值放到查询参数_Postman查询条件关联设置方法

胖萱君_4806

胖萱君_4806

2026-11-10

299人浏览

原创

在 Tests 中提取 JSON 返回值需先用 JSON.parse() 解析 responseBody,再通过正确路径取字段并用 pm.environment.set() 设为环境变量;非 JSON 响应须加 try-catch 并改用正则或字符串方法安全提取。

postman怎么把返回值放到查询参数_postman查询条件关联设置方法

怎么在 Tests 里提取 JSON 返回值并设为环境变量

Postman 本身不自动解析响应体,必须手动用 JSON.parse() 转成对象才能取字段。如果跳过这步直接写 responseBody.token,脚本会静默失败,变量根本不会设置成功。

常见错误现象:pm.environment.set("xxx", responseBody.token) 看似简洁,实际返回 undefined,后续接口调用时参数变成 {{xxx}} 原样发送,400 或 401 错误频发。

  • 先加 try-catch 包裹解析逻辑,避免因非 JSON 响应(比如 502 HTML 页面)导致整个脚本中断
  • 确认字段路径是否准确——比如 data.data.token 和 data.token 差一个层级,就取不到值
  • 用 console.log() 打印中间结果,比如 console.log(json),比盲目猜结构快得多
  • 设环境变量用 pm.environment.set("key", value),不是 postman.setEnvironmentVariable(已废弃)

查询参数(Params)里怎么正确引用变量

变量名必须用双大括号包裹,且不能带空格或特殊字符;{{access_token}} 可以,{{ access_token }} 或 {{access-token}} 都会失效。

使用场景:GET 请求的 URL 查询参数、POST 的 x-www-form-urlencoded 表单字段、甚至 raw JSON body 里的字段值(只要该字段是字符串类型)。

  • 变量未定义时,Postman 不报错,只是原样发送 {{xxx}} 字符串,后端通常解析失败
  • 如果参数需要 URL 编码(比如城市名含中文),{{city}} 不会自动编码,得改用 {{encodeURIComponent(city)}} ——但注意:这个函数只能在 Pre-request Script 里调用,不能直接写在 Params 输入框中
  • 多个参数共用同一变量时,比如 token 同时用于 Header 和 Params,只需设一次变量,多处引用即可

为什么 Pre-request Script 有时比 Tests 更适合传参

Tests 在响应收到后执行,适合「保存上一个请求的结果」;Pre-request Script 在请求发出前执行,适合「动态生成当前请求的参数」。两者职责不同,混用会导致逻辑错乱。

Postman 12.27.7
Postman 12.27.7

Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。

下载

典型误用:在第二个接口的 Tests 里设变量,又想在同一个接口的 Params 里引用它——不可能,因为 Params 在 Tests 之前就已拼装完成。

  • 若需对变量做处理(如拼接字符串、截取、编码),必须放在 Pre-request Script 中,再赋值给另一个变量供 Params 引用
  • 例如:从环境变量 city 得到“北京”,想在 Params 里传 city=beijing,就得在 Pre-request Script 写:pm.environment.set("city_code", "beijing");
  • 全局变量(pm.globals)和环境变量(pm.environment)互不影响,别把 pm.globals.set 和 {{xxx}} 混用——除非你明确在 Globals 里设了,且没创建任何环境

返回值不是 JSON 怎么安全提取字段

遇到 HTML、XML、纯文本或格式错乱的响应,JSON.parse() 必然抛错,脚本中断。这时候得换正则或字符串方法,但必须加防御性判断。

错误示例:responseBody.match(/value="(.+?)"/)[1] ——如果匹配不到,[1] 会报 Cannot read property '1' of null。

  • 先用 responseBody.includes("expected_string") 粗略校验内容是否存在
  • 正则提取前检查匹配结果:const match = responseBody.match(/access_token=([^&]+)/); if (match && match[1]) { pm.environment.set("access_token", match[1]); }
  • HTML 场景慎用 match(),推荐用 DOMParser(仅限 Postman v10+ 支持)或更鲁棒的子串截取,比如 responseBody.substring(start, end)
  • 提取失败时,建议在 Tests 里加断言:tests["Extracted token"] = pm.environment.get("access_token") !== undefined;,方便快速定位哪步断了

变量作用域和执行时机是关联失效最常被忽略的点——不是代码写错了,而是没搞清 Tests 和 Pre-request Script 的先后关系,也不是 JSON 解析失败,而是压根没处理非 JSON 响应的兜底逻辑。

相关专题

更多
软件测试常用工具
软件测试常用工具

软件测试常用工具有Selenium、JUnit、Appium、JMeter、LoadRunner、Postman、TestNG、LoadUI、SoapUI、Cucumber和Robot Framework等等。测试人员可以根据具体的测试需求和技术栈选择适合的工具,提高测试效率和准确性 。

2023.10.13

5150

8

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

60

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

20

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

20

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

40

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

40

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

40

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

40

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

40

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Postman Native Git工作流指南
Postman Native Git工作流指南

共0课时 | 0人学习

Postman Vault密钥管理指南
Postman Vault密钥管理指南

共0课时 | 0人学习

Postman集合运行器使用指南
Postman集合运行器使用指南

共0课时 | 0人学习