You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman断言数组属性时出现Assertion Error的解决求助

问题修复方案

问题根源

你的JSON结构中,外层courses是一个对象数组,而你要断言的是数组中对象内部的courses字段(即["java", "selenium"])。原脚本直接访问jsonData.courses,拿到的是外层的对象数组(内容为[{id:1, name:"John", ...}]),并非目标字符串数组,因此断言时会触发undefined相关错误。

修复后的测试脚本

直接定位到目标数组即可,由于外层courses数组仅包含一个元素,通过索引[0]获取对象后再访问内部的courses字段:

var jsonData = pm.response.json();
pm.test("Test array properties", () => {
  // 定位到对象内部的courses数组
  const targetCourses = jsonData.courses[0].courses;
  pm.expect(targetCourses).to.include("java");
  pm.expect(targetCourses).to.have.members(["java", "selenium"]);
});

补充说明

如果外层courses数组可能包含多个对象,可根据业务逻辑匹配目标对象(比如通过id或name筛选),示例如下:

var jsonData = pm.response.json();
pm.test("Test array properties for John", () => {
  // 找到name为John的对象
  const johnCourse = jsonData.courses.find(item => item.name === "John");
  pm.expect(johnCourse.courses).to.include("java");
  pm.expect(johnCourse.courses).to.have.members(["java", "selenium"]);
});

内容的提问来源于stack exchange,提问作者Subhasish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 20:55:54