接口測試 我這樣看
測試工作中你是否常常有這樣的疑慮:
1.什麽是接口,接口到底長啥樣?
2.什麽時候進行接口測試?
3.接口文檔是什麽樣的?
4.接口測試的正確姿勢是什麽樣的?
什麽時候展開接口測試?
1.項目處於開發階段,前後端聯調接口是否請求成功
2.有接口文檔,開發已完成聯調,功能測試展開之前
3.專項測試:如測流量大小、查看圖片壓縮大小、測試接口請求響應時間
4.版本上線前,進入整體回歸測試,查看接口是否有異常
5.版本功能文檔後,接口自動化
什麽是接口?
接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。
測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
接口測試的分類
1.模塊接口測試(可劃分到白盒測試中):如訂單模塊下單時,需要去用戶資金模塊查詢余額等
2.Web接口測試,有可分為以下兩類
2.1.系統對外部系統提供的接口:如第三方登錄
2.2.內部子系統的服務之間的接口(服務器接口):是測試瀏覽器與服務器的接口
我們知道web開發一般分前端和後端,前端開發人員用HTML/CSS/JavaScript等技術。後端開發人用PHP/JAVA/Python/Ruby等各種語言。
用戶輸入的數據是輸入到的前端頁面上,怎樣把這些數據傳遞的後臺的呢?通過HTTP協議的GET與POST請求來實現前後端的數據傳遞。
常見的協議:
計算機內部傳輸都是二進制數,那麽數據傳輸過程中,獲取多少數據,傳到哪裏,同時通過協議來定義的,協議就相當於制定內部傳輸規則
-
tcp/ip 協議
-
http/https、websocket、json、xml
-
webservice(soap/wsdl)、restservice、xmpp、自定義協議
-
hession、dubbo
網絡傳輸:
-
文本:http、https、webservice、json
-
二進制:thrift、protobuf、hession
接口測試的意義
1、保證系統的穩定性:
一個系統的服務端越接近底層,對系統的影響就越大,甚至有可能牽一發而動全身,服務端的一個缺陷可能會引起客戶端的幾個甚至十幾個缺陷,更可怕的是服務端的缺陷有可能引起系統的崩潰,這對整個系統來說,損失將是不可估量的,因此服務端接口的質量將直接影響到系統的正確和穩定。
然而,在實際的開發過程中,開發人員並沒有充足的時間編寫單元測試,並且他們往往對自己編寫的代碼有足夠的信心,不願意將時間“浪費”在編寫單元測試身上。這個時候接口測試就肩負著重要的作用。
2、將bug控制在項目前期:
就筆者所做的微信活動而言,後端系統比較成熟,對於前端開發來說,每個活動都有很大不同。這就導致後端接口開發只需要一天就可完成,而前端開發的工作量至少需要兩、三天。而在這個空當期就可以充分的對接口進行測試,從而盡早的發現系統bug;減少功能測試的工作量,縮短產品的發布周期。
3、檢查服務器的異常處理能力:
我們通常把前端的驗證稱為弱驗證,因為它很容易被繞過,這個時候如果只站在功能的層面時行測試,就很難發現一些安全的問題。不以前功能為入口的接口測試就會發揮出它的作用。
接口測試的用例設計流程
1.明確出發點
2.選擇好測試的對象
3.確認完整的測試對象的功能
可從以下情況考慮:
針對查詢的接口要與數據庫進行數據核對,檢查數據的準確性
工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。
接口測試文檔
包括URL,調用方式,傳入參數,返回值,狀態碼等
每一個狀態碼要有一條用例
測試步驟:
從開發人員那裏獲取接口文檔,接口文檔應該包括完整的功能接口、接口請求方式、接口請求URL、接口請求參數、接口返回參數。
如果當前項目沒有接口文檔,則可以使用fiddler對APP或者web進行抓包確認。
然後就是使用JMeter創建線程組,添加http請求,增加請求參數請求URL等,通過修改參數信息等等操作,查看請求的響應數據。
註:本文有部分內容來源於筆者:擱淺
接口測試 我這樣看