1. 程式人生 > 其它 >介面測試11--介面測試介紹

介面測試11--介面測試介紹

什麼是介面測試

介面測試是測試系統元件間介面的一種測試

介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的互動點

測試的重點是要檢查資料的交換、傳遞和控制管理的過程,以及系統間相互邏輯依賴關係等

介面測試就是指測試介面的功能、效能、安全性

介面有內部介面和外部介面

內部介面就是開發人員自己開發的介面

外部介面就好網站呼叫微信支付和支付寶支付介面

為什麼進行介面測試

1.越底層發現bug,它的修復成本是越低的。
2.前端隨便變,介面測好了,後端不用變,前後端是兩撥人開發的。
3.檢查系統的安全性、穩定性,前端傳參不可信,比如京東購物,前端價格不可能傳入-1元,但是通過介面可以傳入-1元。
4.如今的系統複雜度不斷上升,傳統的測試方法成本急劇增加且測試效率大幅下降,介面測試可以提供這種情況下的解決方案。

  1. 介面測試相對容易實現自動化持續整合,且相對UI自動化也比較穩定,可以減少人工迴歸測試人力成本與時間,縮短測試周期,支援後端快速發版需求。介面持續整合是為什麼能低成本高收益的根源。
  2. 現在很多系統前後端架構是分離的,從安全層面來說:
    (1)、只依賴前端進行限制已經完全不能滿足系統的安全要求(繞過前面實在太容易), 需要後端同樣進行控制,在這種情況下就需要從介面層面進行驗證。
    (2)、前後端傳輸、日誌列印等資訊是否加密傳輸也是需要驗證的,特別是涉及到使用者的隱私資訊,如身份證,銀行卡等。

測試左移

測試左移就是在提測之前已經介入了測試。在需求評審時不只是瞭解需求,更是要評估需求的質量,分析需求的合理性以及完整性。

在開階段時也要參與設計方案的設計,瞭解開發的實現方式。

因為很多開發可能只對他負責的模組熟悉,作為測試需要評估改動範圍以及是否有遺漏的模組和系統。

測試還可以通過提供測試案例或自動化測試指令碼的方式給開發,讓開發在設計時考慮的更全面,提高產品質量,畢竟越早的發現問題,解決的成本越低

介面測試的適用範圍

一般用於多個系統間的互動開發,或者擁有多個子系統的應用系統開發的測試。介面測試適用於為其他系統提供服務的底層框架系統和中心服務系統。主要測試這些對外部提供的介面的正確性和穩定性。它也同樣適用於上層系統中服務層介面,測試難度隨層級而上升。即越往上難度越大。

介面測試原理

通過測試程式模擬客戶端向伺服器傳送請求報文,伺服器接收請求報文後對相應的報文做出處理然後再把應答報文傳送給客戶端,客戶端接收應答報文這一過程(request(請求)→response(響應))

介面測試的價值

降低成本,提高效率。介面測試能夠提供系統複雜度上升情況下的低成本高效率的解決方案。它是一個完整的體系,還包括功能測試,效能測試等。

介面測試的分類

a) 系統與系統之間的呼叫(如分享時,微信會提供介面給“跑向珠峰”);
b) 上層服務對下層服務的呼叫 ;
c) 服務之間的呼叫(如新增一條資料時,會先呼叫資料查詢的服務,查詢改資料是否是重複資料);
不同型別的介面測試方法可能不一致,但總體來說,不管是哪種型別,被測介面即為服務方,測試手段為客戶方,介面測試的目的就是:通過我們的測試手段,去驗證滿足其宣告提供的功能。

介面測試,按功能分類

介面測試,按型別分類

介面測試,按照資料方向分類

介面測試,按資料讀寫方式分類

介面測試,按介面層級分類

介面測試的方法

由於我們專案前後端呼叫主要是基於http協議的介面,所以測試介面時主要是通過工具或程式碼模擬http請求的傳送與接收。

測試工具 postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。

也可以用介面自動化來實現,就是用程式碼實現,框架和UI自動化差不多,傳送請求用斷言來判斷。

介面自動化測試python、requests庫、unittest、pytest

①測試前,準備測試資料
②執行測試用例
③比對測試結果正確性
④檢查資料庫資料正確性
⑤記錄日誌
⑥生成測試報告

介面自動化測試的含義

通過編寫指令碼實現介面測試、可以通過python語言或java語言實現

介面自動化測試能做什麼

自動準備初始化資料

自動執行測試用例

自動驗證介面返回結果的正確性

自動驗證資料庫資料的正確性

自動生成測試報告

介面自動化適用場景

目前設計的自動化介面測試案例有兩個執行場景:
(1)測試前置、開發自測:一個新的自動化介面測試案例開發完成後,直接發給介面對應的開發,安排在開發本地環境執行,一旦開發確認完成介面開發,就開始執行介面測試案例,基本上可以實時拿到測試結果,方便開發快速做出判斷。(開發本地執行的方式就是開啟JMeter工具,匯入JMX檔案,開始執行可。)
(2)迴歸測試:開發本地測試通過後,或整個需求手工測試通過後,把自動化的介面測試案例做分類整理,挑選出需要納入到迴歸測試中的案例,在持續整合環境重新準備測試資料,並把案例納入到持續整合的job中來,這些用於迴歸的介面測試案例需要配置到持續整合平臺自動執行。

介面功能測試

主要用於驗證介面是否正確實現和處理需要的各種業務

將不同的資料傳遞給同一個介面,判斷各個返回值是否正確

介面測試的流程

類似於功能測試,需求討論→評審需求→確定需求→產出介面定義→根據需求文件及介面定義設計測試用例(測試用例主要從業務場景,功能以及異常測試幾個方面考慮)→評審用例→執行測試

開發介面測試案例的整體方案

第一步: 分析出測試需求,並拿到開發提供的介面說明文件;
第二步: 從介面說明文件中整理出介面測試案例,裡面要包括詳細的入參和出引數據以及明確的格式和檢查點;
第三步: 和開發一起對介面測試案例進行評審;
第四步: 結合開發庫,準備介面測試案例中的入參和出引數據,並整理成csv格式的檔案;
第五步: 結合介面測試案例文件和csv格式的資料文件,做介面測試案例的自動化案例開發。