pm的腳本斷言庫默認似乎是集成chaijs的。所以重點也要掌握chaijs的用法,其實和其他斷言庫類似。玩着玩着就會了。推薦看看 簡書 chaijs 中文文檔
傳送門:
# pm 腳本的教程 https://learning.getpostman.com/docs/postman/scripts/test_scripts/ # pm 沙盒環境的一些 api https://learning.getpostman.com/docs/postman/scripts/postman_sandbox_api_reference/ # chaijs 官方 github https://github.com/chaijs/chai # 簡書 chaijs 中文文檔 https://www.jianshu.com/p/f200a75a15d2 # chaijs 官方文檔 https://www.chaijs.com/api/
# qq 郵箱設置白名單
noreply@notifications.getpostman.com
# 可以呼出chrome dev tool,所以test腳本中可以使用console.log ctrl + shift + i
判斷數組長度
pm.test("返回數組長度必須大於0", function () { var jsonData = pm.response.json(); pm.expect(jsonData).to.have.length.above(0); });
判斷是否擁有屬性
pm.test("對象應該擁有指定7個屬性", function () { var jsonData = pm.response.json(); pm.expect(jsonData).to.have.property("attitude"); pm.expect(jsonData).to.have.property("inefficient"); pm.expect(jsonData).to.have.property("plug"); pm.expect(jsonData).to.have.property("notOpen"); pm.expect(jsonData).to.have.property("window"); pm.expect(jsonData).to.have.property("hardware"); pm.expect(jsonData).to.have.property("inconvenient"); pm.expect(jsonData).to.have.property("other"); });
但這種寫法太冗余了,可以更靈活的書寫
// have.all.keys:目標對象必須且僅能擁有全部傳入的屬性名(不能多,不能少) // contains.all.keys:目標對象必須至少擁有全部傳入的屬性名,但是它也可以擁有其它屬性名(只能多,不能少) // have.any.keys:目標必須至少存在一個傳入的屬性名才能通過測試(至少一個) pm.test("對象應該擁有指定7個屬性", function () { var jsonData = pm.response.json(); pm.expect(jsonData).to.have.all.keys("attitude", "inefficient", "plug", "notOpen", "window", "hardware", "inconvenient", "other"); });