qileilove

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

          性能測試之性能測試計(jì)劃

           上一章節(jié)中我們對性能的需求進(jìn)行了分析,知道了測試對象,了解了測試需求,那么下面就需要制定一份詳細(xì)的計(jì)劃,來規(guī)劃和指導(dǎo)性能測試工作的進(jìn)行。為了使你對性能測試計(jì)劃更清晰明白,這里以測試計(jì)劃的格式來描述。

           

          一.簡介

           

            簡介部分就不用過多描述了,無非項(xiàng)目的背景,進(jìn)行此次性能測試的原因,以及性能測試覆蓋的范圍等等,幾乎所有項(xiàng)目文檔都在開端對項(xiàng)目進(jìn)行簡單的闡述。

           

          二.性能測試需求

           

          尋找的被測試對象和壓力點(diǎn)

            要測試的對象不是憑空想象出來,而是經(jīng)過分析與系統(tǒng)數(shù)據(jù)收集得到。下取幾個典型的壓力點(diǎn)

          登錄:對于一般的系統(tǒng)來說,登錄是用戶操作系統(tǒng)的前提,如果用戶根本就登錄不了,那么其它功能將毫無用處。例如網(wǎng)游戲,開新服的時候,玩家擠破了腦袋只為登錄。

          查詢:查詢一般比較消耗系統(tǒng)和數(shù)據(jù)庫資源。搜索引擎的查詢功能就是典型,如果你在輸入框內(nèi)輸入內(nèi)容,很久就得不到結(jié)果。我想被稱為“互聯(lián)網(wǎng)入口”的搜索引擎就不會存在。

          交易:對于一些電子商務(wù)系統(tǒng)來說,交易過程的性能要求是很高的,如果交易過程消耗用戶很長時間的話。我寧愿去超市買東西了。當(dāng)然,除了交易速度外,對交易的成功率要求也是非常高的。不然,造成的損失也是不可估量的。

          被測的系統(tǒng)應(yīng)該是最重要的最基本的功能,也是用戶使用最頻繁的功能。

           

          一般的性能要求包括:

          系統(tǒng)容量:系統(tǒng)最大容納多少個用戶注冊。

          訪問數(shù):同時訪問系統(tǒng)的用戶數(shù)。

          并發(fā)數(shù):一個操作同時執(zhí)行的并發(fā)數(shù)目,一個系統(tǒng)中應(yīng)該有不同操作的并發(fā)數(shù)的組合(一般是有權(quán)限進(jìn)行操作的用戶)。

          系統(tǒng)的最大用戶數(shù)與最佳用戶數(shù):系統(tǒng)在承受的最大并發(fā)用戶數(shù)量,系統(tǒng)在最佳狀態(tài)下承受的并發(fā)用戶數(shù)據(jù)。

          響應(yīng)時間:用戶提交一個操作到得到響應(yīng)的時間間隔。

          吞吐率:系統(tǒng)每秒鐘處理的TPS

            性能測試關(guān)鍵的一個因素就是壓力,性能是在系統(tǒng)設(shè)計(jì)滿足的最大壓力下的性能。并發(fā)數(shù)要不小于系統(tǒng)正常運(yùn)行的峰值,數(shù)據(jù)總量不小于系統(tǒng)正常運(yùn)行3個月的數(shù)據(jù)量。

            在描述并發(fā)用戶數(shù)目時,總是會帶有相應(yīng)的時間段限制。系統(tǒng)的性能指標(biāo)實(shí)質(zhì)上應(yīng)當(dāng)使用單位時間內(nèi)系統(tǒng)處理請求的個數(shù)以及請求響應(yīng)時間描述。單位時間內(nèi)能處理的請求個數(shù)就是系統(tǒng)的業(yè)務(wù)吞吐量。虛擬并發(fā)用戶的數(shù)量可以使用如下的公式換算: (真實(shí)用戶數(shù)×每個真實(shí)用戶請求數(shù))/(總請求響應(yīng)時間+真實(shí)用戶總思考時間)=(虛擬用戶數(shù)×每用戶請求個數(shù))/(總請求響應(yīng)時間+虛擬用戶總思考時間)=吞吐量。

           

          三.測試環(huán)境

           

          這里的測試環(huán)境主要指的軟件硬件環(huán)境和網(wǎng)絡(luò)環(huán)境。

            筆者認(rèn)為性能測試最好在一個獨(dú)立的環(huán)境內(nèi)進(jìn)行,這樣不會受到外界的干擾,能夠保證測試的數(shù)據(jù)是獨(dú)立有效的。如果現(xiàn)你對某個已經(jīng)上線的網(wǎng)站進(jìn)行壓力測試,那么你得到的數(shù)據(jù)不是獨(dú)立的,因?yàn)槟阍谧鰤毫y試的時候,其它散戶也在訪問系統(tǒng)。

          軟件環(huán)境:

            這里的軟件環(huán)境主要指項(xiàng)目運(yùn)行的環(huán)境,比如采用什么樣的操作系統(tǒng)、中間件、和數(shù)據(jù)庫。

          硬件環(huán)境:

            這里的硬件環(huán)境除了主要包括主機(jī)內(nèi)部部件,cpu、內(nèi)存、磁盤以及主板、網(wǎng)卡等,傳輸介質(zhì)和路由器也應(yīng)該考慮在內(nèi),

          網(wǎng)絡(luò)環(huán)境:

            網(wǎng)絡(luò)環(huán)境除了考慮測試機(jī)與被系統(tǒng)服務(wù)器在一個局域網(wǎng)中進(jìn)行,還應(yīng)該保證這個網(wǎng)絡(luò)的獨(dú)立性。如果在在性能測試的過程中,其它機(jī)子也在消耗著路由器資源。那么路由器也會影響到數(shù)據(jù)庫的傳輸速度。

           

           

          四.?dāng)?shù)據(jù)準(zhǔn)備

           

            在很多時候,我們是要準(zhǔn)備測試數(shù)據(jù)的,例如系統(tǒng)不允許相同用戶的重復(fù)登錄,那么必須要生成合法的用戶數(shù)據(jù)。有時要對系統(tǒng)進(jìn)行查詢測試,只有在系統(tǒng)有一定數(shù)據(jù)量進(jìn)才能驗(yàn)證出系統(tǒng)的真實(shí)性能。一個數(shù)據(jù)庫中有兩條數(shù)據(jù)和有兩千萬條數(shù)據(jù),同相一條查詢操作,對系統(tǒng)造成的壓力是完全不一樣的。

          系統(tǒng)所需數(shù)據(jù)的分析可以參考以下方式:

            歷史數(shù)據(jù)分析有助于數(shù)據(jù)量級的確定。從歷史數(shù)據(jù)入手,找出高峰期數(shù)據(jù)量。

            從其他相似或者相同系統(tǒng)入手,進(jìn)行數(shù)據(jù)分析,找出高峰期數(shù)據(jù)量。

            無歷史或者相關(guān)系統(tǒng)可以參考的時候,就要對系統(tǒng)的性能數(shù)據(jù)進(jìn)行估算,包含系統(tǒng)容量,并發(fā)數(shù)等數(shù)據(jù),估算以后給相關(guān)人員進(jìn)行評審或者修訂以后,按照大家同意的性能指標(biāo)進(jìn)行測試。

          …………

            測試數(shù)據(jù)最好和真實(shí)數(shù)據(jù)相同,如果能夠獲得真實(shí)系統(tǒng)運(yùn)行3個月的數(shù)據(jù),我們就可以在此基礎(chǔ)上進(jìn)行性能測試。

            關(guān)于數(shù)據(jù)的生成,我們可以祝一個工具完成,如數(shù)據(jù)庫數(shù)據(jù)生成工具,大小文件生成工具等。

           

          五.測試工具

           

            前面已經(jīng)介紹如何分析需求,需求確定下來之后,我們可以考慮引入什么樣的工具適合性能需求。

            當(dāng)然,在引入工具的時候除了考慮可以是否滿足需求,還應(yīng)該考慮工具的成本,這不單指工具的購買成本,還有測試人員對工具的學(xué)習(xí)成本。

            關(guān)于測試工具的選擇,后面會單獨(dú)有一章節(jié)介紹,這里就不細(xì)說了。

            如果你選擇的性能測試工具不是足夠的強(qiáng)大的話,你可能還需要其它的輔助的工具。如果jmeter利用badboy來錄制腳本,更能提高腳本開發(fā)效率。在壓力測試的過程中也可能需要性能計(jì)數(shù)器來記錄軟硬件的性能。如監(jiān)控服務(wù)器cpu、內(nèi)存的計(jì)數(shù)器,記錄中間件日志的監(jiān)控中工具,監(jiān)控?cái)?shù)據(jù)庫性能的監(jiān)控工具等。

           

          六.測試策略

           

            對于一個特定的業(yè)務(wù)系統(tǒng),用戶一般會分散在一天的各個時間段進(jìn)行訪問。在不同的時間段中,用戶使用業(yè)務(wù)系統(tǒng)的頻率不同,而系統(tǒng)的繁忙程度不同。在一些特定的條件下,可能出現(xiàn)短時間內(nèi)用戶集中訪問某個業(yè)務(wù)系統(tǒng)的情況。例如對于公文處理子系統(tǒng)而言,可能就存在短時間內(nèi)大量用戶查看并辦理某條公文的情況。 在進(jìn)行性能測試時,應(yīng)當(dāng)使用“考慮最壞情況的原則”。也就是應(yīng)當(dāng)在用戶使用業(yè)務(wù)系統(tǒng)最頻繁、對系統(tǒng)造成最大壓力的情況下對系統(tǒng)的功能進(jìn)行測試,判斷各功能和頁面是否能夠滿足性能的要求,系統(tǒng)的響應(yīng)時間是否過長。

            另一方面,系統(tǒng)性能的驗(yàn)證必須做到“覆蓋全面”。雖然系統(tǒng)中各個功能的使用頻率并不相同,一些功能的使用頻率相對于其他功能來說比較低,但是在進(jìn)行性能測試和優(yōu)化時,不能忽略這些功能,編制測試用例時也不能僅僅選擇最常用功能。例如可能所有的用戶都會訪問我的通知列表,但是一般只有5%的用戶會使用通過系統(tǒng)設(shè)置模塊查找某個用戶的信息;但是在測試時,我們并不能因?yàn)椴榭从脩粜畔⒐δ艿氖褂妙l率相對較少,而忽略掉這項(xiàng)功能的測試。所以,這里進(jìn)行系統(tǒng)性能測試時,對于不同業(yè)務(wù),用戶的訪問比例應(yīng)該做一個合理分配。

            在測試策略上,我們還應(yīng)該考慮,同一個系統(tǒng)在不同硬件環(huán)境下的性能表現(xiàn)。從而讓系統(tǒng)滿足需求的情況下,硬件配置也能達(dá)到一個最佳的狀態(tài)。過份的增加硬件來滿足需求也是一種浪費(fèi)。再說增加硬件設(shè)備不是能解決所有性能問題的。

           

           

          七.人力與時間安排

           

            最后一條,就是要根據(jù)項(xiàng)目的進(jìn)度要求以及規(guī)模,來進(jìn)行人力與時間的安排。對于大型的性能測試,項(xiàng)目前期的需求調(diào)研,環(huán)境的部署,工具的選購或開發(fā),人員對測試工具的學(xué)習(xí)與使用,性能測試的后進(jìn)行,后期數(shù)據(jù)的分析與調(diào)優(yōu)。都需要人員安排的。有可以需要專業(yè)的,系統(tǒng)工程師、數(shù)據(jù)庫工程師、軟件開發(fā)工程師、網(wǎng)絡(luò)工程師以及性能測試工程師的共同參與配合完成。不是一個性能測試人員就可以全部搞定的。

            筆者聽說,最牛x的性能測試,需要幾個國家的十幾個城市的性能測試團(tuán)隊(duì)同步時行。前期的準(zhǔn)備工作就需要幾個月的時間。如何把控性能測試的同步進(jìn)行。后期測試數(shù)據(jù)的匯總與分析。是一個非常復(fù)雜的過程。這個例子有待考證,我想說明的是,對于大項(xiàng)目的性能測試,人員與時間安排也至關(guān)重要。

           

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

            根據(jù)項(xiàng)目的不同,我們在做性能測試計(jì)劃椒考慮的問題不僅僅上面這些內(nèi)容,這一節(jié)所羅列的內(nèi)容是基本需要考慮的因素。

           /Files/qileilove/性能測試計(jì)劃_XX項(xiàng)目.doc

          posted on 2014-02-17 15:14 順其自然EVO 閱讀(336) 評論(0)  編輯  收藏 所屬分類: 性能測試

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宜良县| 鄂托克前旗| 兰州市| 个旧市| 突泉县| 雷波县| 呼伦贝尔市| 宁晋县| 灌阳县| 加查县| 汕尾市| 米易县| 图木舒克市| 衢州市| 高陵县| 陇川县| 莎车县| 英吉沙县| 藁城市| 桃园县| 玛纳斯县| 永年县| 文水县| 岐山县| 淮滨县| 阿拉善左旗| 牙克石市| 黄大仙区| 北海市| 石林| 吉首市| 乐亭县| 天台县| 贡嘎县| 无锡市| 大渡口区| 手机| 阳泉市| 怀安县| 天祝| 邮箱|