字型:大
中軟體測試
測試工具
隨著網路技術的不斷發展,大量分布式系統被部署在網路中,常見的如web應用、web service等。分布式系統不同於一般軟體系統,它通常由物理分布的多個子系統組成,這些子系統通過相互間的協作完成計算任務,具有物理分布、併發訪問、時序敏感、平台異構等特點。此外,分布式系統中的諸多子系統在觸發方式、工作方式等方面往往也不屬於同一型別,比如,通過網路協議傳遞訊息的子系統和利用本地介面進行方法呼叫的子系統等。 因此,對分布式系統的測試也不同於一般軟體系統的測試,需要採用分布式測試。
一、什麼是分布式測試
分布式測試是指通過區域網和internet,把分布於不同地點、獨立完成特定功能的測試計算機連線起來,以達到測試資源共享、分散操作、集中管理、協同工作、負載均衡、測試過程監控等目的的計算機網路測試。
二、分布式測試系統的特點
分布式測試系統是傳統網路化測試系統的進一步發展,具有以下主要特點:
(1)網路化。網路化的目的是實現多個測試節點間基本的互連、互通功能,實現資源共享,是分布式測試系統的底層支撐結構。
(2)分布性。分布式測試系統不僅在地域上分布,而且在計算上也應是分布的。這對測試系統提出了一些更高的要求,如測試子系統間協同工作、整體檢視、負載均衡、具有可擴充套件性和高可用性等。同時,分布式測試系統對使用者具有位置透明性,測試資訊「唾手可得」。
(3)開放性。開放性包含四個方面的特徵,即可移植性、可互操作性、可伸縮性、易獲得性。分布式測試系統能夠採用各種cots(commercial-off-the-shelf,商業上現成的產品和技術)軟/硬體模組,給系統的構造帶來諸多便利。
(4)實時性。分布式測試系統本質上是乙個實時系統,任務間協同工作處理各種測試資訊都必須是實時的,對過程之間的同步、操作的時限有著嚴格要求。
(5)動態性。測試系統可以動態地執行操作,支援測試過程中的所有的管理和測試活動,能靈活地根據測試實施方案,進行測試過程物件和活動的對映。
(6)處理不確定性。分布式測試環境的初始狀態是確定的、已知的,但隨著系統的執行,各種動態實體在環境中變化,同時對環境產生影響,使得環境也發生某些變化,這種動態變化帶來了不確定性,分布式測試系統必須具有處理這種不確定性的能力。
(7)容錯能力強,可靠性高、安全性好。
三、分布式測試系統關鍵技術
(1)分布式環境
對分布式測試而言,測試過程是一種對流程控制要求很高的活動,因此系統需要適時地獲取全域性狀態以正確地指導流程;其次,在測試過程中,系統要能夠方便地監視和操縱測試過程。因此,分布式測試系統適合採用集中式的分布式策略,即,由一台中心計算機控制若干臺受控計算機的執行,整個測試過程和資源管理由中心來完成,它掌握整個分布式測試環境的狀態,從而發出控制命令。
(2)分布式環境下的節點通訊
分布式測試環境中的活動均帶有很強的流程性,某一步操作的失敗會導致整個測試流程的中斷和異常,因此需要乙個穩定的通訊環境。同時,通訊主要是在中心節點和執行節點之間進行,兩種節點的主要工作都集中在測試活動並且在邏輯上中心節點和執行節點相互併發,具有一定的獨立性。因此,分布式測試系統相對於提供服務的分布式系統而言,適合用基於訊息通訊的方式來實現。
(3)測試任務排程
分布式測試的優點是測試人員可以事先定製任務執行的時間表,如在指定時間、指定裝置上執行指定的測試任務。但同時也面臨乙個問題,在硬體和軟體資源有限的情況下,如何以最有效的方式完成測試任務?其中關鍵的問題就是測試排程。分布式測試排程是指把組成測試任務的一組測試用例,分配到分布式測試系統的不同執行節點上,並按照一定的測試時序排程執行,以滿足事先制定的測試需求。分布式測試排程方法可分為靜態排程、動態排程和混合排程三類。靜態排程是指假設系統的拓撲結構和效能引數固定不變,設計排程演算法時只考慮當前系統狀況,並針對當前狀況盡量優化排程效能。動態排程則是指在測試執行過程中,根據系統的執行狀況(如執行節點加入或退出、執行節點資源使用情況等),動態地決定各個用例的執行節點和相應的執行時間。動態排程比靜態排程更加靈活,但也會帶來更多的排程開銷,有可能影響最終的排程效能。混合排程是靜態排程和動態排程二者的組合方法,一般來說,它根據測試用例和系統的特點,對部分用例採取靜態排程策略,對另一部分用例則採取動態排程策略。這三種方法各有利弊,需要測試人員根據具體測試情況來選擇使用哪種排程方法。
以上對分布式測試系統的特點和部分關鍵技術進行了簡單分析。隨著越來越多的領域活動依賴於分布式應用,分布式測試將受到人們更大的關注,測試系統實現技術也將不斷發展成熟,以便快速高效地發現軟體中存在的功能和效能缺陷。
Jmeter分布式壓力測試工具的使用
一 壓力測試簡介 軟體測試 英語 software testing 描述一種用來促進鑑定軟體的正確性 完整性 安全性和質量的過程。換句話說,軟體測試是一種實際輸出與預期輸出間的審核或者比較過程。軟體測試的經典定義是 在規定的條件下對程式進行操作,以發現程式錯誤,衡量軟體質量,並對其是否能滿足設計要求...
Jmeter分布式測試
很多時候,我們測試時,如果進行大資料量的併發測試時,單個電腦的 和記憶體可能無法承受,這個時候,我們需要進行乙個分布式的測試,比如10000個併發,使用三颱電腦來進行併發 jmeter提供了這種功能,你可以很輕鬆的實現jmeter的這種分布式測試 1 首先確何所有的電腦上都安裝jmeter 2 在所...
Jmeter分布式測試
很多時候,我們測試時,如果進行大資料量的併發測試時,單個電腦的 和記憶體可能無法承受,這個時候,我們需要進行乙個分布式的測試,比如10000個併發,使用三颱電腦來進行併發 jmeter提供了這種功能,你可以很輕鬆的實現jmeter的這種分布式測試 1 首先確何所有的電腦上都安裝jmeter 2 在所...