天天看點

性能測試知多少---性能測試流程性能測試知多少---性能測試流程

  蟲師提出了自己性能測試流程,與其它書本提出的流程在些小不同。流程的實施沒有絕對的對錯,适合自身的流程就是正确。

  下面看我所提到的流程

性能測試知多少---性能測試流程性能測試知多少---性能測試流程

  性能需求分析

  在這一階段,性能測試人員需要與需求人員(客戶)、上司及項目相關的人員進行溝通,同時收集各種項目資料,對系統進行分析,确認測試的意圖。當然,還需要客戶對性能的态度。

  測試需求分析階段的主要任務是确定測試政策和測試範圍。政策主要根據軟體類型以及使用者對系統的性能的需求來定,測試範圍則主要分析系統的功能子產品進行調研與分析。最終确認明确的需求。

  性能測試計劃

  确定明确的需求之後,我們要做的工作就是制定性能測試計劃。對性能測試過程中所有需要工作制定與規劃。

  測試計劃的大體内容:

  項目的簡單背景描述,本次性能測試的需求與目的,性能需求分析的結果是什麼。測試環境的準備,需要什麼樣的軟硬體配置,網絡狀況登入。測試資料的準備,對于某些性能測試是需要事先準備測試資料的。

  測試的政策,前面進行需求分析的目的是制定測試政策,也就是設計符合需求的測試場景,需要對系統的哪些業務子產品進行測試,如何進行?需要設計哪些場景以及設計這些場景的目的。

  最後會明确一下人員配備,比如需要開發、dba、運維都人員的參與協助,性能測試的時間安排。

 測試環境搭建

  測試環境搭建,分硬體環境與軟體環境,硬體環境主要是向上級審批硬體配備,在某些大型性能測試,可能需要公司購置或租用硬體裝置來進行。或者是将來原有設定進行調配與重組,這個時候就需要網絡工程師的參與或協助。

  軟體環境的搭建對于開發人員來說應該毫無壓力,比如常見的三大環境,微軟的windows + iis+sql server 2005+.net平台、windows/linux+tomcat/weblogic+mysql+java 、linux+ apache+mysql+php 等環境。當然身為性能測試人員,不僅也需要會搭建軟體平台,更需要對每個平台中的部分有比較深入的了解。因為性能測試的分析并不是死盯着系統應用那一層。中間件、資料庫、系統、硬體都有可能成為系統的瓶頸。

  性能工具的引入

  其實走到這一步進才需要引入性能測試工具,我們在日常的工作中往往是先標明好測試工具然後再分析需求,制定計劃進行測試。這樣我們在做性能需求分析的時候往往會往往會考慮所選的工具是否能實作,無法實作可能就放棄這個需求或改變這個需求。這樣以某一工具為基礎點做出的性能測試結果可能是不準确的。

  工具的引入分為自行開發與引入市面上的現有工具。市面上的現有工具又分為收費與開源免費,各有各的優缺點。我們要做的是對需求進行分析,從成本,購買成本,開發成本,現有開源工具的二次開發成本,人員學習使用成本以及時間成本等。

  在這裡再強調一點,不是隻有壓力測試工具屬于性能工具,在性能測試過程中所用到的工具都屬于性能工具,如測試資料生成工具,性能監控工具等。

  測試的執行

  測試的執行應該是很大範圍的一塊内容。也就是我在上一節中性能測試架構所提到的内容。使用者行為生成-->壓力産生器-->使用者代理-->測試排程-->系統監控等。

  我們所選擇的工具如何來實作我們的需求,這個性能測試工程師對引入的有足夠的了解。對協定的了解,可能需要程式設計的能力等。其實好多新手對性能的學習也是從某一工具的使用開始的。

  測試結果的分析

  這裡再重複一次,測試工具隻是提供多種不同的資料揭示和呈現方法而已。工具本身并不能幫我們進行性能結果的分析。

  對于性能測試結果的分析,這個需要性能測試工程師對整個被測環境的各種軟硬體都要有深入的了解。當然,在這個過程中我們往往需要各個崗位人員的協助,開發人員、dba、運維等。緻力成為一位資深的性能測試工程師要走路還很長。

  軟體硬體配置調整與優化

  說的簡單點這個環節屬于系統調優階段。這一項不是一個必須的環節。這個要看你本次性能測試的需求與目的。如果隻是為了驗證系統的能力的話。在分析完測試結果後就可以出性能測試報告了。

  對于我們測試人員來說,我們對一個系統進行功能測試的目的是驗證系統功能是否是符合需求并可用的,但發現了缺陷之後是需要對缺陷進行跟蹤和修複的,并不是把發現的缺陷寫在報告裡就完事的。當然,功能缺陷與性能缺陷存在着本質的缺陷。如果在性能測試過程中發現不滿足需求的缺陷,進行調優是一個不可缺少的過程。

  如果要對系統進行調優的話,測試執行、結果分析、系統調優将會形成一個循環持續的過程。直到滿足客戶的需求為止。

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

  對于上面測試流程中所列出的部分,我在後續的博文中會細講,當然,你也可以對我提出的這個流程進行交流,歡迎留言拍磚。

相關連結:

<a href="http://www.51testing.com/?action-viewnews-itemid-815642" target="_blank">性能測試知多少----性能測試分類之我見</a>

<a href="http://www.51testing.com/?action-viewnews-itemid-816510" target="_blank">性能測試知多少---并發使用者</a>

<a href="http://www.51testing.com/?action-viewnews-itemid-816879" target="_blank">性能測試知多少---吞吐量</a>

<a href="http://www.51testing.com/?action-viewnews-itemid-816880" target="_blank">性能測試知多少---響應時間</a>

<a href="http://www.51testing.com/?action-viewnews-itemid-818356" target="_blank">性能測試知多少---了解前端性能</a>

<a href="http://www.51testing.com/?action-viewnews-itemid-818884" target="_blank">性能測試知多少---性能測試工具原理與架構</a>

====================================分割線================================

最新内容請見作者的github頁:http://qaseven.github.io/