1. 程式人生 > >接口測試必備技能之入門到上手

接口測試必備技能之入門到上手

中繼 端口 應用程序 網絡 簡單的 完整性 參數檢查 取數據 會話

一基礎介紹:

  接口:

  API:應用程序編程接口(功能實現的接口)

  GUI:圖形用戶界面(前端調用的接口)

  DUBBO:遠程調用接口(使用第三方接口,不占用服務器的資源)

  1、什麽是接口測試

  特指脫離頁面呈現,脫離頁面調用是否正確,官方解釋是主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。那測試的重點是要檢查數據的交換、傳遞的正確性,參數檢查、接口返回值是否正確,各接口間邏輯調用是否可以實現應用層功能

2、接口測試的意義

實現開發期並行測試,減少頁面層測試的深度,縮短整個項目的測試周期,減少修改bug的成本,平臺越復雜,系統越龐大,接口測試的效果越明顯,也可以實現自動化持續集成,減少回歸測試人力成本與時間

  3、接口測試的原理

  模擬客戶端向服務器發送請求報文,服務器接收請求報文後對相應的報文做處理並向客戶端返回應答,客戶端接收應答的一個過程  4、接口文檔   一般的企業,都會由開發或者對應的技術負責人員編寫接口文檔,裏面會註明接口相關的地址、參數類型、方法、輸入、輸出等信息,理清裏面有哪些邏輯功能,返回值,調用其他有依賴的關系(先後順序)等等。①服務器名稱、端口號;②接口名稱、路徑,接口的調用方式,常用的是GET和POST方式;③返回值說明;④參數說明,必填項
  5、關於get和post請求方式的區別   GET方式是從服務器獲取數據,做數據查詢;POST方式是向服務器傳送數據,做數據添加、修改、刪除等
  因為網上關於這兩區別眾說紛壇,那我之前看過某大佬寫的這兩關系讓人一看就很明了,寫得非常好,這邊給個簡單的闡述一下(也有好多人碰到過的面試題)   get和post本身無區別,其底層都是TCP鏈接,但在HTTP的規定和瀏覽器/服務器的限制,get產生一個數據包,post產生兩個數據包。用get方式請求,瀏覽器會把HTTP header和date一並發送出去;用post方式請求,瀏覽器先發送header,服務響應100 continue,瀏覽器再發date出去,服務器響應回200(就是說我要送一批貨,我先跑過去跟商家說嘿等下我要送貨過來,你先打開門好接待我,然後又跑回去把那一車貨運過來。。。),那因為post需要走兩步,時間上看會消耗多一些,但在網絡環境好的情況下發一次包或者兩次根本是無區別,可以無視掉,但是如果網絡差呢,有兩次包的TCP在驗證數據包的完整性就有非常大的優點了
二如何進行接口測試:  1、先接口測試用例的編寫,根據需求文檔,且其覆蓋率,編寫要點如下:
  ①、測試每個參數類型(所謂等價類,中文、特殊符號等)不合法的情況下,類型不合法易遺漏null型   ②、測試每個參數取值範圍不合法的情況(邊界值)   ③、測試參數為空的情況下(必填項)   ④、測試參數前後臺定義的一致性   ⑤、測試每個參數的上下限   ⑥、若兩個請求有嚴格的先後順序時   接口測哪些範圍: 技術分享圖片

  接口測試的工具:

技術分享圖片

做接口測試的話我一般使用jmeter和postman,用postman做單接口測試,用jmeter做接口測試後捎帶手也把性能也做了,如下圖是用postman工具

技術分享圖片

2、做接口測試必要知道的常見的HTTP狀態碼,具體的可百度查詢

   1 1xx(臨時響應)

2 2xx(成功)

3 3xx(已重定向)

4 4xx(請求錯誤)

5 5xx(服務器錯誤)

3、常用的協議類型如OSI協議和TCP/IP協議

OSI七層協議:應用層、表示層、會話層(面向用戶)、傳輸層(TCP/UDP協議,設備是網關)、網絡層(TCP/IP協議,設備是路由器)、數據鏈路層(數據通道,單位是幀)、物理層(傳輸介質,設備中繼器、集線器如網卡、電纜)

   TCP/IP協議由網絡層的IP協議和傳輸層的TCP協議組成,TCP連接需要握三次手,斷開四次,TCP/IP協議需詳細設置IP地址、網關和子網掩碼,TCP/IP協議由應用層、傳輸層、網絡層、網絡接口層組成

接口測試必備技能之入門到上手