首先,如果有開發經驗或者測試的一些經驗的話,對postman的使用情況都會有一些瞭解的:
- 在開發接口的時候需要快速的去調用接口,以便調試
- 在測試的時候需要非常方便的去調用接口,來通過各種不同的參數去測試接口的輸出
- 有時有的接口調用是需要保存下來進行反覆執行的
- 在接口測試的過程中添加一些斷言(預期和真實運行的結果進行對比)
目錄
3、發送GET請求並增加請求狀態和對返回結果內容的斷言並執行
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 = { var data1 = [true, false]; pm.test('Schema is valid', function() { |