擋板測試大概就是:在一些跨系統的性能測試項目中,往往由於客觀因素的限制(測試硬件資源有限、多系統之間的協調等),我們無法搭建一個完整的測試環境來完成測試工作。
此時,我們一般會搭建出被測系統,然后采用軟件程序來模擬其他相關系統的功能。該軟件程序一般被稱為擋板
擋板能解決的問題:
1、由於調用第三方系統而無法給客戶搭建一套演示環境
2、由於調用第三方系統而無法進行穩定的開發測試
3、由於調用第三方系統而無法進行自己系統的性能測試
在項目開發或者做性能壓測過程中,項目中會有調用外網第三方接口的場景(類似支付,發送短信,ocr人臉識別,語音識別接口)。當開發時,對方不願意提供測試服務器給我們調用,或者有的接口會按調用次數進行計費。
同時像支付,短信都是收費的服務,大量的壓測,成本是一個很大的問題,當聯調時,第三方的測試服務器也可能會出現不穩定,如果他們的服務掛了,我們就一直等着服務恢復,那么這就相當影響效率了。
如果我們在開發時,就定義一個擋板或者mock服務,在發起調用時,不直接調到第三方接口,而是調到我們自己的擋板代碼或者mock服務,這樣就可以避免這些問題了,同時在壓測過程中可以避免第三方接口的性能瓶頸或者走公網的網絡帶寬瓶頸。
使用擋板的好處:
1、擋板代碼,不需要侵入業務代碼,可以根據入參做一些動態結果返回
2、不需要專門開發一個擋板服務,並且在每次啟動客戶端都先啟動擋板服務
3、可以自由選擇使用擋板還是Mock數據
目前已經存在很大開源的擋板程序可供選擇(moco,Mockito,EasyMock,jMock,JMockit),個人比較喜歡tornado作為開發框架,因為其高效的異步,可以支持高並發,避免擋板程序成為瓶頸,一般的python開發框架有django或者flask都可以
自己開發的擋板更靈活,滿足功能測試同事的需要
擋板的目錄結構:

此次開發的是第三方接口,功能是個人風險信息查詢,接口地址是:https://api-vip1.huadata.com/result





以上就是第三方接口的真實返回接口,發現還存在簽名驗證,對於這樣的接口,不知道內部邏輯,測試起來也是非常麻煩

由於壓測環境沒有外網,所以壓測調試腳本配置的外網環境肯定失敗,其實是我們的業務代碼中回調用第三方的接口,但是通過擋板可以完成

案例:直接在配置中心將外網的接口地址改成擋板的地址,通過lr調用接口



查看服務端:

說明擋板測試成功

其實也可以通過postman調用:

異常場景:便於功能測試人員模擬異常場景


作為性能測試,會經常存在開發擋板的場景,否則一直依賴開發改代碼,這樣就不用求別人
案例2:身份證圖片ocr識別接口擋板
測試環境測試完成后,版本上線以后,關閉了第三方提供的外網身份證識別接口

所以,現在想歸回一下問題,流程都通不過,需要重新申請開通外網,同時這個接口是收費的,調用一次都會收費

開發完擋板,直接配置到擋板接口




短信擋板的應用:

擋板應用生成的驗證碼

自己需要測試的應用獲取到的短信驗證碼:

