SOA應用程序的性能測試包括了benchmarking test(基準測試),capacity test(容量測試)和sOAk test(浸泡測試)三個主要測試階段。
基準測試(Benchmarking Test)
基于SOA的性能測試第一階段是基準測試,基準測試是用來確定被測應用程序是否存在性能衰退,并且收集可重復性能測試結果以作為性能基準。基準測試的最好方法是每次測試只改變一個參數。基準測試包括了相應時間驅動的測試和吞吐量驅動的測試。
響應時間驅動測試
對于web service的應用程序,其中響應時間定義為發送一個服務請求到收到服務響應的時間間隔。響應時間驅動的測試主要用來測試單個service的性能。首先加一個虛擬用戶作為負載量,然后對同一測試用例按照比例的增加并發虛擬用戶數,并分別記錄下測試結果,最后計算出這些測試結果的平均值作為平均響應時間。
平均響應時間隨著并發虛擬用戶數的增加而增加。在用戶數從50到100,平均響應時間開始比較大幅度地增長,此時很有可能某個系統資源出現了瓶頸,當然前提條件是在被測應用程序沒有出現錯誤的情況下。此時可以進行調優,但要保證每次只改動一個參數值,然后再次執行相同測試用例,并與之前的結果進行對比,選取結果最優的參數配置。
吞吐量驅動測試
吞吐量被定義為在單元時間內能夠成功處理的服務請求的數量。吞吐量驅動的測試主要是基于一組連續web服務形成一個或多個測試場景,來測量應用在單位時間內能夠處理的事務數量。
這是針對一個業務場景進行的性能測試用例,同樣首先加一個虛擬用戶作為負載量,然后對同一測試用例按比例的增加并發虛擬用戶數,最后記錄下不同虛擬用戶數下的吞吐量。
與響應時間一樣,吞吐量也隨著并發虛擬用戶數的增長而增長,但不同的是吞吐量在達到某一最高點后,再增加并發虛擬用戶時吞吐量則保持與最高值接近。這是由于當用戶數較少時,單位時間內發出的服務請求較少,所以測出的吞吐量較小,當用戶數增加,發出的服務請求增加,所以吞吐量也隨之增加,當吞吐量達到最高值表明被測應用在測試的硬件環境下達到處理事務的最高能力。最后同樣要做性能調優,以選取最優的吞吐量最大值時的配置情況。
容量測試(Capacity Test)
容量測試的目標是要看被測應用在一定測試環境下能夠達到的最大處理能力。容量測試將模擬更加接近真實用戶使用的環境,并且用更為真實的用戶負載來測試 SOA應用程序的capacity scale。具體地說,一般容量測試是為了檢測在達到一定響應時間或吞吐量的前提下被測應用能夠支持的并發用戶數。其中容量測試包括了以下幾方面內容:
定義訪問系統的并發虛擬用戶數
定義虛擬用戶的think time,也就是發出兩個連續請求之間的時間間隔。
用ramp-up run的方式增加負載量進行測試,得到被測應用能夠支持的虛擬用戶數的范圍。
在應用支持的用戶數地范圍內,采用flat run的方式進行測試,以得到更為精確性能結果。
浸泡測試(Soak Test)
Soak test是在一個穩定的并發用戶上進行的long run測試,用來測試SOA應用程序的健壯性。通過soak test往往可以發現內存泄露,頻繁 GC 等嚴重性能問題。進行soak test需要注意以下兩點:
Soak test需要在一定適中的用戶負載量下進行,最好低于應用支持最大的負載量。
在執行long run測試時,采用幾種不同用戶組,并且每個用戶組織性不同的業務流程。
Soak test實際上比較簡單的性能測試,測試最好能夠運行幾天,以真正得到一個健壯的應用。確保應用測試是貼近真實世界,盡量與實際使用情況接近。
在執行應用程序負載測試的時候,很難預測一項新的Web服務將要經受的流量。盡管初期預測是精確的,但Web服務經常隨著超出企業連接范圍的外部用戶的使用而增長。JetBlue質量經理Sagi Varghese談到為了減少性能風險,從相關應用程序分離出來,單獨測試Web服務的性能以及將測試結果文檔化至關重要。
Varghese 表示:“一旦你向社區發布了一項Web服務,你并不完全了解用例將會是什么。所以你希望獨立地測試Web服務并發布指南說明我們已經對Web服務進行過哪些測試,這就是性能的體現。”
依照期望的并發用戶數量,大多數Web應用程序都有一個固定的需求。當測試團隊了解到期望的流量種類后,負載測試將提供更多逼真的結果。雖然Web服務可以經受到來自用戶和其他服務的攻擊,但保持性能標準是最新的也很重要。
特別的,JetBlue的測試人員觀察若干連接并將其與響應時間進行對比。如果一項Web服務的響應時間超過一秒,這就是有問題的,Varghese說道。他的團隊在開始性能測試之前,會查看有多少并發連接服務可以被處理。平均響應時間趨近于小于0.5秒。
當并發連接的上限找到的時候,就會有一項限制來阻止在一定時刻內,消費Web服務的用戶數量。為了防止出現性能下降,流量溢出將被放入一個隊列中。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.hanmeixuan.com/