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