Postman常用的断言

Postman常用的断言

在做接口测试时,在某一些场景下需要添加断言,对接口进行判断。postman在“Tests”中提供了比较多的断言方式来帮助接口测试的断言。

文章中使用的示例接口,是用moco框架模拟的:
[  
    {    
        "description":"模拟登陆接口,并且用ponstman测试和断言",    
        "request":{      
            "method":"post",
            "uri":"/login",
            "json":{        
                "username":"admin",
                "password":"admin",        
                "smsCode":"k8y8F8"      
            }    
        },
        "response":{
            "status":200,
            "json":{
                "rsCd":"00000",
                "rspInf":"操作成功",
                "rspType":0,
                "data":{
                      "token":"0acd1240",
                      "loginTime":1548607006000,
                      "role":"admin"
                },
             "V":"456",
             "responseTime":"20190128"
            }
        }  
    }
]

1、判断请求返回的状态为200,200就是正常

pm.test("Status code is 200", function () {

    pm.response.to.have.status(200);

});        // 判断返回响应中的其它字段的值时,同样使用该方法可以实现

或者使用

tests["Status code is 200"] = responseCode.code == 200;

"Status code is 200":此处的文字信息可以任意定义(填写),只要能够方便我们自己辨别是什么意思就可以了

(运行的结果在“Test Results”中查看)

2、判断请求返回中其它字段的值(或状态)

pm.test("Body matches string", function () {

    pm.expect(pm.response.text()).to.include("string_you_want_to_search");

});

"Body matches string":此处的文字信息可以任意定义(填写),只要能够方便我们自己辨别是什么意思就可以了

"string_you_want_to_search":此处填写的时我们需要判断的字段的值

3、获取json数据,并校对返回值的正确性

{

    "rsCd": "00000",

    "rspInf": "操作成功",

    "rspType": 0,

    "data": {

        "token": "0acd1240",

        "loginTime": 1548607006000,

        "role": "admin"

    },

    "V": "456",

    "responseTime": "20190128"

}

var res = JSON.parse(responseBody);        // 先获取到返回的json数据

tests["rsp的值是否为操作成功"] = res.rspInf == "操作成功";

tests["判断data的第二个元素的值是否正确"] = res.data.loginTime === 1548607006000;

 

或者

pm.test("判断psCd是否=00000", function () {

    var res = pm.response.json();

    pm.expect(res.rsCd).to.eql("00000");        //    判断rsCd的值是否正确

});

 

pm.test("判断role是否=admin", function () {

    var jsonData = pm.response.json();

    pm.expect(jsonData.data.role).to.eql("admin");            //    "判断data的第三个元素的值是否正确

});

pm.test("返回的json数据中是否有rsCd", function () {

    pm.response.to.have.jsonBody("rsCd");        // 判断json数据中是否含有rsCd这个字段

});

4、判断响应时间

pm.test("Response time is less than 200ms", function () {

    pm.expect(pm.response.responseTime).to.be.below(200);

});

"Response time is less than 200ms":此处的文字信息可以任意定义(填写),只要能够方便我们自己辨别是什么意思就可以了

5、判断返回数据的类型

var res = JSON.parse(responseBody);        // 先获取到返回的json数据

tests["判断loginTime的值的类型是否是number"] = typeof(res.data.loginTime) === "number";

tests["判断rsCd的值的类型师是否是string"] = typeof(res.data.loginTime) == "number";

// 比较常用的集中类型:number、string、object、array、boolean、undefined

6、判断返回数据中是否存在某个元素

tests["判断返回的元素中是否有data"] =responseBody.has("data");

tests["判断返回的元素中是否有rsCd"] =responseBody.has("rsCd");

 

  • 22
    点赞
  • 172
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值