📜  postman的断言(1)

📅  最后修改于: 2023-12-03 14:45:36.619000             🧑  作者: Mango

Postman断言

在API开发过程中,我们通常需要对API的响应做验证,确保API返回的数据满足我们的期望。这时,Postman作为一款强大的API调试工具,提供了断言功能,帮助我们进行快速有效的数据验证。

什么是断言?

断言是一种验证API响应的方法,它通过判断API返回的数据是否符合预期来判定测试是否通过。在Postman中,我们可以使用多个类型的断言来验证不同种类的数据,如文本、数值、布尔值、JSON、XML等。

Postman中的断言类型
响应代码

响应代码断言用于验证HTTP响应状态码是否正确。我们可以通过在Tests标签下添加以下代码进行验证:

pm.test("Verify status code is 200", function () {
    pm.response.to.have.status(200);
});

上面的代码用于验证HTTP响应状态码是否为200。其中,pm.response.to.have.status(200)表示验证响应码是否为200。

响应头

响应头断言用于验证HTTP响应头信息是否正确。我们可以通过在Tests标签下添加以下代码进行验证:

pm.test("Verify response header", function () {
    pm.response.to.have.header("Content-Type", "application/json; charset=utf-8");
});

上面的代码用于验证响应头中Content-Type的值是否正确。其中,pm.response.to.have.header("Content-Type", "application/json; charset=utf-8")表示验证Content-Type的值是否为application/json; charset=utf-8。

响应时间

响应时间断言用于验证API的响应时间是否满足预期。我们可以通过在Tests标签下添加以下代码进行验证:

pm.test("Verify response time is less than 500ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(500);
});

上面的代码用于验证API的响应时间是否小于500ms。其中,pm.expect(pm.response.responseTime).to.be.below(500)表示验证响应时间是否小于500ms。

文本与数值

文本与数值的断言用于验证响应中特定字段的值是否符合预期。我们可以通过在Tests标签下添加以下代码进行验证:

pm.test("Verify response contains expected text", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.name).to.eql("Postman");
});

pm.test("Verify response contains expected value", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.age).to.eql(18);
});

上面的代码用于验证响应json数据中name字段的值是否为"Postman",age字段的值是否为18。其中,pm.expect(jsonData.name).to.eql("Postman")表示验证name的值是否为"Postman",pm.expect(jsonData.age).to.eql(18)表示验证age的值是否为18。

JSON格式

JSON格式的断言用于验证响应的JSON数据是否符合预期。我们可以通过在Tests标签下添加以下代码进行验证:

pm.test("Verify JSON response schema", function () {
    var jsonData = pm.response.json();
    var jsonSchema = {
        "type": "object",
        "required": ["id", "name", "age"],
        "properties": {
            "id": {
                "type": "integer"
            },
            "name": {
                "type": "string"
            },
            "age": {
                "type": "integer"
            }
        }
    };
    pm.expect(tv4.validate(jsonData, jsonSchema)).to.be.true;
});

上面的代码用于验证API返回的JSON数据是否符合预先定义好的JSON Schema。其中,tv4.validate(jsonData, jsonSchema)用于验证返回的JSON数据是否符合JSON Schema的规范。

总结

断言是API测试的重要环节,可以有效验证API的正确性,帮助我们避免开发过程中可能出现的问题。Postman提供了多种类型的断言,可以应用到不同数据类型上。对于开发人员而言,熟练掌握Postman的断言使用方法,能够提高API开发和测试的效率。