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

如何在Postman中从HTTP响应body的script标签提取指定URL参数?

在Postman中从HTML响应的script标签提取URL参数并存入变量

假设你的接口返回的HTML响应中包含类似这样的script标签内容:

按照以下步骤编写Postman测试脚本,提取指定参数并保存为变量:

步骤1:编写测试脚本

在请求的「Tests」标签中粘贴以下代码:

// 获取完整响应文本
const responseText = pm.response.text();

// 匹配script标签内的window.location.href链接
const urlRegex = /window\.location\.href\s*=\s*["'](.*?)["']/;
const urlMatchResult = responseText.match(urlRegex);

// 检查是否匹配到目标链接
if (!urlMatchResult || urlMatchResult.length < 2) {
    console.error("未在响应中找到window.location.href的链接内容");
    return;
}
const targetUrl = urlMatchResult[1];

// 解析URL中的查询参数
// 处理相对路径:如果targetUrl是相对路径,补全请求的域名和协议
const fullUrl = new URL(targetUrl, `${pm.request.url.protocol}//${pm.request.url.host}`);
const queryParams = new URLSearchParams(fullUrl.search);

// 定义需要提取的参数列表
const paramsToExtract = ["token", "cookieToken", "user_id", "refresh_token", "expire_date"];

// 提取参数并设置为环境变量(可根据需求切换为全局/集合变量)
paramsToExtract.forEach(paramName => {
    const paramValue = queryParams.get(paramName);
    if (paramValue) {
        pm.environment.set(paramName, paramValue);
        console.log(`成功保存${paramName}到环境变量: ${paramValue}`);
    } else {
        console.warn(`未找到参数${paramName}`);
    }
});

步骤2:调整变量存储类型

如果不需要存到环境变量,可替换pm.environment.set为:

  • pm.globals.set:保存为全局变量
  • pm.collectionVariables.set:保存为集合变量

注意事项

  • 若响应中的script标签格式有差异(比如单引号、多余空格),可微调正则表达式urlRegex,确保能精准匹配到window.location.href后的链接
  • 如果目标URL是绝对路径,可直接使用new URL(targetUrl),无需补全域名

内容的提问来源于stack exchange,提问作者ali haji khaluie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:42:47