疑難排解負載測試中的網路模擬
本主題中的疑難排解資訊適用於負載測試的網路模擬,而且在 Microsoft Visual Studio 2010 Ultimate 中負載測試的網路類型不是區域網路 (LAN)。 在 [編輯網路混合] 對話方塊中,您可以將負載測試設定為使用下列網路類型:
LAN (預設,不適用於此疑難排解主題)
3G
Cable-DSL-1.5Mbps
Cable-DSL-768k
Cable/DSL-384k
CDMA
Dial-up 56k
Intercontinental slow WAN 300 Kbps
Intercontinental WAN 1.5 Mbps
Intracontinental WAN 1.5 Mbps
如需詳細資訊,請參閱 HOW TO:在新增負載測試精靈中建立網路混合和在負載測試情節中指定虛擬網路類型。
實際網路模擬
Microsoft Visual Studio 2010 會針對所有測試類型使用軟體實際網路模擬。其中包括負載測試。 實際網路模擬會藉由直接操作網路封包,來模擬網路狀況。 實際網路模擬器可以使用可靠的實體連結 (如乙太網路),來同時模擬有線和無線網路。 下列網路屬性會納入實際網路模擬中:
網路的來回時間 (延遲)
可用的頻寬量
佇列行為
封包遺失
封包重新排序
錯誤傳用
實際網路模擬在根據 IP 位址或 TCP、UDP 和 ICMP 之類通訊協定篩選網路封包方面,也提供了相當的彈性。
網路架構開發人員和測試人員可以使用實際網路模擬,來模擬所要的測試環境、評定效能、預測變更的影響或者做出有關技術最佳化的決策。 與硬體測試平台相較之下,實際網路模擬是成本更低但彈性更高的一種解決方案。
網路模擬如何在負載測試中運作
若要在負載測試中使用網路模擬,您必須已安裝 Microsoft Visual Studio 2010 Ultimate。 網路模擬是使用 [編輯網路混合] 對話方塊加以設定。 顯示此對話方塊的方式包括使用 [新增負載測試精靈],以及以滑鼠右鍵按一下負載測試中的現有情節,然後按一下 [編輯網路混合]。
當您啟動負載測試時,它會針對您在網路混合中選取的每個網路設定檔 (例如 DSL 和 56.K 數據機) 配置可用的通訊埠範圍。 此通訊埠範圍可供在執行階段啟用的網路模擬驅動程式使用 (網路模擬驅動程式預設為停用)。
在負載測試期間,當負載產生器傳送要求至待測應用程式時,會從通訊埠範圍中指定一個通訊埠。 當網路模擬驅動程式從所選通訊埠範圍偵測到此通訊埠時,就能將此通訊埠與此要求應遵循的網路設定檔產生關聯。 如此可讓驅動程式壓制軟體的負載,確保其符合您選取的網路設定檔。
如何得知網路模擬並未執行
通常您會看見的徵兆就是負載測試在記錄檔中記錄通訊端例外狀況,如下所述:
"The requested address is not valid in its context xx.xx.xx.xxx:80"
注意事項 |
---|
其他狀況也可能造成這類通訊端例外狀況。 負載測試可能會繼續進行,但是通訊端例外狀況會加以記錄。 下節將幫助您找出此問題並進行疑難排解。 |
如何疑難排解網路模擬
您必須先確定已完成基本測試,才能有效找出問題並且進行疑難排解。
確認參與負載測試的所有電腦都具有完整的網路連線。
確定您已依照指示正確設定網路模擬,並且確認具有測試代理程式的系統管理員權限。
當您進行疑難排解時,查看所有防火牆是否已停用,以確保防火牆不會封鎖網路上的特定通訊埠或流量。
確定負載產生器電腦上沒有任何病毒軟體阻礙此軟體。
若要找出此問題是發生在網路模擬驅動程式或負載測試元件中,請依照下列步驟進行:
排除網路模擬驅動程式這個原因:
在正確設定網路模擬的情況下執行負載測試,即使可能會看見通訊端例外狀況。
Ping 另一部主機,查看輸出顯示網路變慢、較高延遲,或兩者都有。 檢查延遲值是否符合選取的網路設定檔。 如果延遲值符合您選取的設定檔,表示網路驅動程式運作正常。
從執行負載測試所在的測試代理程式電腦,嘗試連線至任何外部主機,例如 [我的最愛] 裡的網頁。 這項測試會驗證,當負載測試執行且網路驅動程式為啟用狀態時,外部或實驗室連線不會造成問題。 這樣就會將網路模擬驅動程式排除在問題範圍之外。
排除負載測試元件這個原因:
您可以在負載產生器所在電腦 (測試代理程式電腦) 上下載和執行 Sendrequests.exe (英文)。 Sendrequests.exe 是範例程式,可在網路模擬負載測試期間用於疑難排解通訊端例外狀況。
警告
Microsoft 不支援 Sendrequests.exe。
此範例程式會模擬負載測試元件中真正使用的通訊端連線呼叫集合。 如果此測試程式也顯示通訊端例外狀況,就能將負載測試產品從造成通訊端例外狀況的原因中排除。 通訊端例外狀況也會指出,問題是在環境、電腦、網路中或工具外部發生。
請先偵錯外部問題,再嘗試再次執行負載測試。
如果此範例程式正確運作,您將會看見下圖所示的輸出。 這樣就能確定問題可能是在負載測試程式中發生,而環境不是造成問題的可能原因。
Sendrequests.exe 成功輸出
IPSEC 與網路模擬不相容
如果啟用 IPSEC,網路封包中的通訊埠會經過加密。 因此,網路模擬驅動程式將無法判斷封包是否來自負載測試引擎所設定的指定通訊埠範圍,如之前在網路模擬如何在負載測試中運作中所述。 您必須停用 IPSEC,網路模擬才能運作。