___postman Tests斷言

摘要:關於postman的斷言方法不少,在網上隨便搜尋下,能搜出一大推,什麼牛鬼蛇神都有,讓人眼花繚亂。。甚至在應用時出現錯誤。Test斷言都是根據js規則來寫的,對於我這種不懂js語言的來講確實不友好,也幸虧經常使用的斷言方式也很少,就那麼幾個。。本身蒐集和整理了8種方式......有從Tests右側添加的,也有經過本身編輯添加。。供本身查看__增強記憶。。json

1、檢驗請求是否成功。。個人理解是postman是否成功向服務器發送請求。。。服務器

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});      //能夠從Tests右側自接添加使用。"Status code is 200"能夠自行編輯,,post

    查看斷言結果測試

 

.................添加一段的響應數據,爲了更好的演示。。以轉換爲了json格式。。。spa

{
    "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"
            },3d

2、斷言響應數據中Status的狀態碼是否是"200"......代理

        .....在上面的響應中Status變換爲了"code"。。因此斷言"code"是否 === 200 code

    tests["//斷言響應中的code是否是 === 200"] = responseCode.code === 200;      //通過本身測試等於號用(===)或(==)都是能夠的。。blog

查看斷言結果 。。。字符串

 

3、斷言響應返回的數據中是否存在某個字段.............

        .......//斷言響應數據中是否存在__"個護、化妝" __字段    //該斷言可在Tests右側自行添加

 

    pm.test("//斷言是否存在__"個護、化妝" __字段", function () {

        pm.expect(pm.response.text()).to.include("個護、化妝");

    }); 

查看斷言結果。。。

 

4、轉化爲了json格式,,檢驗裏面的值是否正確。。

var jsonData = JSON.parse(responseBody);        //第一步.......表示先把響應數據轉化爲JSON字符串.....其中變量(jsonData)能夠自行定義......

需求:我要校驗響應數據中是否有 id == 26。。經過查看上面的代碼,很顯然。有。
pm.test("//斷言data.category[1].id === 26", function () {50
    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__

 

 

5、校驗響應時間

      。。。。校驗響應時間是否是<=300ms

    pm.test("//Response響應時間是否<=300ms", function () {pm.expect(pm.response.responseTime).to.be.below(300);});

查看斷言結果。。>>>>

 

 

6、校驗響應數中,返回的數據類型

      。。。。我要查看(序號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)表達式和第四種校驗方式裏的一致。。

 

7、斷言響應數據中是否存在某個元素

      。。。。參照上面的響應數據,校驗是否有pid這個元素

    tests["//斷言返回的數據中是否存在__pid__這個元素"] = responseBody.has("pid");

 

8、校驗響應數據中的Status是否是200或301

      。。。。。意思就是響應數據code是200或是301。。就表示時響應成功的。。 //該斷言能夠在Tests右側添加

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

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

相關文章
相關標籤/搜索