在 postman 中,可以通过 JavaScript 脚本从响应中的 URI 提取参数值(通过 ?
和 &
分隔的查询参数),并将这些值设置为环境变量。
响应体如下:
包含一个 URL
{
"redirect_uri": "https://www.baidu.com/callback?code=12345&state=xyz"
}
- 需要从
redirect_uri
中提取code
和state
的值。
脚本代码
放入 Tests 或 Pre-request Script 中,代码如下:
// 获取响应体
const response = pm.response.json();
// 提取目标 URI,例如 response.redirect_uri
const uri = response.redirect_uri;
// 定义一个函数来解析 URI 中的查询参数
function getQueryParams(url) {
let query = url.split('?')[1]; // 获取 "?" 后面的部分
if (!query) return {};
return query.split('&').reduce((params, param) => {
let [key, value] = param.split('=');
params[decodeURIComponent(key)] = decodeURIComponent(value);
return params;
}, {});
}
// 获取查询参数对象
const queryParams = getQueryParams(uri);
// 将参数值设置为 Postman 的环境变量
Object.keys(queryParams).forEach(key => {
pm.environment.set(key, queryParams[key]);
console.log(`Set environment variable: ${key} = ${queryParams[key]}`);
});
response.redirect_uri
: 获取响应中包含 URI 的字段,修改为你的实际字段名。getQueryParams
: 一个通用函数,提取 URI 中的查询参数并返回一个对象。pm.environment.set
: 将提取的参数和值分别设置为环境变量。