天天看點

MockServer 服務架構設計

大部分現有的 mock 工具隻能滿足 HTTP 協定下簡單業務場景的使用。但是面對一些複雜的業務場景就顯得捉襟見肘,比如對 socket 協定的應用進行 mock,或者對于支付接口的失敗重試的定制化 mock 場景。

為解決上述問題,霍格沃茲測試學院設計并研發了 CSRMockServer 在下面的文章中簡稱 mock server。

mock server 相較于這些 mock 工具,具有規則更靈活、定制化更強、支援拓展多協定的特點。在本章節将會從架構設計介紹如何實作以上的特點,而在實戰章節,會針對具體的測試場景,示範不同的解決方案。

架構設計

若想實作上述特點,一定要有一個合理的架構設計。

mock server 架構設計:

用戶端

  • 用戶端主要負責與 mock 服務的互動,由測試人員制定 mock 的請求響應規則,以及啟動/停止 mock 服務。

代理

  • 負責請求和響應的收發,接收到請求後,先轉發給 Mock 引擎,mock 引擎收到請求響應資料進行處理後,再傳回給代理響應資訊,代理給伺服器傳回模拟的響應值。

協定(protocol)

  • 不同的協定的請求、響應資料格式往往不相同,既有标準的 json 結構體,也有二進制或十六進制的資料類型。這部分資料需要在協定層進行處理之後,才好進行相關的邏輯處理。是以協定層(protocol)主要負責和協定相關的資料處理。
  • protocol 還具備很強的很拓展性,如果一個系統涉及到了多協定的 mock,測試人員可以給不同的協定指定不同的規則,以此達到多協定 mock 的作用。具體的使用會在後面的章節進行示範。

Mock引擎

  • mock 邏輯的驅動引擎,根據不同功能子產品的請求,分發給 mock 服務的對應的實作接口。

背景服務

  • 提供與 mock 服務互動的對外接口。

設計優點

  • 提供了背景服務接口,測試人員添加規則、控制 mock 服務更加靈活
  • 定制化更強,内置支援根據索引、消耗、mock 後添加動作等操作
  • 通過切換不同的 protocol 與代理服務,即可實作多協定的支援,擴充性強

    mock server 架構就先介紹這些,後面将會示範 mock server 的使用流程哦。

繼續閱讀