postman 腳本學習


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

 


免責聲明!

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



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