• postman Tests断言


    摘要:关于postman的断言方法很多,在网上随便搜寻下,能搜出一大推,什么牛鬼蛇神都有,让人眼花缭乱。。甚至在应用时出现错误。Test断言都是根据js规则来写的,对于我这种不懂js语言的来说确实不友好,也幸好常用的断言方式也不多,就那么几个。。自己搜集和整理了8种方式......有从Tests右侧添加的,也有通过自己编辑添加。。供自己查看__加强记忆。。

    一、检验请求是否成功。。我的理解是postman是否成功向服务器发送请求。。。

    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });      //可以从Tests右侧自接添加使用。"Status code is 200"可以自行编辑,,

        查看断言结果

    .................添加一段的响应数据,为了更好的演示。。以转换为了json格式。。。

    {
        "code": 200,
        "data": {
            "category": [
                {
                    "id": "25",
                    "name": "个护、化妆",
                    "pid": "0",
                    "dept": "1",
                    "sort": "121",
                    "orders": "90",
                    "pre_str": "",
                    "icon": "/upload/goods/201710/3492a8d78082e4cb2d0ec5d5790112db.JPG",
                    "ad": "",
                    "left_ad": "",
                    "is_show": "1",
                    "is_chicken": "0"
                },
                {
                    "id": "26",
                    "name": "食品、饮料",
                    "pid": "0",
                    "dept": "1",
                    "sort": "119",
                    "orders": "94",
                    "pre_str": "",
                    "icon": "/upload/goods/201710/92f3101fda20550793d7fb8360a9efab.JPG",
                    "ad": "",
                    "left_ad": "",
                    "is_show": "1",
                    "is_chicken": "0"
                },

    二、断言响应数据中Status的状态码是不是"200"......

            .....在上面的响应中Status变换为了"code"。。所以断言"code"是否 === 200 

        tests["//断言响应中的code是不是 === 200"] = responseCode.code === 200;      //经过自己测试等于号用(===)或(==)都是可以的。。

    查看断言结果 。。。

    三、断言响应返回的数据中是否存在某个字段.............

            .......//断言响应数据中是否存在__"个护、化妆" __字段    //该断言可在Tests右侧自行添加

     

        pm.test("//断言是否存在__"个护、化妆" __字段", function () {

            pm.expect(pm.response.text()).to.include("个护、化妆");

        }); 

    查看断言结果。。。

    四、转化为了json格式,,检验里面的值是否正确。。

    var jsonData = JSON.parse(responseBody);        //第一步.......表示先把响应数据转化为JSON字符串.....其中变量(jsonData)可以自行定义......

    需求:我要校验响应数据中是否有 id == 26。。通过查看上面的代码,很显然。有。
    pm.test("//断言data.category[1].id === 26", function () {
        var jsonData = pm.response.json();                     
        pm.expect(jsonData.data.category[1].id).to.eql("26");
    });  

    //第二步,,,,在Tests右侧添加断言..要做修改部分___pm.expect(jsonData.data.category[1].id).to.eql("26");__、、其中括号里的_jsonData_是第一步操作中自己定义的变量,我定义的就是(jsonData)>>>___data.category[1].id___如我要查看(序号1)员工的id,就要把总代理data和它的上级领导category也带进去,并在category后面表明要查找的员工的序号__[1]__。。。如果查看(序号0)员工的id,,,就改为__data.category[0].id__

     

    五、校验响应时间

          。。。。校验响应时间是不是<=300ms

        pm.test("//Response响应时间是否<=300ms", function () {pm.expect(pm.response.responseTime).to.be.below(300);});

    查看断言结果。。>>>>

    六、校验响应数中,返回的数据类型

          。。。。我要查看(序号0)员工的name 是不是 string>>>>>就是校验"个护、华妆"是不是字符串类型

        var jsonData = JSON.parse(responseBody);    //第一步先转化为json字符串。。其中变量(jsonData)可以自行定义......
        tests["//data.category.name__valuse的值的类型是不是string"] = typeof(jsonData.data.category[0].name) == "string";

              。。。。。(jsonData.data.category[0].name)表达式和第四种校验方式里的一致。。

    七、断言响应数据中是否存在某个元素

          。。。。参照上面的响应数据,校验是否有pid这个元素

        tests["//断言返回的数据中是否存在__pid__这个元素"] = responseBody.has("pid");

    八、校验响应数据中的Status是不是200或301

          。。。。。意思就是响应数据code是200或是301。。就表示时响应成功的。。 //该断言可以在Tests右侧添加

        pm.test("//响应status code 是200,301就算成功", function () {

          pm.expect(pm.response.code).to.be.oneOf([200,301]);
        });



     

  • 相关阅读:
    c#泛型的使用
    如何调试由于heap corruption导致的程序崩溃的简单示例
    Windows的SEH机理简要介绍
    利用定制行为扩展WCF之利用MessageInsepctor behaviourExtension扩展WCF行为(自定义消息头)
    欧拉函数
    JZOJ.1349 最小公约数
    关于扩展中国剩余定理(excrt)的证明与拙见
    【USACO 2021 US Open, Gold】United Cows of Farmer John & JZOJ7220
    线性求逆元
    【USACO 2021 January Contest, Platinum】Problem 1. Sum of Distances JZOJ.7241
  • 原文地址:https://www.cnblogs.com/97xiaolai/p/11169695.html
Copyright © 2020-2023  润新知