接口測試


測試工作中你是否常常有這樣的疑慮:

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等。

接口測試用例設計思路

主要為三個方面

1、輸入參數

  輸入參數的校驗:必填校驗,長度校驗,參數的有效性校驗(如身份證,手機號碼的等),參數的組合校驗(不同的參數組合可能會存在不同的業務場景)

2、接口業務邏輯

  設計方法是分支覆蓋---路徑覆蓋----場景覆蓋,主要還是需要結合實際的業務場景,根本不會發生的業務場景就是無效的測試用例。

  為避免遺漏可以將業務流程圖先畫出來,依據流程圖分別涉及不同的分支不同的場景,考慮:接口超時,接口異常,接口請求成功或失敗,成功后怎么處理,失敗后怎么繼續執行等等

3、輸出

  輸出結果包括正常的輸出,異常的輸出,常用的方法是錯誤推斷法,列舉出程序中可能存在的錯誤或者異常,根據他們選擇測試用例

 

接口測試文檔

包括URL,調用方式,傳入參數,返回值,狀態碼等

每一個狀態碼要有一條用例

測試步驟:

從開發人員那里獲取接口文檔,接口文檔應該包括完整的功能接口、接口請求方式、接口請求URL、接口請求參數、接口返回參數。

如果當前項目沒有接口文檔,則可以使用fiddler對APP或者web進行抓包確認。

然后就是使用JMeter創建線程組,添加http請求,增加請求參數請求URL等,通過修改參數信息等等操作,查看請求的響應數據。

 

PS:

1、什么是接口測試?

2、接口的分類

3、接口測試工具

4、接口測試用例設計思路

注:本文有部分內容來源於筆者:擱淺


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM