The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks
          OA應(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è)試是用來確定被測(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è)試主要用來測(cè)試單個(gè)service的性能。首先加一個(gè)虛擬用戶作為負(fù)載量,然后對(duì)同一測(cè)試用例按照比例的增加并發(fā)虛擬用戶數(shù),并分別記錄下測(cè)試結(jié)果,最后計(jì)算出這些測(cè)試結(jié)果的平均值作為平均響應(yīng)時(shí)間。

          下圖為某個(gè)web服務(wù)在不同并發(fā)虛擬用戶數(shù)下平均響應(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)用程序沒有出現(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)景,來測(cè)量應(yīng)用在單位時(shí)間內(nèi)能夠處理的事務(wù)數(shù)量。

          這是針對(duì)一個(gè)業(yè)務(wù)場(chǎng)景進(jìn)行的性能測(cè)試用例,同樣首先加一個(gè)虛擬用戶作為負(fù)載量,然后對(duì)同一測(cè)試用例按比例的增加并發(fā)虛擬用戶數(shù),最后記錄下不同虛擬用戶數(shù)下的吞吐量。

          下圖為不同并發(fā)虛擬用戶數(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ù)載來測(cè)試 SOA應(yīng)用程序的capacity scale。具體地說,一般容量測(cè)試是為了檢測(cè)在達(dá)到一定響應(yīng)時(shí)間或吞吐量的前提下被測(cè)應(yīng)用能夠支持的并發(fā)用戶數(shù)。其中容量測(cè)試包括了以下幾方面內(nèi)容:
          • 定義訪問系統(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è)試,用來測(cè)試SOA應(yīng)用程序的健壯性。通過soak test往往可以發(fā)現(xiàn)內(nèi)存泄露,頻繁 GC 等嚴(yá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í)際使用情況接近。
          posted on 2014-02-26 11:06 Eric_jiang 閱讀(320) 評(píng)論(0)  編輯  收藏 所屬分類: Testing

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 视频| 陆良县| 勐海县| 都安| 禄丰县| 双城市| 上林县| 临江市| 凤凰县| 西畴县| 嵩明县| 秀山| 平凉市| 隆化县| 深水埗区| 洞头县| 抚顺市| 汉阴县| 白玉县| 南宫市| 湘潭县| 荥阳市| 临清市| 永定县| 肇源县| 城口县| 林口县| 嵩明县| 吉林市| 安阳市| 阿拉善盟| 蒙自县| 康保县| 古丈县| 富蕴县| 禄劝| 河北区| 宿州市| 太和县| 辽阳市| 黄骅市|