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