1. 程式人生 > 其它 >選擇網路損傷儀時需要考慮的 7 件事

選擇網路損傷儀時需要考慮的 7 件事

如何正確的採購到價效比最高的網路損傷儀?我們需要在購買前對網路損傷儀的7個方面進行考量。

多年來,人們一直對廣域網模擬器保有高度關注。廣域網模擬器是一種裝置,可讓您在區域網中模擬出廣域網環境,我們也稱它為網路損傷儀。

區域網又快又好,廣域網又慢又遲鈍。在區域網中表現良好的應用程式一旦執行在廣域網上,可能就會出現各種各樣的問題,給使用者帶來糟糕的體驗。

現如今,這些問題隨著廣域網越來越複雜而變得更加突出。與傳統 WAN 不太一樣的是,現在各種各樣的網路共同構成了廣域網,如:2G、3G、4G、5G、衛星、雲、MPLS、專用電路、網際網路、LoRaWAN 等。因此,“ WAN 模擬器”已演變為更通用的“網路模擬器”。

雖然廣域網的組成變複雜了,但是在 LAN 中執行良好的應用程式在非 LAN 網路(例如 4G 網路)中可能會很糟糕,這仍然是絕對正確的。

因此,網路損傷儀的工作重點是經過一系列的測試,讓您能夠確定您的應用程式是否已經可以完美地適應真實多變的廣域網。無論廣域網環境有多糟糕,您的應用程式依然能保持正常運作。與在真實的廣域網中測試,使用網損傷儀進行測試,節省了大量時間和成本。

網路損傷儀是一件神器,但是如何挑選適合自己產品的網路損傷儀呢?我們需要從以下7個方面來考慮。

1、網路損傷儀接入網路的方式

這個問題乍一看很奇怪,但實際上非常重要。在產品發售之前,您的應用程式可能已經在實時網路、測試或開發環境中執行測試過了。在測試實驗室環境下,您可以給應用程式建立一條專屬的網路線路,給它安排許多測試用例。但是當我們通過網路損傷儀來對應用程式進行測試時,我們不應該再為應用程式建立單獨的鏈路。相反,我們要將網路損傷儀串接在測試網路中。網路損傷儀應該可以適應和橋接不同的路由;支援NAT,可以識別靜態和動態路由;可以串接在各種不同網路型別之間。只有這樣,我們才能將網路損傷儀輕鬆的插入我們現行的網路中,並且做到對現有的環境干擾最小甚至做到無干擾。

2、易用性

我使用過很多產品,有些經常在用,有些則用得比較少。但是,坦率地說它們都很難使用。這導致我每次使用這些產品都非常痛苦。特別是一些不經常用到的產品,每次使用都要重新回想一下使用方式,這使得產品變得更加難用。

一款簡單好用的網路損傷儀首先應該做到的是簡單易用。我們可以從以下幾方面來評估網路損傷儀是否易用:

  • 它應該擁有許多預先準備好的網路模型。例如 2G、3G、4G 、城市到城市(如芝加哥到紐約)等,通過選擇這些現成的網路模型,能夠節約許多的測試時間。
  • 如果我們需要建立更復雜的網路結構,例如多鏈路、網狀、中心和輻條等,也應該選擇擁有開箱即用的配置和嚮導的網路損傷儀。這些配置可以幫助我們簡單地組建複雜的網路。
  • 當我們在測試我們的應用程式時,想要改變網路環境引數時,例如良好的 4G 更改為有損 4G(訊號變差),那麼一款好用的網路損傷儀應該可以實現實時的、無縫的網路場景切換。而不是改變一個引數,需要暫停測試,編寫一堆指令碼。

3、有價值的損傷型別

在與一些使用者交談時,我發現一款網路損傷儀能提供的損傷數量往往會是客戶最先考慮而且起到決定性作用的因素,例如產品 X 有 200 個損傷型別,產品 Y 有 300 個損傷型別,所以Y一定比X好,對吧?其實不然!

這就像數碼相機的好壞一樣——12兆畫素的相機一定比8兆畫素的相機好,對吧?也沒有!稍微瞭解一些相機的人就知道鏡頭的質量同樣很重要(擁有 1200 萬個模糊畫素有什麼意義?)。而且對於相同尺寸的內部螢幕 (CCD),單個畫素上的光線較少,因此畫素越多,低光效能可能越弱。

從相機這個例子可以看出,對於網路損傷儀來說:比較損傷種類的多少是沒有意義的——重要的是你需要那些損傷型別,並且這些損傷型別對模擬真實的廣域網環境起到了決定性的作用。

4、快速分析

您要如何知道您的應用程式受到您“撥入”的特定網路條件的影響有多大?有些影響是我們可以用肉眼觀察到的,比如:應用程式在極差的網路條件下崩潰或超時,手動和自動測試都將失敗。

如果資料受到了額外的時延,那麼問題就會出現。這個時延是多大?它導致資料慢了多少?對於使用者來說是可以接受還是不可以接受?

一款優秀的網路損傷儀應該對每一項損傷資料都進行統計,將生成的最終資料報告顯示給測試人員。這麼一來,才能解放人力,使測試人員不必時時刻刻待在損傷儀旁邊記錄資料。

好的測試報告還能為您提供一些建議。例如,通過測試報告,您可以分析出當您將應用程式伺服器從本地遷移到雲時會發生什麼,從而為您節省更多時間。

5、自動化測試

在大多數測試中,都不會邀請真實的使用者來進行測試。即使是在 UAT(使用者驗收測試)中,在測試剛剛開始時,都不會優先選擇真實的使用者來做測試。

因為,對於大多數測試而言,人員是非常昂貴的資源。所以,如果網路損傷儀可以提供自動化測試可以大大節約人力資源。

對於不同的產品,使用的測試工具也會有差別:

  • 測試自動化產品——測試應用程式功能,如 Selenium
  • 測試負載生成器——載入時測試應用程式效能
  • 你自己的指令碼——通常用 Python 編寫
  • Shell 指令碼
  • 持續整合軟體——比如 Jenkins

根據您的自動化需求,控制網路損傷儀的方式也有許多:

  • REST API(有時稱為 RESTful API——使用 http(s) 方法 GET、PUT 等來控制產品
  • 命令列介面 (CLI)
  • IP 套接字介面

現在國內大多的網路損傷儀都只提供 Python API 和 RESTful API。

但是,無論你選擇哪個 API,都要小心一些語言陷阱。例如,你諮詢網路損傷儀廠家:“你有API嗎?” 他們回答:“是!”。但是要確保這些產品具有自動化所需的所有功能,而不是隻能提供其中一部分功能的介面。

6、併發操作

一些網路損傷儀只支援單使用者使用。意味著只有當第一個使用者使用完損傷儀之後,另一個使用者才可以開始使用。這就造成了對網路損傷儀的爭用,大大增加了測試周期的長度。此時,為了完成測試任務,您不得不購買多個這樣的網路損傷儀。

如果一個網路損傷儀可供多個使用者(或團隊)同時使用,這就可以節約測試時間與經費。

對於可以同時併發操作的網路損傷儀有一些要求:

  • 使用者應該能夠在不影響其他使用者的情況下啟動、停止和修改他們的網路損傷,就像是每個使用者單獨操作了一臺網路損傷儀;
  • 需要有一種可以將一對物理埠(或 vNIC)拆分為多個子介面、虛擬埠或軟埠的方法,就是網路損傷儀應該可以建立多條虛擬鏈路;
  • 網路損傷儀應該存在一個保護機制,將不同使用者分隔開來,防止他們對有限資源的爭搶。

7、支援

我們都喜歡開源的或者免費的軟體。 但是,這些免費的軟體一旦出現了我們看不懂的問題,那隻能在網上尋找答案。對於常見的產品來說,問題的解決方案會很多。但對於一些少見的或者專業性很強的產品,如網路損傷儀,網上關於這方面的資訊很少,導致問題很有可能無法得到及時的解決。

第二個問題是誰負責產品的安全?假如我們只在一個沒有網路的測試實驗室來使用它,那可能沒問題。但對於 DevOps、持續測試、開發來這些需要連線廣域網的測試來說,產品的安全保障非常重要。而且,就算把它部署到孤立的實驗室中,也難免會遇到安全問題。

第三,免費開源的產品通常不會有專業的團隊為它維護和升級。例如,許多新的技術與網路模型都是免費的網路損傷儀沒有的。

因此,擁有來自成熟供應商的適當支援的產品,應該是會定期安全更新、錯誤修復和推出新功能,以解決上述的問題。

瞭解更多關於網路損傷儀WANsim的資訊:http://www.wansim.top