不要被这个世界改变!|

Postman断言方法

这本来是个分享的,但插件不好使了,等有时间在搞一个
 
						// 状态码断言
// 快捷方式断言
pm.test("响应状态码是1XX", function() {
    pm.response.to.be.info;
});

pm.test("响应状态码是2XX", function() {
    pm.response.to.be.success;
});

pm.test("响应状态码是3XX", function() {
    pm.response.to.be.redirection;
});

pm.test("响应状态码是4XX", function() {
    pm.response.to.be.clientError;
});

pm.test("响应状态码是5XX", function() {
    pm.response.to.be.serverError;
});

pm.test("响应状态码是4XX或者5XX", function() {
    pm.response.to.be.error;
});

pm.test("响应状态码是200", function() {
    pm.response.to.be.ok;
});

pm.test("响应状态码是202", function() {
    pm.response.to.be.accepted;
});

pm.test("响应状态码是400", function() {
    pm.response.to.be.badRequest;
});

pm.test("响应状态码是401", function() {
    pm.response.to.be.unauthorized;
});

pm.test("响应状态码是403", function() {
    pm.response.to.be.forbidden;
});

pm.test("响应状态码是404", function() {
    pm.response.to.be.notFound;
});

pm.test("响应状态码是429", function() {
    pm.response.to.be.rateLimited;
});

// 指定状态码断言
pm.test("响应状态码是302", function() {
    pm.response.to.have.status(302);
});

pm.test("响应状态码原因是 Not Found", function() {
    pm.response.to.have.status("Not Found");
});

pm.test("响应状态码是200、201、202中的任意一个", function() {
    pm.expect(pm.response.code).to.be.oneOf([200, 201, 202]);
});

// 借助 true | false 断言,不建议使用这种方式(断言失败时的提示信息"AssertionError: expected false to be true"可读性不够强)
pm.test("响应状态码是200", function() {
    pm.expect(pm.response.code === 200).to.be.true;
});

// 响应时间断言
pm.test("响应时间小于400毫秒", function() {
    pm.expect(pm.response.responseTime).to.be.below(400);
});

// Cookie 断言
pm.test("Cookie中存在__cfduid", function() {
    pm.expect(pm.cookies.has("__cfduid")).to.be.true;
});

pm.test("Cookie中存在__cfduid", function() {
    pm.expect(pm.cookies.get("__cfduid")).to.be.not.null;
});

// Header 断言
pm.test("响应头包含Content-Type", function () {
    pm.response.to.have.header("Content-Type");
});

pm.test("响应头包含Date", function () {
    pm.expect(pm.response.headers.has('Date')).to.be.true;
});

pm.test("响应头存在Date", function () {
    pm.expect(pm.response.headers.get('Date')).to.be.not.null;
});

// 响应体断言
pm.test("响应体中results数组长度为1", function() {
    var jsonBody = pm.response.json();
    pm.expect(jsonBody.results).to.have.lengthOf(1);
});

// 要求表达式结果为 true(这里的表达式为 gender !== null && gender !== 'male')
pm.test("gender不等于male", function() {
    var gender = pm.response.json().gender;
    pm.expect(gender !== null && gender !== 'male').to.be.true;
});

// 要求表达式结果为 false
pm.test("hasPerm为false", function() {
    pm.expect(pm.response.json().hasPerm).to.be.false;
});

// 要求响应体的 username 字段为 null
pm.test("username为null", function() {
    pm.expect(pm.response.json().username).to.be.null;
});

// 要求响应体的 username 字段非 null
pm.test("username非null", function() {
    pm.expect(pm.response.json().username).to.be.not.null;
});


pm.test("第一个用户的gender不是male", function() {
    var jsonBody = pm.response.json();
    pm.expect(jsonBody.results[0].gender).to.not.equals("male");
});

// equals 可以简写成 eql

pm.test("第一个用户的gender不是male", function() {
    var jsonBody = pm.response.json();
    pm.expect(jsonBody.results[0].gender).to.not.eql("male");
});

pm.test("第一个用户的gender是male", function() {
    var jsonBody = pm.response.json();
    pm.expect(jsonBody.results[0].gender).to.equals("male");
});

// equals 可以简写成 eql

pm.test("第一个用户的gender是male", function() {
    var jsonBody = pm.response.json();
    pm.expect(jsonBody.results[0].gender).to.eql("male");
});

// 引入 chai 模块并使用 assert
chai = require('chai');
chai.assert(pm.response.json().id !== null, '断言响应体的id不等于null失败');
						//该片段来自于http://www.codesnippet.cn/detail/2005201815279.html