每一個人都贊成測試很重要,但並非全部人都會去作。每當你添加新的代碼,測試能夠保證你的api按照預期運行。經過postman,你能夠爲全部api編寫和運行測試腳本。html
在postman中,你能夠經過添加腳本到請求當中,來使用動態變量、在請求之間傳遞數據以及編寫測試。寫在Pre-request Script
tab中的代碼會在請求發送以前執行,而寫在Tests
tab中的代碼會在響應到達以後執行。前端
Test Results
tab能夠看到對應的測試結果。另外爲了能夠快速編寫測試腳本,postman提供了一些通用的代碼片斷(code snippets)。以下是對應的功能結構圖:
pm.test("response is ok", function () {
pm.response.to.have.status(200);
});
pm.test("environment to be production", function () {
pm.expect(pm.environment.get("env")).to.equal("production");
});
pm.test("response must be valid and have a body", function () {
pm.response.to.be.ok;
pm.response.to.be.withBody;
pm.response.to.be.json;
});
var schema = {
type: 'object',
properties: {
appID: {
type: 'number',
},
avatar: {
type: 'string',
}
}
}
pm.test('Schema is valid', function() {
var jsonData = pm.response.json().data;
pm.expect(tv4.validate(jsonData, schema)).to.be.true;
});
複製代碼
爲了遵循postman的規範,全部測試代碼必須寫在pm.test()的function裏面。第一個參數是該測試的名稱,第二個參數是一個返回boolean值的函數。也就是說這個函數若是返回true,表示測試經過,不然測試失敗。web
這個斷言函數是基於一個JavaScript測試庫ChaiJS BDD構建的。經過相似的語法,你能夠很方便的對響應裏的數據或者一些變量進行斷言。npm
這個對象能夠提供對響應常見的檢查。如狀態碼是否符合預期等。json
第一個參數是被檢驗的數據,第二個參數是json schema。經過則返回true,失敗則返回false。若是要快速學習json的schema規範,能夠參考https://www.jianshu.com/p/8278eb2458c4?winzoom=1 tv4是postman一個內置的json validator。它基於json-schema draft v4,經過豐富的校驗語法來校驗簡單的值或者複雜的json對象。api
經常使用api詳情請查看https://learning.getpostman.com/docs/postman/scripts/postman_sandbox_api_referencebash
咱們一般會給多個api運行測試,由於咱們有不少api,或者一個測試場景由多個api所組成。因此咱們會把他們添加到一個集合(Collections)當中來運行。app
這裏注意,請求是按照Collections當中的順序線性執行。若是想改變執行順序,能夠修改Collections中的順序,或者使用postman.setNextRequest("request_name")
;若是想要中止整個流程,能夠執行postman.setNextRequest(null);
函數
1.從postman當中導出爲json格式的Collections工具
2.全局安裝newman,npm install -g newman
3.執行命令,
newman run sample-collection.json
詳細使用方法請查看,newman
一個通用的方案是在代碼在提交後,或者合入倉庫分支後,執行 newman -c jenkins_demo.postman_collection --exitCode 1
。注意到--exitCode參數,這是爲了告訴Jenkins,若是測試失敗,將會返回值爲1的退出碼。這樣就Jenkins就能夠得知測試運行的成功與否了。
咱們都知道,工欲善其事必先利其器。對於基於api的測試而言,postman不失爲一個不錯的工具。另外對於web開發人員來講,postman也是一個經常使用的http調試工具。熟練的掌握它,也能必定程度地提升咱們的工做效率。