摘要:關於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]); });