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