如何在Postman前置脚本中校验请求体字段并阻止请求发送
Postman前置脚本校验请求体必填字段并终止请求
假设你的POST请求体格式如下:
{ "callbackUrl": "http://test.io", "secret": "ygc28gc2VjcmV0" }
要在Pre-req Script里校验callbackUrl和secret这两个必填字段,并且在校验不通过时阻止请求发送,按以下步骤写脚本:
1. 解析请求体并定义必填字段
先把请求体解析成可操作的JSON对象,同时列出所有需要校验的必填字段:
// 获取当前请求的请求体并解析为JSON const requestBody = pm.request.body.raw; let bodyData; try { bodyData = JSON.parse(requestBody); } catch (e) { pm.test("请求体格式错误", () => { throw new Error("请求体不是合法的JSON格式"); }); pm.setNextRequest(null); // 终止后续请求 return; } // 定义必填字段列表 const requiredFields = ["callbackUrl", "secret"];
2. 执行字段校验
遍历必填字段列表,检查每个字段是否存在且不为空值:
// 校验每个必填字段 requiredFields.forEach(field => { if (!bodyData.hasOwnProperty(field) || bodyData[field] === undefined || bodyData[field] === "") { pm.test(`必填字段校验失败: ${field}`, () => { throw new Error(`缺少必填字段 ${field} 或字段值为空`); }); pm.setNextRequest(null); // 终止请求发送 } });
关键说明
pm.setNextRequest(null)是核心:调用这个方法会直接终止当前请求的发送,不管后续逻辑- 用
pm.test()包裹错误提示,会在Postman的"Tests"标签页显示校验结果,方便排查问题 - 先做JSON格式校验,避免因请求体格式错误导致后续校验崩溃
内容的提问来源于stack exchange,提问作者Masi Boo
相关产品推荐
相关产品推荐

