qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          性能測(cè)試知多少---性能需求分析

            需求分析是個(gè)繁雜過(guò)程,它并非我們想象的那么簡(jiǎn)單,而性能測(cè)試需求除了要對(duì)系統(tǒng)的業(yè)務(wù)非常了解,還需要有深厚性能測(cè)試知識(shí)。才能夠挖掘分析出真正的性能需求。

            如何獲得有效的需求

            1、客戶方提出

            客戶方能提出明確的性能需求,說(shuō)明對(duì)方很重視性能測(cè)試,這樣的企業(yè)一般是金融、電信、銀行、醫(yī)療器械等;他們一般對(duì)系統(tǒng)的性能要求非常高,對(duì)性能也非常了解。提出需求也比較明確。

            曾經(jīng)有一個(gè)銀行項(xiàng)目,已經(jīng)到最后的性能測(cè)試極端,因?yàn)?a target="_self">數(shù)據(jù)庫(kù)設(shè)計(jì)不合理,導(dǎo)致性能出現(xiàn)很大的問(wèn)題,最終不得不把整合項(xiàng)目作廢,對(duì)于這樣的項(xiàng)目,其實(shí)從分析設(shè)計(jì)階段就應(yīng)該考慮系統(tǒng)的性能問(wèn)題。性能測(cè)試也一樣,對(duì)于某些項(xiàng)目來(lái)說(shuō)越早進(jìn)行越好。當(dāng)然,前期的性能測(cè)試為單元性能測(cè)試、接口性能測(cè)試,有別系統(tǒng)性能測(cè)試。

            有時(shí)候也會(huì)碰到不懂裝懂的客戶,提出一些無(wú)理的需求,比如只能2000人使用的OA系統(tǒng),客戶要求并發(fā)用戶2000,這顯然是不合理的需求。這個(gè)就要看你怎么給客戶溝通了。但是,千萬(wàn)別偽造數(shù)據(jù)欺騙客戶。

            2、根據(jù)歷史數(shù)據(jù)分析

            對(duì)于一些面向用戶的獨(dú)特產(chǎn)品,比較難定位市場(chǎng)的大小,可以先上一運(yùn)營(yíng)一段時(shí)間,通過(guò)運(yùn)營(yíng)可以搜集客戶資料,比如,每月、每星期、每天的峰值業(yè)務(wù)量是多少。用戶以 什么樣的速度在遞增中。用戶對(duì)系統(tǒng)的哪些功能模塊使用的最多,他們所點(diǎn)的比例等等。

            收集到這些數(shù)據(jù)之后,我們就可評(píng)估系統(tǒng)的系統(tǒng)需求指標(biāo),從而進(jìn)行性能測(cè)試。

            3、需求分析與定位

            這里根據(jù)前期的需求分析與定位,來(lái)分析確定系統(tǒng)性能指標(biāo)。例如某省幼兒園管理系統(tǒng)。統(tǒng)計(jì)全省有多少家幼兒園,系統(tǒng)的使用時(shí)間為幼兒到校之后,管理人員對(duì)幼兒的到校情況進(jìn)行錄入,以及幼兒的午飯,放學(xué)情況的錄入時(shí)間。經(jīng)過(guò)與需求人員交流分析也能得到比較明確的性能指標(biāo)。

            4、參考?xì)v史項(xiàng)目或其它同行業(yè)的項(xiàng)目

            如果公司之前有類(lèi)似的項(xiàng)目經(jīng)驗(yàn),根據(jù)項(xiàng)目大小及上次性能測(cè)試的一些指標(biāo)。從根據(jù)項(xiàng)目的規(guī)??梢灾贫ǔ鱿鄳?yīng)的性能指標(biāo)。

            即使本公司沒(méi)有類(lèi)似的項(xiàng)目,但其它公司有類(lèi)似的項(xiàng)目,例如做IPTV或者DVB計(jì)費(fèi)系統(tǒng)的測(cè)試,可以參考電信計(jì)費(fèi)系統(tǒng)的需求——雖然不能完全照搬數(shù)據(jù),但是可以通過(guò)其他行業(yè)成熟的需求來(lái)了解需要測(cè)試的項(xiàng)目有哪些,應(yīng)該考慮到的情況有哪些種。

            5、參考其它資料數(shù)據(jù)

            如果你做的是非常獨(dú)特的產(chǎn)品,市場(chǎng)上沒(méi)有此類(lèi)型的產(chǎn)品,而且需求及市場(chǎng)也難以估計(jì),那么只能從與產(chǎn)品相關(guān)的資料中尋找痕跡了。不過(guò),相信這樣不確定性的產(chǎn)品,老板要承擔(dān)的風(fēng)險(xiǎn)也是挺大的。^_^

            需要說(shuō)明的是,我上面介紹的方面并非是獨(dú)立的,可以綜合的使用,你可以根據(jù)客戶提出的指標(biāo),再根據(jù)歷史數(shù)據(jù)以及參考同類(lèi)型項(xiàng)目來(lái)進(jìn)行。這樣可以更確定你的性能指標(biāo)是客戶(或自己)真正需要的、最符合項(xiàng)目需求的。

            性能測(cè)試點(diǎn)的選取

            * 發(fā)生頻率非常高的(例如:某郵箱核心業(yè)務(wù)系統(tǒng)中的登錄、收發(fā)郵件等業(yè)務(wù),它們?cè)诿刻斓臉I(yè)務(wù)總量中占到90%以上)

            * 關(guān)鍵程度非常高的(產(chǎn)品經(jīng)理認(rèn)為絕對(duì)不能出現(xiàn)問(wèn)題的,如登錄等)

            * 資源占用非常嚴(yán)重的(導(dǎo)致磁盤(pán)I/O非常大的,例如某個(gè)業(yè)務(wù)進(jìn)行結(jié)果提交時(shí)需要向數(shù)十個(gè)表存取數(shù)據(jù),或者一個(gè)查詢提交請(qǐng)求時(shí)會(huì)檢索出大量的數(shù)據(jù)記錄)





            對(duì)性能需求點(diǎn)的描述

            準(zhǔn)確

            如**系統(tǒng)必須在不超過(guò) 10 秒的響應(yīng)時(shí)間內(nèi),處理 20 起登錄任務(wù)。再如發(fā)郵件時(shí)間最大不超過(guò)5秒以及平均時(shí)間在2秒以內(nèi)。

            一致

            用戶和性能測(cè)試工程師對(duì)有關(guān)術(shù)語(yǔ)的理解要一致,如:并發(fā)用戶數(shù)、在線用戶數(shù)、注冊(cè)用戶數(shù):

            特定

            性能測(cè)試的需求一定是有條件的。

            檢查系統(tǒng)后臺(tái)關(guān)鍵業(yè)務(wù)數(shù)據(jù)10G、操作數(shù)據(jù)量為20K, 1500 個(gè)用戶、500 個(gè)并發(fā)用戶運(yùn)行的負(fù)載下,連續(xù)運(yùn)行12小時(shí)過(guò)程中,業(yè)務(wù)操作是否滿足性能需求。

            常見(jiàn)性能需求

            1、WEB首頁(yè)打開(kāi)速度5s以下,web登陸速度 15s以下。

            2、郵件服務(wù)支持50萬(wàn)個(gè)在線用戶

            3、計(jì)費(fèi)話單成功率達(dá)到99.999%以上。

            4、在100個(gè)并發(fā)用戶的高峰期,郵箱的基本功能,處理能力至少達(dá)到10TPS

            5、系統(tǒng)能在高于實(shí)際系統(tǒng)運(yùn)行壓力1倍的情況下,穩(wěn)定的運(yùn)行12小時(shí)

            6、這個(gè)系統(tǒng)能否支撐200萬(wàn)的vu(每天登錄系統(tǒng)的人次)          vu----Virtual user(虛擬用戶)

            如何把需求轉(zhuǎn)換成性能指標(biāo)

            我們把200萬(wàn)vu轉(zhuǎn)換成一系列的指標(biāo)

            ™響應(yīng)時(shí)間:根據(jù)國(guó)外的一些資料,一般操作的響應(yīng)時(shí)間為2,5,10秒,2秒內(nèi)優(yōu)秀,5秒內(nèi)良好,10秒內(nèi)可接受,其它一些特殊的操作,如上傳,下載可以依據(jù)用戶體驗(yàn)的情況,延長(zhǎng)響應(yīng)時(shí)間。

            ™吞吐量:可以根據(jù)已經(jīng)上線的類(lèi)似產(chǎn)品進(jìn)行估計(jì)。或者,采用80/20原則進(jìn)行估計(jì)。我們經(jīng)常使用的是80/20原則。

            80/20原則:又稱帕累托效應(yīng),比如,80%的社會(huì)財(cái)富掌握在20%的人手里。

            應(yīng)用于測(cè)試:從vu計(jì)算吞吐量?根據(jù)80/20原則,80%的用戶會(huì)在20%的繁忙時(shí)間內(nèi)登陸。則繁忙時(shí)間每秒大概會(huì)有(2000000*80%)/(24*3600*20%)=100個(gè)用戶登陸 ,也就是說(shuō),登陸操作的吞吐量是100TPS

            如何根據(jù)性能需求進(jìn)行測(cè)試

            其實(shí)我們上面得到的需求指標(biāo)仍然是不明確的:

            是驗(yàn)證當(dāng)前硬件和軟件配置能否支撐200萬(wàn)vu?

            是測(cè)試當(dāng)前的硬件和軟件配置最多能支撐多少vu?

            是幫助開(kāi)發(fā)尋找性能瓶頸?

            根據(jù)需求進(jìn)行性能測(cè)試的過(guò)程:



            首先,請(qǐng)你們當(dāng)前軟件和硬件配置下驗(yàn)證能否支撐200萬(wàn)vu。如果可以支撐200萬(wàn),再增加到300萬(wàn)看是否可以支撐。如果不能達(dá)到200萬(wàn), 那么就需要尋找一下是否有性能瓶頸,將主要的性能瓶頸解決后,再看一下是否可以支撐200萬(wàn),如果可以支撐,輸出測(cè)試結(jié)果。仍然不能,請(qǐng)?jiān)u估需要添加多少 硬件設(shè)備。

            通過(guò)上面流程的分析,那么我們對(duì)于需求實(shí)施過(guò)程就非常明確了。

            下面看來(lái)分析某郵箱系統(tǒng)的需求:

            按照 某某 郵箱20000萬(wàn)注冊(cè)用戶,其中日活躍用戶數(shù)為1.5%的規(guī)模計(jì)算:

            日活躍用戶=20000*1.5%=300萬(wàn)

            日活躍用戶人均每天發(fā)6封郵件,用戶使用客戶端收發(fā)郵件比例20%,則:

            每天發(fā)郵件投遞量=300萬(wàn)*6*20%=360萬(wàn)封

            如何得到每秒的郵件數(shù)?

            方式一: 嚴(yán)格的根據(jù)2/8原則  ,80%的郵件集中在20%的時(shí)間發(fā)送。
            集中發(fā)郵件數(shù):  3600000*80%=28800000封
            集中發(fā)送的時(shí)間:24*20%=4.8小時(shí)=17280秒
            每秒發(fā)送郵件數(shù):2880000/17280=166.7封/秒

            方式二,根據(jù) 某某郵箱業(yè)務(wù)模型表,每天忙時(shí)集中郵件系數(shù)0.15,郵件平均峰值系數(shù)2,則:
            峰值郵件量=3600000*0.15*2/3600=300封/秒
            注:忙時(shí)集中系數(shù)=忙時(shí)業(yè)務(wù)量/全天業(yè)務(wù)量

            在兩種方式的分析中,方法二得出的結(jié)果是方法一的將近一倍,我們不要根據(jù)經(jīng)驗(yàn)理所當(dāng)然的去分析,要深入的了解系統(tǒng),我們要對(duì)行業(yè)指標(biāo)及計(jì)算方 式。如果按照第一種方式,性能測(cè)試達(dá)標(biāo)了,但系統(tǒng)真正上線后可能遠(yuǎn)遠(yuǎn)超出了我們的評(píng)估。2008年北京奧運(yùn)運(yùn)門(mén)票系統(tǒng)就是一個(gè)典型的案例。

            再來(lái)分析系統(tǒng)的登錄:

            去年全年處理“WEB登錄”交易約 100 萬(wàn)筆,考慮到 3 年后交易量遞增到每年 200萬(wàn)筆。

            假設(shè)每年交易量集中在 8 個(gè)月,每個(gè)月 20 個(gè)工作日,每個(gè)工作日 8 小時(shí),試采用 80~20 原理估算系統(tǒng)服務(wù)器高峰期“WEB登錄”的交易吞吐量應(yīng)達(dá)到怎樣的一個(gè)處理能力

            200萬(wàn)/8=25萬(wàn)/月
            25萬(wàn)/20=1.25萬(wàn)/日
            1.25萬(wàn)*80%/(8*20%*3600)=1.74TPS

            ----------------------

            上面的小案例算是拋出的一塊磚,需求開(kāi)發(fā)難度要遠(yuǎn)遠(yuǎn)大于需求管理,在實(shí)際工作中常常需要我們?yōu)榭蛻糸_(kāi)發(fā)這部分性能需求。所以,在追求技術(shù)的基礎(chǔ)上,請(qǐng)更多的了解分析你的項(xiàng)目及行業(yè)指標(biāo)。

          相關(guān)鏈接:

          性能測(cè)試知多少----性能測(cè)試分類(lèi)之我見(jiàn)

          性能測(cè)試知多少---并發(fā)用戶

          性能測(cè)試知多少---吞吐量

          性能測(cè)試知多少---響應(yīng)時(shí)間

          性能測(cè)試知多少---了解前端性能

          性能測(cè)試知多少---性能測(cè)試工具原理與架構(gòu)

          性能測(cè)試知多少---性能測(cè)試流程


          posted on 2012-09-03 11:38 順其自然EVO 閱讀(259) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 性能測(cè)試

          <2012年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 安乡县| 盘锦市| 平远县| 通化市| 泾阳县| 涡阳县| 柳林县| 天等县| 浏阳市| 上犹县| 高雄市| 上饶县| 东兴市| 北流市| 昭通市| 辽宁省| 济南市| 九台市| 松阳县| 信丰县| 洪雅县| 甘泉县| 文山县| 靖边县| 兰考县| 达拉特旗| 枣庄市| 辽宁省| 綦江县| 桐梓县| 株洲市| 盐山县| 鹤壁市| 麦盖提县| 眉山市| 成安县| 金乡县| 武陟县| 永善县| 无极县| 筠连县|