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]);
    });



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM