90%的測驗工程師是這樣使用Postman做介面測驗的……
一:介面測驗前準備
介面測驗是基于協議的功能黑盒測驗,在進行介面測驗之前,我們要了解介面的資訊,然后才知道怎么來測驗一個介面,如何完整的校驗介面的回應值,
那么問題來了,那介面資訊從哪里獲取呢?常用的有三種方式:
1.通過抓包工具比如fiddle,charles獲取介面資訊
2.通過瀏覽器開發者工具,networks查看介面請求資訊
3.當然最直接和最靠譜的就是介面檔案,這就是介面的需求檔案
一個規范的介面檔案最基本的應該包含了:
-
介面請求地址、請求方法、請求頭資訊說明
-
介面入參說明(包括引數的型別、是否必填、長度范圍等)
-
介面回應示例、回應狀態碼
現在很多公司沒有介面檔案,但是介面的重要性我這里就不累贅了,我認為測驗人員應該主動提出來,開發需要撰寫介面檔案,在測驗作業中需要更加主動,下面是我撰寫的swagger的介面檔案,大家可以參考一下:

二:介面測驗實戰
一般剛開始接觸介面測驗都是基于測驗工具,比如介面除錯神奇postman,開發和測驗都用它來除錯和測驗介面,
這里演示部分的介面是用Flask搭建的Mock Serve,后續也會分享如何從0搭建介面專案
實體一:demo
介面資訊:
地址 :127.0.0.1:5000/api/demo
GET型別
引數為limit 非必填 ,表示獲取資料限制
我們打開postman,請求demo介面,如圖所示:

這個demo介面由于可以不填任何引數,和請求頭部資訊,所以操作非常簡潔,輸入介面地址,選擇介面請求方法,點擊send直接請求成功,或者介面的回應狀態碼,和回應值,那如果get請求有引數入參怎么請求呢?如圖所示:

在Params中以鍵值對的形式填寫引數,大家發現這個時候介面回應值里面的info欄位只有一條資料資訊了,那當然limit為2時,就回傳2條資料,細心的朋友可能已經發現get介面的引數直接拼接在url后面,如:http://127.0.0.1:5000/api/demo?limit=1,get介面也可以直接在瀏覽器中請求,獲取回應值
三:理解cookie
通過一個實體12306查詢車次資訊介面來理解講介面請求頭資訊中的cookie,打開瀏覽器開發者工具獲取介面地址,請求方法,引數,回應值等如圖所示:

然后像實體一在postman里面輸入介面地址和引數,發送請求,但是,請求失敗了,小朋友,你是否有很多問號:

那為什么在網頁中這個介面請求沒有問題,到postman里面來就失敗了,其實當web開發人員去向后端請求這個介面的時候,會把瀏覽器一些網站資訊,用戶的登錄狀態,用戶的瀏覽習慣等通過Request Headers中的cookie傳給后端,但是postman就不會,那我就在postman里面模擬添加請求頭資訊(頭資訊在瀏覽器中可以獲取),如圖所示:

果然就請求成功了,是不是有點意思,通過倆個get介面實體,理解介面測驗和cookie,那么接下來我們看一個post型別的介面,順便理解一下常見的token,這也是面試常問的一個問題,問到介面鑒權如何測驗
四:介面測驗實戰之post介面
介面資訊:地址127.0.0.1:5000/api/login POST型別
引數 username 表示登錄用戶名
密碼 password 表示登錄密碼
Content-Type:application/json
如圖所示:

post介面首先選擇Body引數,再輸入引數發送請求,我們可以看到登錄介面如果請求成功了,就回傳了一個token,就像身份證ID,每個人都有都是唯一的,該token就是這個人員的通行證,
token鑒權,簡單來說,就是要不要登錄,一般來說,一個系統的所有介面都需要鑒權才能請求,換句話說先要請求這個系統的登錄介面,拿到服務端回應認證,才能去請求其它介面,一般放在請求頭headers或者body引數里面,如果請求其它介面沒有傳token就會提示無權限訪問或者未登錄
對于http協議我們已經掌握常用的get和post介面測驗,那當然還有其它很多型別的介面測驗,比如delete,put等,還有入參為form-data型別的介面,比如檔案上傳介面
那么對于不同協議的介面,比如webservice等,dubbo介面我們都需要通過實體去了解,當理解了各種型別的介面測驗之后,我們就可以進行介面自動化了,得到一套落地有效的介面自動化測驗方案,可以根據實際測驗需求自主封裝搭建適合專案的測驗框架,
最后,有需要的可以關注我,公粽號后臺領取視頻演示教程
本文作者:六十七點五
本文鏈接:https://www.cnblogs.com/cds765/
關注微信公眾號:程式員一凡
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340390.html
標籤:其他
上一篇:內網神器cs4.0使用說明書
