Postman中斷言的使用以及斷言常用代碼片段詳解

首先,如果有開發經驗或者測試的一些經驗的話,對postman的使用情況都會有一些瞭解的:

  • 在開發接口的時候需要快速的去調用接口,以便調試
  • 在測試的時候需要非常方便的去調用接口,來通過各種不同的參數去測試接口的輸出
  • 有時有的接口調用是需要保存下來進行反覆執行的
  • 在接口測試的過程中添加一些斷言(預期和真實運行的結果進行對比)

目錄

1、對Postman界面進行簡單的瞭解

2、斷言界面介紹

3、發送GET請求並增加請求狀態和對返回結果內容的斷言並執行

4、對斷言中的打印結果進行查看

5、常用斷言代碼片段介紹


Postman的實用資料:

postman官網及下載地址:https://www.getpostman.com/downloads/  (有MAC版和WIN版的,具體的安裝步驟略過,安裝完成後啓動時會讓註冊賬號和密碼,可以點擊下方的免費使用,如果想了解postman的更多功能的話,建議註冊下,我已經註冊,嘿嘿)

postman官方文檔:https://learning.getpostman.com/docs/postman/launching-postman/installation-and-updates/

1、對Postman界面進行簡單的瞭解

  • 1、爲歷史記錄,可以查看當天的以及以前調試的接口
  • 2、爲保存調試的接口
  • 3、爲邀請其他人加入
  • 4、爲新建一個api接口請求界面
  • 5、爲選擇訪問請求的方式
  • 6、爲輸入api的url
  • 7、爲根據不同的情況設置不同的環境
  • 8、發送請求
  • 9、爲發送請求時設置不同的參數
  • 10、爲獲取API接口請求的結果
  • 其中在10的地方有四種不同方式可以查看API接口請求的結果(Pretty、Raw、Preview、Visualize四種不同的模式)

2、斷言界面介紹

  • ① 爲增加斷言的區域
  • ② 爲常用的一些斷言的代碼片段(雙擊其中的一條後就會在 ① 中的區域出現)
  • ③ 爲發送get請求後返回的內容

3、發送GET請求並增加請求狀態和對返回結果內容的斷言並執行

調試的結果是:其中對返回內容條數的斷言失敗,但是中間有對返回內容的條數的打印情況可以進行查看

4、對斷言中的打印結果進行查看

調出執行結果打印窗口操作如下:

方法一:

方法二:

此時就會調出postman的調試結果窗口

發現返回的數據一共只有9條數據,紅色框的窗口就是上一步操作出來的窗口

注:“===” 在js裏面會看到

兩個紅色框中的斷言內容其實都是一個意思,實現的功能是一樣的,紅色框 1 中的是以前的寫法;紅色框 2 中的內容是根據右面的常用斷言的代碼片段寫出來的,既方便又快捷,只需要在裏面添加代碼就可以,常用的代碼片段下面有詳細的介紹哈

注:上面的紅色框框中的斷言寫法(就是 1 中註釋掉的那種寫法),根據官方的介紹,1 中有的已經棄用了,有的不建議使用,建議大家採用 2 中寫法

5、常用斷言代碼片段介紹

常用代碼斷言片段 含義 代碼片段示例
get an environment variable 獲取環境變量 pm.environment.get("variable_key")
get a global variable 獲取全局變量 pm.globals.get("variable_key")
get a variable 獲取變量 pm.variables.get("variable_key")
set an environment variable 設置環境變量 pm.environment.set("variable_key", "variable_value")
set a global variable 設置全局變量 pm.globals.set("variable_key", "variable_value")
clear an environment variable 清除環境變量 pm.environment.unset("variable_key")
clear a global variable 清除全局變量 pm.globals.unset("variable_key")
Send a request 發送一個異步請求 pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    console.log(response.json());
})
Status code : Code is 200 檢查請求的狀態碼是否爲200 pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
})
Response body: Contains string 檢查響應中是否包含 string pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
})
Response body: JSON value check 檢查JSON某個字段的值 pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
})
Response body: Is equal to a string 檢查響應body中等於指定的 string pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
})
Response headers: Content-Type header check 檢查Content—Type是否包含在header的返回值中 pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
})
Response time is less than 200ms 檢查請求的耗時時間是否爲200ms pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});
Status code: Successful POST request 檢查post請求成功的狀態碼 pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201,202]);
})
Status code: Code name has string 檢查code name 的值是否爲指定的 string pm.test("Status code name has string", function () {
    pm.response.to.have.status("Created");
})
Response body: Convert XML body to a JSON Object 將XML格式的響應體轉換成JSON對象 var jsonObject = xml2Json(responseBody)
Use Tiny Validator for JSON data 對響應的結構使用TV4進行JSON模式驗證

var schema = {
  "items": {
    "type": "boolean"
  }
};

var data1 = [true, false];
var data2 = [true, 123];

pm.test('Schema is valid', function() {
  pm.expect(tv4.validate(data1, schema)).to.be.true;
  pm.expect(tv4.validate(data2, schema)).to.be.true;
})

 

 

 

 

發佈了36 篇原創文章 · 獲贊 65 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章