Postman预请求脚本中复用并修改JSON请求体变量
解决方案
1. 调整集合预请求脚本
先修改集合级预请求脚本,把标准请求体模板单独存储,同时初始化请求体变量:
// 定义标准请求体模板 const StandardCreateReq = { "FullName": "{{FullName}}", "ApplicantWebGuid": pm.environment.get('APPWEBGUID'), "Address": "Main Street" }; // 存储原始模板(供单个请求修改时复用) pm.environment.set("StandardCreateReq", JSON.stringify(StandardCreateReq)); // 初始化当前请求体为标准模板 pm.environment.set("CreateRequest", JSON.stringify(StandardCreateReq));
2. 单个请求的预请求脚本自定义字段
在需要修改字段的请求的预请求脚本中,执行以下步骤:
// 1. 从环境变量取出标准模板,解析为JS对象 let customReq = JSON.parse(pm.environment.get("StandardCreateReq")); // 2. 修改目标字段,以下为示例操作: // 替换ApplicantWebGuid为指定环境变量 customReq.ApplicantWebGuid = pm.environment.get('EXISTING_APPWEBGUID'); // 直接修改Address为特定值 customReq.Address = "Oak Avenue 456"; // 直接设置FullName的具体内容 customReq.FullName = "Jack Brown"; // 3. 将修改后的对象转为字符串,存回CreateRequest变量 pm.environment.set("CreateRequest", JSON.stringify(customReq));
3. 请求体配置不变
请求体中依然使用{{CreateRequest}}引用动态生成的请求体内容即可。
核心注意点
预请求脚本中不能直接用{{变量名}}获取环境变量,必须通过pm.environment.get("变量名")方法获取——这是你之前尝试解析修改失败的主要原因。另外,单独存储原始模板StandardCreateReq,能保证每个请求的修改都基于干净的标准结构,避免多请求间的修改互相干扰。
内容的提问来源于stack exchange,提问作者Morgan Forever
相关产品推荐
相关产品推荐

