性能測試知多少---性能測試流程
性能測試知多少---性能測試流程
看到好多新手,在性能需求模糊的情況下,隨便找一個性能測試工具,然后就開始進行性能測試了,在這種情況下得到的性能測試結(jié)果很難體現(xiàn)系統(tǒng)真實的能力,或者可能與系統(tǒng)真實的性能相距甚遠。
與功能測試相比,性能測試在技術(shù)層面具有更大的復雜性。在以往的測試流程中,性能測試只是測試流程的一部分,是系統(tǒng)或驗收測試的一個可選項。但隨著測試技術(shù)的發(fā)展。許多公司也單獨把性能測試獨立出來,建立專門的性能測試小組或團隊。那么性能測試在實施的過程中也需要建立獨立的流程與規(guī)范。
蟲師提出了自己性能測試流程,與其它書本提出的流程在些小不同。流程的實施沒有絕對的對錯,適合自身的流程就是正確。
下面看我所提到的流程
性能需求分析
性能需求分析是整個性能測試工作開展的基礎(chǔ),如果你連性能的需求都沒弄清楚,后面的性能測試工具就無從談起了。
在這一階段,性能測試人員需要與需求人員(客戶)、領(lǐng)導及項目相關(guān)的人員進行溝通,同時收集各種項目資料,對系統(tǒng)進行分析,確認測試的意圖。當然,還需要客戶對性能的態(tài)度。
測試需求分析階段的主要任務(wù)是確定測試策略和測試范圍。策略主要根據(jù)軟件類型以及用戶對系統(tǒng)的性能的需求來定,測試范圍則主要分析系統(tǒng)的功能模塊進行調(diào)研與分析。最終確認明確的需求。
性能測試計劃
確定明確的需求之后,我們要做的工作就是制定性能測試計劃。對性能測試過程中所有需要工作制定與規(guī)劃。
測試計劃的大體內(nèi)容:
項目的簡單背景描述,本次性能測試的需求與目的,性能需求分析的結(jié)果是什么。測試環(huán)境的準備,需要什么樣的軟硬件配置,網(wǎng)絡(luò)狀況登錄。測試數(shù)據(jù)的準備,對于某些性能測試是需要事先準備測試數(shù)據(jù)的。
測試的策略,前面進行需求分析的目的是制定測試策略,也就是設(shè)計符合需求的測試場景,需要對系統(tǒng)的哪些業(yè)務(wù)模塊進行測試,如何進行?需要設(shè)計哪些場景以及設(shè)計這些場景的目的。
最后會明確一下人員配備,比如需要開發(fā)、DBA、運維都人員的參與協(xié)助,性能測試的時間安排。
測試環(huán)境搭建
測試環(huán)境搭建,分硬件環(huán)境與軟件環(huán)境,硬件環(huán)境主要是向上級審批硬件配備,在某些大型性能測試,可能需要公司購置或租用硬件設(shè)備來進行?;蛘呤菍碓性O(shè)置進行調(diào)配與重組,這個時候就需要網(wǎng)絡(luò)工程師的參與或協(xié)助。
軟件環(huán)境的搭建對于開發(fā)人員來說應該毫無壓力,比如常見的三大環(huán)境,微軟的windows + IIS+SQL server 2005+.NET平臺、windows/linux+tomcat/weblogic+mysql+java 、linux+ apache+mysql+PHP 等環(huán)境。當然身為性能測試人員,不僅也需要會搭建軟件平臺,更需要對每個平臺中的部分有比較深入的了解。因為性能測試的分析并不是死盯著系統(tǒng)應用那一層。中間件、數(shù)據(jù)庫、系統(tǒng)、硬件都有可能成為系統(tǒng)的瓶頸。
性能工具的引入
其實走到這一步進才需要引入性能測試工具,我們在日常的工作中往往是先選定好測試工具然后再分析需求,制定計劃進行測試。這樣我們在做性能需求分析的時候往往會往往會考慮所選的工具是否能實現(xiàn),無法實現(xiàn)可能就放棄這個需求或改變這個需求。這樣以某一工具為基礎(chǔ)點做出的性能測試結(jié)果可能是不準確的。
工具的引入分為自行開發(fā)與引入市面上的現(xiàn)有工具。市面上的現(xiàn)有工具又分為收費與開源免費,各有各的優(yōu)缺點。我們要做的是對需求進行分析,從成本,購買成本,開發(fā)成本,現(xiàn)有開源工具的二次開發(fā)成本,人員學習使用成本以及時間成本等。
在這里再強調(diào)一點,不是只有壓力測試工具屬于性能工具,在性能測試過程中所用到的工具都屬于性能工具,如測試數(shù)據(jù)生成工具,性能監(jiān)控工具等。
測試的執(zhí)行
測試的執(zhí)行應該是很大范圍的一塊內(nèi)容。也就是我在上一節(jié)中性能測試架構(gòu)所提到的內(nèi)容。用戶行為生成-->壓力產(chǎn)生器-->用戶代理-->測試調(diào)度-->系統(tǒng)監(jiān)控等。
我們所選擇的工具如何來實現(xiàn)我們的需求,這個性能測試工程師對引入的有足夠的了解。對協(xié)議的了解,可能需要編程的能力等。其實好多新手對性能的學習也是從某一工具的使用開始的。
測試結(jié)果的分析
這里再重復一次,測試工具只是提供多種不同的數(shù)據(jù)揭示和呈現(xiàn)方法而已。工具本身并不能幫我們進行性能結(jié)果的分析。
對于性能測試結(jié)果的分析,這個需要性能測試工程師對整個被測環(huán)境的各種軟硬件都要有深入的了解。當然,在這個過程中我們往往需要各個崗位人員的協(xié)助,開發(fā)人員、DBA、運維等。致力成為一位資深的性能測試工程師要走路還很長。
軟件硬件配置調(diào)整與優(yōu)化
說的簡單點這個環(huán)節(jié)屬于系統(tǒng)調(diào)優(yōu)階段。這一項不是一個必須的環(huán)節(jié)。這個要看你本次性能測試的需求與目的。如果只是為了驗證系統(tǒng)的能力的話。在分析完測試結(jié)果后就可以出性能測試報告了。
對于我們測試人員來說,我們對一個系統(tǒng)進行功能測試的目的是驗證系統(tǒng)功能是否是符合需求并可用的,但發(fā)現(xiàn)了缺陷之后是需要對缺陷進行跟蹤和修復的,并不是把發(fā)現(xiàn)的缺陷寫在報告里就完事的。當然,功能缺陷與性能缺陷存在著本質(zhì)的缺陷。如果在性能測試過程中發(fā)現(xiàn)不滿足需求的缺陷,進行調(diào)優(yōu)是一個不可缺少的過程。
如果要對系統(tǒng)進行調(diào)優(yōu)的話,測試執(zhí)行、結(jié)果分析、系統(tǒng)調(diào)優(yōu)將會形成一個循環(huán)持續(xù)的過程。直到滿足客戶的需求為止。
-----------------------------------------------
對于上面測試流程中所列出的部分,我在后續(xù)的博文中會細講,當然,你也可以對我提出的這個流程進行交流,歡迎留言拍磚。
相關(guān)鏈接:
posted on 2012-08-21 10:02 順其自然EVO 閱讀(218) 評論(0) 編輯 收藏 所屬分類: 性能測試