1. 首先,什么是接口?
接口無非有兩種,一種是內部接口,一種調用對外包裝的接口
內部接口:方法與方法之間,模塊與模塊之間的交互,程序內部拋出的接口,例如下訂單,首先你需要登錄,然后調用下訂單接口,兩個模塊有交互那么相互之間的調用,就屬于內部接口
對外包裝的接口:例如A部門做一個買車服務,它賣兩種車一是二手,二是新車,那么它要賣二手車,是不是直接可以調用二手車部門共享的數據進行包裝,從而是不是達到數據的共享等等,就不一一舉例子.
2.常用接口采用方式:
1、webService接口:是走soap協(xié)議通過http傳輸,請求報文和返回報文都是xml格式的,我們在測試的時候都用通過工具才能進行調用,測試??梢允褂玫墓ぞ哂蠸oapUI、jmeter、loadrunner等;
2.http api接口:是走http協(xié)議,通過路徑來區(qū)分調用的方法,請求報文都是key-value形式的,返回報文一般都是json串,有get和
post等方法,這也是最常用的兩種請求方式??梢允褂玫墓ぞ哂衟ostman、RESTClient、jmeter、loadrunner等;
3.https并非是應用層的一種新協(xié)議,只是http通信接口部分用SSL(Secure socket Layer)和TLS(Transport Layer Security)協(xié)議代替而已
那么上述1,2,3
webService:返回的格式xml還需要解析麻煩,而且速度可能有降低(目前開發(fā)平臺等都使用的http(get/post實現的)
http協(xié)議時超文本傳輸協(xié)議(不安全)
https是安全的超文本傳輸協(xié)議,是安全版的http協(xié)議,使用安全套接字層(SSL)進行信息交換。
https協(xié)議主要針對解決http協(xié)議以下不足:
1.通信使用明文(不加密),內容可能會被竊聽
2.不驗證通信方身份,應此可能遭遇偽裝
3.無法證明報文的完整性(即準確性),所以可能已遭篡改
綜上所述:目前我們看到的接口測試.,相信大家用的https、http多一些
3.前端和后端
前端:app,網頁統(tǒng)稱前端(展示-負責貌美如花)
后端: 后臺提供數據,校驗,下訂單等等處理(負責掙錢養(yǎng)家)
4. 接口測試概念
接口測試是測試系統(tǒng)組件間接口的一種測試。接口測試主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內部各個子系統(tǒng)之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統(tǒng)間的相互邏輯依賴關系等(通俗來說就是,檢查業(yè)務邏輯是否滿足業(yè)務需求,校驗字段是否正常你實際結果是否滿足預期)
5.接口的組成:
a.接口說明
b、調用url
c、請求方法(get\post)
d、請求參數、參數類型、請求參數說明
e、返回參數說明
6.為什么要做接口測試,接口測試的目標
接口其實app和前端交互用的,所以好多人問,為啥做功能測試還要測接口,目標是啥不是多此一舉嗎?首先我告訴大家,這種想法是錯誤的.
那么舉一個例子:
例如一個登陸接口,例如產品上規(guī)定用戶名6-10個字符數字下劃線,但后端沒做判斷。但我們業(yè)務人員測試肯定驗證,但只是前端做了校驗,后端壓根就忘了這個小需求.那么后果來了如果一個懂的直接抓包去篡改你的接口,然后繞過校驗,通過sql注入直接隨意登錄。如果你這是一個下單業(yè)務,是不是給公司造成了很大損失
所以此時此刻接口測試目標來了:
1.可能發(fā)現客戶端沒有發(fā)現的bug(那么也叫隱藏bug)
2.及早爆出風險(保證質量正常上線)
3.接口穩(wěn)定了,前端隨便改
4.最重要檢查系統(tǒng)安全性,穩(wěn)定性
7.常常有人問我怎么測
1.無非就兩種get/post工具postman/httprequest等
2.狀態(tài)嗎你至少了解
例如:200(成功)/300(重定向別的地方)/400(請求語法錯誤)/500(服務器異常)
怎么測:
A. 用例設計(根據業(yè)務邏輯來設計用例,登錄5次,需要2分鐘后再登錄刪除關注的車,列表少一條數據)
B. 參數組合(傳入不同值)
C. 接口安全(繞過驗證/繞過身份驗證/參數是否加密等)
D. 異常驗證(輸入異常參數邊界值)
8.用什么工具測
功能:Postman/HTTPrequest/jemter
自動化:restassured/python httprequest
最后:
歡迎大家關注我的公眾號:測試人追風,獲取大廠軟件測試開發(fā)面試/技術進階資料。