postman示例接口测试工具常用断言--脚本执行断言

场景 1:响应体是字典(对象)

假设接口返回的 JSON 数据如下:

{
  "user": {
    "id": 100,
    "name": "张三",
    "is_active": true,
    "roles": ["admin", "editor"]
  }
}

断言写法:

// 1. 检查字典中的字段值
pm.test("用户ID为100", function () {
    const data = pm.response.json();
    pm.expect(data.user.id).to.eql(100);  // 严格等于
});

// 2. 检查字段类型
pm.test("用户名为字符串类型", function () {
    const data = pm.response.json();
    pm.expect(data.user.name).to.be.a("string");
});

// 3. 检查嵌套字典中的数组
pm.test("角色包含admin", function () {
    const data = pm.response.json();
    pm.expect(data.user.roles).to.include("admin");  // 检查数组是否包含元素
});

场景 2:响应体是列表(数组)

[
  { "id": 1, "name": "张三" },
  { "id": 2, "name": "李四" }
]

断言写法:

// 1. 检查列表长度
pm.test("用户列表长度为2", function () {
    const data = pm.response.json();
    pm.expect(data).to.have.lengthOf(2);
});

// 2. 检查列表中的元素是否符合条件
pm.test("第一个用户的ID为1", function () {
    const data = pm.response.json();
    pm.expect(data[0].id).to.eql(1);  // 通过索引访问元素
});

// 3. 检查所有元素是否满足条件(高级用法)
pm.test("所有用户都有id和name字段", function () {
    const data = pm.response.json();
    data.forEach(user => {
        pm.expect(user).to.have.all.keys("id", "name");  // 检查每个字典的键
    });
});
3.常见错误避坑
// Postman中检查列表不为空
pm.expect(data).to.not.be.empty;

场景3:用户列表接口(列表 + 嵌套字典)

接口返回:

[
  {
    "id": 1,
    "name": "张三",
    "address": {
      "city": "北京",
      "zipcode": "100000"
    }
  },
  {
    "id": 2,
    "name": "李四",
    "address": {
      "city": "上海",
      "zipcode": "200000"
    }
  }
]

Postman 实现:

const data = pm.response.json();

// 检查所有用户字段
pm.test("所有用户都有必要字段", function () {
    data.forEach(user => {
        pm.expect(user).to.have.all.keys("id", "name", "address");
        pm.expect(user.address.zipcode).to.match(/^\d{6}$/);  // 正则匹配6位数字
    });
});

2.解析响应主体数据

解析Json数据:

const responseJson = apt.response.json();

解析 XML:

const responseJson = xml2Json(apt.response.text());

解析 CSV:

const parse = require('csv-parse/lib/sync');
const responseJson = parse(apt.response.text());

解析 HTML:

const $ = cheerio.load(apt.response.text());
//打印测试的 HTML
console.log($.html());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值