介面自動化測試(4)
一、postman中的斷言
(postman中的斷言寫在Tests)
1. API測試中斷言:
1、協議狀態碼
2、響應資料
3、業務狀態碼(程式設計師根據自己的想法來定義的,一個錯誤資訊對應一個業務狀態碼)
判斷一個介面測試用例是否成功(通過)是根據斷言的三個條件都成立的情況下得到的結果
2. 例項:登入頁面
13484545195 asd888
2.1開啟登入頁面進行登入並且捕捉請求、獲取請求資訊:
2.2在postman的斷言寫在Tests中,判斷響應資料、狀態碼是否等於預期:
2.2.1 首先把響應資料放在一個變數中(jsonData),方便呼叫其中的資料資訊。(這裡用的是js語言:var後跟變數名)
var jsonData=JSON.parse(responseBody)
2.2.2斷言:
驗證協議狀態碼:
在右邊直接點選 “Status code:Code is 200” ——驗證響應狀態碼是否為預期狀態碼(如果狀態碼是201,200的位置就改為201)
驗證響應資料:
①驗證某個欄位的資訊是否等於預期:
tests["驗證什麼"]=響應資料的變數.鍵.鍵=="預期結果" ——驗證響應結果中的資料是否等於預期結果(響應資料是json型別,其中的某個值是根據鍵來獲取的)
②驗證token:(每次登入成功後的token都是不一樣的,想要斷言token,要先set到一個變數中,再斷言時呼叫這個變數做斷言)
點選右邊的“Set an environment variable” , 把jsonData中的token進行set,給jsonData中的token定義一個變數名;
驗證jsonData的token(也就是響應資料中token實際的值)是否等於我們get到的token變數(get變數:點選右邊“Get an environment variable”)
總結:驗證響應資料的用例格式為: tests["驗證什麼"]=實際結果==預期結果
2.2.3 檢視用例的執行結果:
二、postman中的Collections
Collections:
集合,就是測試用例的套件,在這個容器裡面,可以存放很多的測試用例。測試套件。
新增集合:
新增測試用例到Collections:(注意每次修改完用例要點儲存Save)
執行collection:
執行後,點選用例名可以看到具體的請求資訊和響應資訊:
三、動態引數
3.1在PostMan中呼叫變數的方式是:
{{變數名}}
3.2動態引數在postman的解決思路(重點!!):
以登入為例:
1、登入成功後,在登入介面的Tests中定義一個變數來獲取響應資料中的動態引數token2、在下個介面(比如首頁)中,呼叫定義的變數,呼叫的方式是{{變數名}}
3、那麼這個過程,需要把登入介面和引用登入介面的變數的介面(也就是首頁介面)都需要新增到Collection中,它的順序是登入介面在前
4、然後執行Collection,這樣就能夠實現動態引數的關聯(在用例中如果呼叫了之前的用例中的變數,也就是有關聯時,單獨執行此用例無效,需要執行整個集合run collection)
3.3例項:首頁
需求:斷言首頁請求的狀態碼,斷言響應資料
3.3.1開啟首頁的請求
3.3.2在postman中新增請求(填寫請求方法、url、呼叫登入測試用例中的變數“jsonToken”、在Tests中填寫測試用例)
注意1:JWT和token之間有空格,token是動態引數,呼叫的登入用例的token的變數(在登入頁面成功後伺服器返回的token每次都不一樣,我們就在登入用例中定義token為一個變數,在之後的操作中都需要帶著這個token去傳送請求,所以登入後其他操作在請求頭中就要呼叫之前的token變數)
注意2:此時的請求不能傳送成功,因為其中呼叫了登入測試用例中的變數。做法是:儲存此請求至collection中,執行collection。
將首頁請求新增至collection 後執行collection,如下圖 ,點選“首頁”,可以看到請求的資訊和響應的資訊:
在請求中(Tests)新增測試用例:(驗證響應資料中的api是否為0)
(編輯完後一定要點save儲存,然後執行collection)
3.4例項:在首頁新增產品
需求:斷言狀態碼、驗證產品id(產品id每次都不同)。
捕捉請求:
請求資料:
postman中新增請求(方法、url、請求頭、請求資料、
執行collection:
3.4例項:刪除產品
需求:驗證狀態碼
3.4例項:修改產品
需求:驗證狀態碼和產品id資訊
collection新增檔案: