qileilove

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

          從食堂就餐看性能測試分析

           中午在單位食堂吃飯排了個長隊(duì),等了好半天。然后就想這不就是在跑性能嗎??

            如果把食堂看作一個在線系統(tǒng),員工吃飯看作是一次業(yè)務(wù)處理。回過頭來看系統(tǒng)性能測試分析中需要關(guān)注的點(diǎn),其實(shí)頗有意思

            首先最直觀的性能表現(xiàn)就是打飯窗口的長隊(duì),可以說這是系統(tǒng)性能處理能力最直觀的表現(xiàn)了。指標(biāo)對應(yīng)ResponseTime

            隊(duì)伍前進(jìn)的快慢,對應(yīng)每秒處理事務(wù)數(shù)TPS

            同時進(jìn)餐人數(shù),對應(yīng)并發(fā)請求數(shù)

            我們再看看影響性能指標(biāo)的相關(guān)因素

            1)打飯窗口數(shù)--對應(yīng)業(yè)務(wù)處理進(jìn)程數(shù),有時某個窗口存在多個打飯師傅,這時可以看作是多線程。處理進(jìn)程(線程)的多少,是決定業(yè)務(wù)處理性能的最主要因素。

            2)師傅的業(yè)務(wù)熟練程度--處理器的性能,計(jì)算能力

            3)所點(diǎn)餐品多少和分布情況--對應(yīng)數(shù)據(jù)的處理能力。所點(diǎn)餐品離窗口近,分布集中,自然處理起來快些,好比數(shù)據(jù)存儲在內(nèi)存庫,不進(jìn)行跨表、跨庫的關(guān)聯(lián)處理之類,性能自然較好。

            4)刷卡付賬環(huán)節(jié)--一般組合的餐品價格師傅都能快速算出來,但是比較多的菜品,計(jì)算起來要多花點(diǎn)時間。好比對于一些常見的請求,從緩存里讀取自然會快些。

            異常情況1:卡內(nèi)金額不夠、點(diǎn)菜結(jié)束又再點(diǎn)了一份。對應(yīng)到這些異常處理或是重試會也影響處理性能。

            異常情況2:看菜單上有的菜,點(diǎn)菜時卻發(fā)現(xiàn)沒有,需要重新確認(rèn)。這個相當(dāng)于業(yè)務(wù)請求先查詢出攜帶的參數(shù),響應(yīng)卻判參數(shù)不存在了。數(shù)據(jù)實(shí)時關(guān)聯(lián)沒做好,屬于系統(tǒng)Bug(此Bug還存在啊)

            5)選擇的餐品類型---打飯的隊(duì)伍比等面條、餛飩的隊(duì)伍處理起來一般相對快些。不同業(yè)務(wù),處理的方式不同,性能表現(xiàn)也不同。

            另外,餐廳的面積是有限的,窗口數(shù)也是有限的,打飯師傅的數(shù)量也是有限的。所以系統(tǒng)處理能力或曰系統(tǒng)容量是有限的。貌似目前食堂還沒達(dá)到處理極限(雖然用戶滿意度不高),暫時還不用擴(kuò)容,呵呵

            其實(shí)我們注意到,針對處理能力的問題,有兩個現(xiàn)象:

            1)二樓食堂人滿為患,一樓食堂比較寬松。這個給我們的啟示就是,在系統(tǒng)還具備處理能力的前提下,性能并不是影響用戶選擇的最主要參考(關(guān)鍵需求即業(yè)務(wù)本身的吸引力更重要)。但系統(tǒng)超過處理能力或者系統(tǒng)異常,無法提供服務(wù)后果還是很嚴(yán)重的。餓肚子咋干活。。

            2)業(yè)務(wù)上存在分時處理,所有的業(yè)務(wù)請求被強(qiáng)制分時間段訪問。這個是根據(jù)業(yè)務(wù)特點(diǎn)決定的,業(yè)務(wù)具有明顯的峰谷特點(diǎn),在系統(tǒng)容量無法處理大量并發(fā)時,對請求通過業(yè)務(wù)邏輯實(shí)現(xiàn)錯峰分流,是解決性能問題一種常規(guī)手段。

            上文也提到,餐品窗口有不同類型,面條、蓋澆飯等。這個其實(shí)是根據(jù)業(yè)務(wù)特點(diǎn)實(shí)現(xiàn)的定向分流,提高資源處理效率。如果都混在一起,性能應(yīng)該不好。

             再一個,我們打飯其實(shí)包含了多個操作步驟:排隊(duì)、取餐具、點(diǎn)餐、盛飯盛湯、落座、進(jìn)食、返還餐具。對應(yīng)到性能測試分析,可以借鑒的就是,業(yè)務(wù)處理要進(jìn)行 細(xì)分,系統(tǒng)重點(diǎn)處理關(guān)鍵節(jié)點(diǎn),業(yè)務(wù)請求本身能完成的事務(wù)由客戶端完成,在請求時攜帶結(jié)果參數(shù)(餐具)。業(yè)務(wù)處理完成后,要及時完成垃圾回收釋放資源。

            另外一個比較重要的地方就是應(yīng)急處理,系統(tǒng)發(fā)生異常時要能保證提供最基本的服務(wù)。飯點(diǎn)時員工吃不上飯應(yīng)該是這個系統(tǒng)不能接受的問題。其實(shí)可以考慮開個零售點(diǎn)備些面包、方便面啥的,這樣至少停電、停氣時還能滿足最基本的充饑需求。

            基本就這么多,其實(shí)還有很多后臺的工作我們看不到,其實(shí)應(yīng)該對性能影響也是很大的,比如食材的準(zhǔn)備、烹飪過程、配套設(shè)施的保障等,這邊就不發(fā)散了。

            總結(jié)一下,從食堂系統(tǒng)來看,我們做性能分析其實(shí)大致要關(guān)注以下幾點(diǎn):

            1)業(yè)務(wù)請求的數(shù)量、并發(fā)請求數(shù)

            2)業(yè)務(wù)處理效率

            3)系統(tǒng)資源情況,處理能力

            4)業(yè)務(wù)處理的關(guān)鍵節(jié)點(diǎn)

            5)分流策略

            6)異常處理和應(yīng)急機(jī)制

          版權(quán)聲明:本文出自 danmy 的51Testing軟件測試博客:http://www.51testing.com/?81672

          posted on 2013-01-21 10:25 順其自然EVO 閱讀(353) 評論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           
          <2013年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 镇江市| 吴忠市| 衡南县| 甘肃省| 衡水市| 凌源市| 北川| 高唐县| 墨江| 尉犁县| 隆德县| 巨野县| 五台县| 明水县| 密云县| 福贡县| 宜兰县| 琼结县| 丽江市| 林芝县| 花莲市| 洛扎县| 清水河县| 舒城县| 华安县| 五寨县| 大邑县| 河北区| 通许县| 思茅市| 安泽县| 卢氏县| 新野县| 双流县| 绥阳县| 安塞县| 色达县| 新绛县| 合水县| 平湖市| 沁源县|