第三方收費接口的擋板程序開發(適合壓測和功能環境)

擋板測試大概就是:在一些跨系統的性能測試項目中,每每因爲客觀因素的限制(測試硬件資源有限、多系統之間的協調等),咱們沒法搭建一個完整的測試環境來完成測試工做。python

此時,咱們通常會搭建出被測系統,而後採用軟件程序來模擬其餘相關係統的功能。該軟件程序通常被稱爲擋板django

擋板能解決的問題:flask

一、因爲調用第三方系統而沒法給客戶搭建一套演示環境api

二、因爲調用第三方系統而沒法進行穩定的開發測試服務器

三、因爲調用第三方系統而沒法進行本身系統的性能測試網絡

在項目開發或者作性能壓測過程當中,項目中會有調用外網第三方接口的場景(相似支付,發送短信,ocr人臉識別,語音識別接口)。當開發時,對方不肯意提供測試服務器給咱們調用,或者有的接口會按調用次數進行計費併發

同時像支付,短信都是收費的服務,大量的壓測,成本是一個很大的問題,當聯調時,第三方的測試服務器也可能會出現不穩定,若是他們的服務掛了,咱們就一直等着服務恢復,那麼這就至關影響效率了。框架

若是咱們在開發時,就定義一個擋板或者mock服務,在發起調用時,不直接調到第三方接口,而是調到咱們本身的擋板代碼或者mock服務,這樣就能夠避免這些問題了,同時在壓測過程當中能夠避免第三方接口的性能瓶頸或者走公網的網絡帶寬瓶頸。異步

使用擋板的好處:tornado

一、擋板代碼,不須要侵入業務代碼,能夠根據入參作一些動態結果返回

二、不須要專門開發一個擋板服務,而且在每次啓動客戶端都先啓動擋板服務

三、能夠自由選擇使用擋板仍是Mock數據

目前已經存在很大開源的擋板程序可供選擇(moco,Mockito,EasyMock,jMockJMockit),我的比較喜歡tornado做爲開發框架,由於其高效的異步,能夠支持高併發,避免擋板程序成爲瓶頸,通常的python開發框架有django或者flask均可以

本身開發的擋板更靈活,知足功能測試同事的須要

擋板的目錄結構:

 

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

 

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

因爲壓測環境沒有外網,因此壓測調試腳本配置的外網環境確定失敗,實際上是咱們的業務代碼中回調用第三方的接口,可是經過擋板能夠完成

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

 

查看服務端:

說明擋板測試成功

其實也能夠經過postman調用:

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

做爲性能測試,會常常存在開發擋板的場景,不然一直依賴開發改代碼,這樣就不用求別人

 

案例2:身份證圖片ocr識別接口擋板

測試環境測試完成後,版本上線之後,關閉了第三方提供的外網身份證識別接口

因此,如今想歸回一下問題,流程都通不過,須要從新申請開通外網,同時這個接口是收費的,調用一次都會收費

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

 

 

短信擋板的應用:

擋板應用生成的驗證碼

本身須要測試的應用獲取到的短信驗證碼:

相關文章
相關標籤/搜索