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