為了確保API提供了必要的安全性、可靠性和性能,這不可避免地涉及到開發、持續執行和忠實地維護廣泛的復雜測驗,
以下是5個關鍵的API測驗“必須具備”,可以幫助你實作這一點:
1.智能測驗創建和自動驗證
由于api的極端暴露和潛在的誤用,使得測驗范圍更廣的條件和角落用例變得至關重要,自動化就成為了最重要的問題,在SOA的內部范圍內,使用有限的或手動驗證創建和執行簡單的自動化測驗可能已經足夠了,但是需要更復雜和更廣泛的自動化,以確信您的api足夠健壯,能夠在環境中生存下來,您需要一個自動化的級別,它為您提供一組全面的功能測驗用例,這些測驗用例可以以系統的方式重復,
為此目標推薦的功能包括一個直觀的界面,用于跨訊息傳遞層、esb、資料庫和大型機自動化復雜場景:
- 定義api中使用的廣泛協議和訊息型別的自動化測驗場景:REST、JSON、MQ、JMS、EDI、固定長度訊息等,
- 在端到端測驗場景中涉及的多個端點上自動化豐富的多層驗證,
- 引數化來自資料源、從測驗場景或變數中提取的值的測驗訊息、驗證和配置,
- 定義復雜的測驗流邏輯而不需要腳本,
- 可視化測驗執行時訊息和事件如何在分布式體系結構中流動,
2.測驗資產和環境的更改管理
不斷發展的API可以幫助組織在回應業務需求的同時保持領先于競爭對手,然而,如果自動化測驗套件無法跟上不斷發展的API,這種頻繁的更改將帶來巨大的質量風險,
快速、簡單和準確地更新測驗資產的系統對于使測驗資產與不斷變化的API保持同步至關重要,如果可以自動評估更改對現有測驗的影響,然后快速更新現有測驗(或創建新的測驗)以回應已識別的更改影響,則可以大大減少所需的時間,以確保測驗不會因預期的更改…而失敗,或者忽略關鍵的新功能,
3.模擬測驗環境的服務虛擬化
服務虛擬化技術即我們經常說的Mock,可以創建模擬測驗環境,提供對依賴的系統組件行為的隨時隨地訪問,這些依賴系統組件不可用、難以訪問或難以配置用于開發或測驗,“依賴組件”可能包括大型機、移動應用程式前端、資料庫、web服務、第三方應用程式或其他超出團隊直接控制范圍的系統,服務虛擬化可以與硬體/OS虛擬化結合使用,以訪問需要更早、更快或更完整地測驗的環境,
在API測驗的背景關系中,服務虛擬化可以通過兩種關鍵方式應用:
- 提供對依賴組件行為(例如,從移動應用程式、資料庫、遺留系統或第三方服務)的訪問,以徹底驗證API,
- 為了模仿API的行為,創建一個API使用者可以在不影響生產環境的情況下開發和測驗的測驗環境,或者允許在API完成之前開始開發和測驗,
4.廣泛的性能測驗--最好是服務虛擬化
由于api的高度暴露特性,很有可能出現不可預測和經常波動的業務量,要確定在API通常面臨的需求不穩定或激增的情況下,您的API是否能夠滿足sla,就必須擴大性能測驗的范圍,您可以使用服務虛擬化(上文說過)創建模擬測驗環境,幫助您針對不同的性能場景進行測驗,否則在測驗環境中很難創建這些場景,
例如,可以輕松地設定性能條件(例如,定時、延遲、延遲)來模擬峰值、預期性能和緩慢的性能——也許是為了幫助規劃云突發,或者確定當有人從國外訪問它時API可能如何回應,還可以配置各種很難在實際系統中再現或復制的錯誤和故障條件——例如,如果API依賴于AmazonWebServices,您可以輕松地模擬AWS宕機的場景,這種在相關系統中快速配置廣泛條件的能力對于確定api在例外條件下是否提供合理的回應(或至少優雅地失敗)至關重要,
采用服務虛擬化有助于性能測驗的最后一種方式是:可以“虛擬化”到第三方系統的任何連接,從而可靠地消除壓力測驗可能影響不允許(或預算)使用測驗訊息的服務的風險,
5.廣泛的安全性測驗-最好是服務虛擬化
考慮到API增加的攻擊表面積較大,一個多方面的安全測驗策略對于確保開發在應用程式中構建適當級別的安全至關重要,這包括:
- 執行復雜的身份驗證、加密和訪問控制測驗場景,
- 生成范圍廣泛的滲透攻擊場景,包括引數模糊、注入、大有效載荷等,
- 針對現有功能測驗方案運行滲透攻擊場景,
- 在測驗執行期間監視后端,以確定安全性是否實際受到損害,
此外,如果采用的是服務虛擬化(上文說過),則可以利用它將您的安全測驗提升到下一個級別:
- 它提供了快速模擬攻擊場景的方法,以及模擬依賴項的不同安全行為的方法,這使您可以從現有的功能測驗方案中獲得更多的價值(因為您可以相對于不同的安全場景運行它們,否則將很難配置,并且無法對它們進行測驗),
- 它允許在沒有安全專家的情況下執行廣泛的安全測驗,現有的測驗方案可以很容易地針對一組廣泛的預先配置的安全場景執行,
- 它幫助您隔離API,并將其用于回應各種攻擊場景和依賴項的不同安全行為,
這里推薦的是Eolinker的Goku網關,可以自行嘗試一下,

使用地址:www.eolinker.com
翻譯來源:dzone.com
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296262.html
標籤:其他
