postman添加参数

在 Postman 中,你可以通过 Pre-request Script 动态添加请求参数(如查询参数、头信息或请求体数据)。以下是添加不同类型参数的几种常见方法及代码示例:

1. 添加查询参数(Query Parameters)

你可以使用 pm.request.url.query 来动态添加或修改查询参数。

// 添加单个查询参数
pm.request.url.addQueryParams("key=value");

// 添加多个查询参数
pm.request.url.addQueryParams([
    { key: "id", value: "123" },
    { key: "name", value: "John" }
]);

// 示例:动态生成查询参数
let userId = pm.environment.get("userId") || "defaultId";
pm.request.url.addQueryParams(`userId=${userId}`);

=================== test ====================
// 获取环境名
const currentEnvironment = pm.environment.name;
// console.log("Current environment:", currentEnvironment);

// // 可选:根据环境名称执行逻辑
let password = '';
if (currentEnvironment === "crmeb_local") {
    password = 'zpp222222';
} else if (currentEnvironment === "crmeb_pro") {
    password = '2f@7H!kQ9#zR4%vE';
}
// pm.request.url.query.upsert({key: "password", value: "zpp222222"});
//pm.request.url.query.set("password", "zpp222222");
pm.request.url.addQueryParams([
    { key: "password", value: password}
]);

注意

  • addQueryParams 方法会直接将参数附加到 URL 中。
  • 如果参数已存在,调用 addQueryParams 会追加新值,可能导致重复参数。
  • 你也可以使用 pm.request.url.query.all() 获取所有查询参数并进行处理。

来源


2. 修改现有查询参数

如果你需要修改已有查询参数的值,可以通过索引或键来操作。

// 修改第一个查询参数
pm.request.url.query[0].value = "newValue";

// 通过键修改特定参数
pm.request.url.query.all().forEach(param => {
    if (param.key === "key") {
        param.value = "updatedValue";
    }
});

注意:确保查询参数存在,否则可能需要先检查 pm.request.url.query.all() 是否为空。

来源


3. 添加请求头(Headers)

你可以通过 pm.request.headers 添加或修改请求头。

// 添加单个请求头
pm.request.headers.add({ key: "Authorization", value: "Bearer " + pm.environment.get("token") });

// 添加多个请求头
pm.request.headers.add([
    { key: "Content-Type", value: "application/json" },
    { key: "Custom-Header", value: "customValue" }
]);

示例:动态生成 token 并添加到请求头

const token = pm.environment.get("authToken") || "defaultToken";
pm.request.headers.add({ key: "Authorization", value: `Bearer ${token}` });

来源


4. 添加或修改请求体(Body)

如果你的请求需要动态设置请求体(如 JSON 或 form-data),可以使用 pm.request.body

JSON 请求体

// 设置 JSON 请求体
let body = {
    mode: "raw",
    raw: JSON.stringify({
        username: pm.environment.get("username") || "defaultUser",
        password: pm.environment.get("password") || "defaultPass"
    }),
    options: {
        raw: { language: "json" }
    }
};
pm.request.body.update(body);

来源

Form-data 请求体

// 设置 form-data 请求体
let body = {
    mode: "formdata",
    formdata: [
        { key: "login", value: pm.environment.get("login") || "user123" },
        { key: "amount", value: "100" }
    ]
};
pm.request.body.update(body);

来源


5. 使用动态变量

你可以使用 Postman 的动态变量或环境变量来生成参数值。例如,使用时间戳或随机 ID:

// 使用时间戳作为查询参数
pm.request.url.addQueryParams(`timestamp=${Date.now()}`);

// 使用 Postman 内置动态变量生成唯一 ID
pm.request.url.addQueryParams(`guid=${pm.variables.get("{$guid}")}`);

来源


6. 在集合或文件夹级别添加参数

如果需要在整个集合或文件夹的请求中添加参数,可以在集合或文件夹的 Pre-request Script 中设置:

// 在集合级别添加通用查询参数
pm.request.url.addQueryParams("api_key=" + pm.environment.get("apiKey"));

// 在集合级别添加通用头信息
pm.request.headers.add({ key: "X-API-Key", value: pm.environment.get("apiKey") });

步骤

  1. 打开 Postman,点击侧边栏中的集合或文件夹。
  2. 选择 Scripts 标签,切换到 Pre-request 标签。
  3. 输入脚本代码并保存。

来源


7. 调试 Pre-request Script

为了确保脚本正常工作,可以使用 Postman Console 查看日志:

console.log("Query Parameters:", pm.request.url.query.all());
console.log("Headers:", pm.request.headers.all());
console.log("Body:", pm.request.body.toString());

打开 Console

  • 点击 Postman 底部左侧的 Console 图标,或使用快捷键 Alt+Ctrl+C(Windows/Linux)或 Cmd+Option+C(Mac)。

来源


注意事项

  • 环境变量:确保所需的环境变量已设置(通过 pm.environment.set("key", "value") 或 Postman UI)。
  • 脚本执行顺序:集合级别的 Pre-request Script 先于文件夹级别,再先于请求级别的脚本执行。
  • 动态值:使用 pm.variables.get()pm.environment.get() 获取变量值,避免硬编码。
  • 错误处理:在脚本中加入错误检查,例如验证变量是否存在。

示例:检查变量是否存在

if (!pm.environment.get("userId")) {
    console.error("Error: userId is not set in environment variables");
    return;
}
pm.request.url.addQueryParams(`userId=${pm.environment.get("userId")}`);

综合示例

以下是一个综合示例,在 Pre-request Script 中添加查询参数、头信息和 JSON 请求体:

// 设置环境变量
pm.environment.set("userId", "12345");

// 添加查询参数
pm.request.url.addQueryParams([
    { key: "userId", value: pm.environment.get("userId") },
    { key: "timestamp", value: Date.now().toString() }
]);

// 添加请求头
pm.request.headers.add({ key: "Authorization", value: "Bearer " + pm.environment.get("token") });

// 设置 JSON 请求体
let body = {
    mode: "raw",
    raw: JSON.stringify({
        id: pm.environment.get("userId"),
        action: "create"
    }),
    options: { raw: { language: "json" } }
};
pm.request.body.update(body);

// 调试输出
console.log("Query Parameters:", pm.request.url.query.all());
console.log("Headers:", pm.request.headers.all());
console.log("Body:", pm.request.body.toString());

总结

通过 Postman 的 Pre-request Script,你可以动态添加查询参数、头信息或请求体数据,极大地提高 API 测试的灵活性和自动化程度。建议结合环境变量和 Postman Console 进行调试,以确保脚本按预期工作。

如果需要更具体的示例或有其他问题,请提供更多细节,我可以进一步优化答案!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容