Scriptjson
Postman 提供了一個強大的基於 Nodejs 的運行環境,容許開發人員在請求或集合中填加動態行爲,如編寫測試用例,動態參數,請求以前傳遞數據等。Postman 提供了兩個事件來填加 Javascript 代碼來實現特定行爲。分別爲
1.pre-request script 在請求發送以前
2.test script 在響應完成以後api
簡單的測試用例數組
響應參數dom
{"statusCode":200,"result":["swimwear","bikinis","two-piece outfits","tops","dresses","tees"],"msg":""}
測試腳本post
// example using pm.response.to.have pm.test("response is ok", function () { pm.response.to.have.status(200); // 響應狀態碼必須爲200 }); pm.test("response must be valid and have a body", function () { // assert that the status code is 200 pm.response.to.be.ok; // 響應體是否OK pm.response.to.be.json; // 響應體是否爲 json 格式,它也會較驗響應體是否存在,若是寫了這個,上面這個斷言就沒有必要了 }); pm.test("response is correct", function () { var jsonData = pm.response.json(); pm.expect(jsonData.statusCode).to.equal(200); // 響應體 statusCode 字段值等於200,區分數據類型,如響應的字段串200,那這裏就較驗通不過 pm.expect(jsonData.result).to.be.an('array') // 響應體 result 字段必須是個數組 }); // json schema 較驗 var schema = { "items": { "type":"string" } } pm.test("響應參數格式不合法", function () { var jsonData = pm.response.json(); pm.expect(tv4.validate(jsonData.result, schema)).to.be.true; // scheme 較驗是經過 tv4 這個類庫來實現的,Postman 內置了它,並不須要額外填加 })
pm.response 表示獲取到響應體
pm.response.to.be 聲名預約義的規則,如 pm.response.to.be.json 表示響應體爲 json 格式。測試
變量ui
變量有5種類型,從外到裏優先級從低到高spa
變量讀取經過雙大括號包圍 {{variable}}.net
變量傳遞能夠經過設置設量來實現code
pm.globals.set() // 全局變量 pm.environment.set() // 環境變量 pm.variables.set(); // 本地變量
同時還提供了三個動態變量
{{$guid}} //添加v4風格的guid {{$timestamp}} //添加當前時間戳 {{$randomInt}} //添加0到1000之間的隨機整數
循環和分支
在實現真實邏輯時,每每須要根據不一樣的狀況作不一樣的操做,執行不一樣的接口。能夠經過
postman.setNextRequest("request_name")
request_name 爲自已時表示循環,切注循環必定要有結束條件
postman.setNextRequest(null) //這個表示結束執行流程
參考
斷言腳本語法:https://www.chaijs.com/api/bdd/
JSON Scheme 自動生成:https://www.jsonschema.net/