什麼是接口測試:測試
接口測試是項目測試的一部分,正如其名,它測試的主要對象是接口,是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與所測系統之間以及內部各系統之間的交互點。測試的重點是檢查數據交互、傳遞、和控制管理過程以及系統間的相互依賴關係等。spa
接口測試的目的:.net
接口測試的目的是測試接口,尤爲是那些與系統相關聯的外部接口,測試的重點是要檢查數據的交換,傳遞和控制管理過程,還包括處理的次數。外部接口測試通常是做爲系統測試來看待的。設計
如何進行接口測試:對象
不是全部的團隊均可以在一個隔離的測試環境中進行測試工做的,所以使得對外部接口的測試顯得困難。咱們應該確保較早地與相關的組織協調好並肯定進行外部接口測試的方案。有時候相關的組織只是人工的靜態的審閱一次數據而並不真正的用這些數據來測試。等等這些都增長了實際測試執行中遇到的風險,但有些時候是能夠避免的。blog
如何設計接口測試用例?接口
首先,明確出發點。和全部的測試同樣,接口測試出發點是你要證實所測的程序是錯誤的。以這個出發點爲導向,你的設計行爲就會盡可能朝這個方向發展,更易發現問題,不會出現大方向的誤差。開發
其次,選擇好測試對象。對於一個系統作接口測試選擇好的測試對象是接口測試關鍵。一個系統有無數的接口,每一個接口若是分別測試,那將是很痛苦的一件事情,不光繁瑣浪費,並且任何一個內部接口的變更,都將致使咱們用例的不可用。這裏推薦把整個系統做爲一個總體,選擇整個系統提供給外部使用、交互的最外層接口做爲你的測試對象,以此爲測試對象的用例將有很好的健壯性,而且更高效。另外,根據數據的流向,又可將這些最外層的接口分爲兩類:一類是數據進入系統的接口;一類是數據流出系統的接口。進入系統的接口實際是咱們用例的執行調用的接口。可經過變化參數對這些接口進行調用,模擬外部的使用;而流出的接口則是咱們用例真正該驗證的點。數據從哪裏流出,流出時的狀態如何,此時系統又是什麼狀態都是咱們所應該驗證的。get
而後,確認完整的測試對象的功能:確認外部接口提供給使用這些接口的外部用戶什麼樣的功能,外部用戶真正須要什麼樣的功能。此兩個功能必定要準確詳細,用例的設計要嚴格按照測試對象功能設計纔是正確的用例。效率
最後當出發點、對象、功能都肯定了,就能夠真正設計用例了。下面詳細介紹下如何去設計一個結構好、可讀性高、滲透性強的接口測試用例。
接口測試用例設計和其餘測試用例設計同樣,都應該本着儘量的發現bug的目標。用例設計的內容應該包括:主要測試功能點、測試環境、測試數據、執行操做以及預期結果。
1)接口測試環境分爲兩種:一種是程序內部的環境;一種是程序的所調用外部接口的環境。用例在設計環境上有一個原則即:設計真實而危險的環境,不忽視偶發環境。真實,即你的用例在測試某種功能時,應該去思考這種狀況發生時內部、外部環境是什麼,經過各類手段將最準確的環境模擬出來。危險,即在這種環境下系統出問題的機率會很大。在設計用例環境時,若是兩種環境都能達到你本用例的要求,更推薦選擇更危險的環境。所謂偶發,即這種環境出現的機率很小。不要由於這種環境不多出現就無視它,開發極可能也是這種想法,此處頗有可能隱藏着問題。
2)接口測試測試數據分爲接口參數數據和用例執行所需系統數據。數據的設計學問大,不要在設計、準備測試用例的數據上偷懶。要經過好的測試數據使用例查錯的功能充分發揮。接口參數數據需對每一個參數根據測試接口的實際的功能進行分析,在符合業務邏輯的狀況下進行邏輯組合排列,不要遺漏了某些邊界值和錯誤點的數據。每一個用例執行所需系統數據和接口參數數據儘量的採用不同的數據,使用例更容易發現問題。
3)測試功能點,若是一個接口功能複雜時推薦對接口用例進行結構劃分,這樣子用例具備更好的可讀性和維護性。接口劃分原則爲以接口提供的功能點的不一樣進行合適粒度的劃分。同一功能點的用例又可根據測試環境的不一樣、數據的不一樣進行用例的填充。
4)接口測試用例執行操做很是簡單,就是所測接口的調用。
5)預期結果驗證,這也是接口用例設計的很關鍵的一步,應該細而不冗餘。所謂細,用例中應詳細列出應該驗證的點。每一個用例均需驗證,不要由於前幾個用例有驗證就認爲所有是正確的。避免一個用例中重複作相同的驗證,提升測試用例的效率。