微服務虛擬化工具 Hoverfly

2021-09-26 09:06:38 字數 2388 閱讀 1558

背景:早些時候寫過一篇關於mountebank的文章,介紹其環境搭建的過程(mountebank之安裝篇)。因為個中原因,後面專案中並沒有繼續使用這款工具。今天要介紹的這篇hoverfly,其實與mountebank類似,它們都是實現(微)服務虛擬化的工具之一。

環境:win7 + jmeter3.2 + hoverfly v1.1.1

步驟:

1.什麼是微服務?

隨著軟體技術的發展,各種名詞總是層出不窮的。這個名詞,度娘會比本人解釋得更清楚。這裡不再贅述。只簡單介紹這種技術所帶來一些測試問題:

1)要測試某個服務時,需要依賴其他的微服務;

2)其他的微服務不穩定或仍在進一步的開發中;

3)需要設計網路延遲、限速等邊緣場景;

4)服務端有訪問次數限制等

「去耦」的方法之一就是單元測試的mock方法。在過去這一方法效率高,成本低;但在當下軟體所實現的業務越發複雜的情況下,要做單元測試的mock,除了測試自己需要有足夠的**基礎外,還得有時間。而且,mock的資料不容易管理和儲存。那麼,用什麼手段來解決這些問題呢,就是接下來的內容了。

2.(微)服務虛擬化?

(微)服務虛擬化就是一種用來模擬(微)服務依賴項的行為。目前,實現這一技術的工具主要有wieremock, hoverfly, mountebank。通常,(微)服務虛擬化包含兩種模式:

3.hoverfly

什麼是hoverfly,它有什麼特徵,支援什麼語言,具有什麼模式,如何安裝。。。。。。這些可以參考官網:

4.使用示例

1)啟動hoverfly:

2)啟動capture模式並捕獲一些headers資訊:

hoverctl mode capture --headers "content-type"
3)使用jmeter呼叫api,注意這裡的配置

其他設定和請求同jmeter的普通指令碼開發,執行結果如下圖所示。這裡出現了hoverfly的標記。

真實請求中沒有hoverfly,並且有這樣一行頭資訊:

4)匯出模擬資料:

5)停止hoverfly,然後啟動,並匯入模擬資料

6)多次執行請求。所有請求的headers和body的大小都一樣。

部分知識總結:

1.設定整體的時延,時間為300毫秒

2.捕獲序列:(暫時不明白這裡的原因和使用場景~~)

步驟:1)hoverctl start

2)hoverctl mode capture --stateful

3)用jmeter執行兩次相同請求

4)hoverctl mode simulate

5)此時用jmeter執行多次請求,第一次的響應為第乙個請求的響應對;後面的所有請求都是第二個請求的響應對。

如果匯出.json檔案,可以看到兩個請求中,分別新增了如下字段:

服務虛擬化測試

forrester 服務虛擬化測試是乙個新興市場,旨在消除應用開發人員和測試人員在當今交付活動中遇到的諸多開發和測試限制。列舉一些這個市場上的產品供參考 calisa 2011年ca斥資3.3億美金全現金收購的it服務模擬解決方案提供商interativetko公司 itko hpservice v...

vsftpd服務虛擬使用者配置

所謂虛擬使用者就是沒有使用真實的帳戶,但ftp登入需要乙個使用者身份,這個時候我們可以給它建立乙個使用者,專門來給這些虛擬的使用者用ok拉。建立虛擬使用者 useradd d home ftpsite virtual chown virtual.virtual home ftpsite 修改 etc...

vsftpd服務虛擬使用者訪問配置

1 建立虛擬使用者 sudo vi etc vsftpd vuser.txt 在vsuer.txt中新增使用者名稱密碼 如 tom 需要安裝db4 util 2 根據vuser.txt建立資料庫檔案 將文字轉換成資料庫認證檔案 sudo load db t t 指定演算法 hash f 指定檔案 e...