Postman脚本编写:验证邮编70597对应Stuttgart Degerloch存在
Postman动态验证JSON响应的测试脚本实现
核心思路
不再依赖硬编码的数组索引,而是通过遍历响应数据,根据邮编条件动态定位目标条目,再验证对应地名是否符合预期。
单一条目验证脚本(匹配首个符合条件的条目)
在Postman的Tests标签中写入以下代码:
// 解析响应的JSON数据 const responseData = pm.response.json(); // 动态查找邮编为"70597"的条目 const targetEntry = responseData.find(entry => entry.zipcode === "70597"); // 执行验证断言 pm.test("邮编70597的条目存在且地名为Stuttgart Degerloch", () => { // 确保目标条目存在 pm.expect(targetEntry).to.exist; // 验证地名匹配 pm.expect(targetEntry.placeName).to.equal("Stuttgart Degerloch"); });
多条目验证脚本(所有符合邮编条件的条目都需匹配地名)
如果响应中可能存在多个邮编为"70597"的条目,可使用以下脚本验证全部条目:
const responseData = pm.response.json(); // 筛选所有邮编为"70597"的条目 const targetEntries = responseData.filter(entry => entry.zipcode === "70597"); pm.test("所有邮编70597的条目地名为Stuttgart Degerloch", () => { // 确保至少存在一个符合条件的条目 pm.expect(targetEntries).to.not.be.empty; // 遍历验证每个条目的地名 targetEntries.forEach(entry => { pm.expect(entry.placeName).to.equal("Stuttgart Degerloch"); }); });
注意事项
- 若你的响应JSON结构并非直接是数组(比如数据嵌套在
data字段下),需调整获取数组的路径,例如responseData.data.find(...)。 - 请根据实际响应中的字段名调整代码(比如把
placeName换成你实际的地名字段名)。
内容的提问来源于stack exchange,提问作者Farhan Soomro
相关产品推荐
相关产品推荐

