【Postman】API 接口測試

Scriptjson

Postman 提供了一個強大的基於 Nodejs 的運行環境,容許開發人員在請求或集合中填加動態行爲,如編寫測試用例,動態參數,請求以前傳遞數據等。Postman 提供了兩個事件來填加 Javascript 代碼來實現特定行爲。分別爲
1.pre-request script 在請求發送以前
2.test script 在響應完成以後api

clipboard.png

簡單的測試用例數組

響應參數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

clipboard.png

變量讀取經過雙大括號包圍 {{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/

相關文章
相關標籤/搜索