天天看點

20K軟體測試工程師必會 性能測試環境搭建和性能結果分析與調優

作者:程式員月下

如果你做過性能測試,你就會知道,性能測試的時間要比功能測試時間長很多,但是,你沒有做過,你可能就會問了,為什麼性能測試時間要長那麼多呢?今天就用一文,帶大家了解性能測試工作流程。

20K軟體測試工程師必會 性能測試環境搭建和性能結果分析與調優

這是一張性能測試工作流程導圖。從數量上,流程環節并不多,但是,細心的人,可能會發現,這裡有個性能環境搭建和性能結果分析與調優。平時,你做測試,需要自己搭建測試環境嗎?你測試發現的問題,你會追究問題根源,找出解決辦法嗎?可能大部分都認,都不需要做這些事情。但是,性能測試,這些事情,是少不了的。

一、性能測試準備

20K軟體測試工程師必會 性能測試環境搭建和性能結果分析與調優

上面這張圖,羅列了一些在性能測試準備階段需要做到事情。

  • 熟悉需求與業務。這個大家都能了解,就是要了解具體需求,因為,企業中,性能測試人員一般都比較緊缺。比較少的長期跟蹤一個項目,是以,在開始做性能測試時,要熟悉需求,熟悉業務。
  • 确認性能需求的必要性。這個可能很多人,就了解不了了。在功能測試時,都是按照需求文檔來,需要要求做就做。但是性能測試,人才難求、技術難度較大、投入成本偏高,并不是所有需求都需要做性能測試的。同時,性能需求的提出者,大多數情況下對性能測試的了解也是有限的,性能測試人員,不能完全盡信需求提出者。
  • 明确性能需求、量化性能名額。做測試,要明确需求的邊界,性能測試也一樣,沒有邊界,就沒有了測試範圍和結束标準,這是很可怕的事情。如果不能量化性能名額,也就無法判斷實際測試結果是否符合預期。
  • 熟悉項目架構、通信協定。現在企業項目架構一般都比較複雜,涉及非常多的服務,服務之間的通信方式也會有差異。是以,在性能測試前,我們需要熟悉項目架構,及通信協定,這樣,才能知道各個服務的主要用途,以及是如何通信的。
  • 理清需求資料請求流。一個接口請求的資料,要經過哪些服務,由此構成的資料請求流需要弄清楚。對接口進行性能測試時,會因為請求流中某一個服務的請求時間偏長,導緻整個請求的時間過長,出現性能瓶頸,是以,需要弄清楚資料請求經過的每一個服務。
  • 掌握需求中涉及的系統核心檔案與關鍵參數。一個接口請求,可能要經過多台伺服器,多個服務,每台機器的硬體配置、作業系統核心參數,服務的配置檔案、核心參數,這些都是需要事先弄明白的,因為,在性能測試過程中,需要全程監控和随時調整參數值的。
  • 掌握項目各系統環境搭建。性能測試需要獨立搭建環境,是以,在準備階段,要對産品架構中使用到的各種環境、作業系統都要熟悉,掌握他們都環境搭建和核心參數。
  • 負載機器準備。性能測試,一般發起方電腦都需要做特殊設定,是以,在性能測試準備階段,要準備好幾台負載機,同時,做好相關設定,以便在正式測試時,能馬上使用。
  • 制定性能測試計劃。任何一項工作開展之前,都需要做好計劃,性能測試也不例外,需要做好時間、人員、工作安排。
  • 設計性能測試模型。功能測試,需要設計測試用例,性能測試也是一樣,隻不過這個測試用例,一般就測試模型,模型設計清楚了,後面就能快速開發出性能測試腳本。
  • 評估性能測試工作量。工作量評估非常重要,能預估一段時内能完成的工作。

二、性能環境搭建

20K軟體測試工程師必會 性能測試環境搭建和性能結果分析與調優

上面這張圖,大緻的羅列了性能測試流程的第二個環節“性能環境搭建”的相關工作:

  • 申請伺服器硬體資源。性能測試需要搭建獨立的性能測試環境,是以,一般都要測試人員去申請伺服器硬體資源。
  • 申請伺服器網絡配套資源。搭建性能測試環境,需要連通,網絡資源也需要申請。
  • 檢查、調試伺服器作業系統參數。有了硬體資源,需要在上面安裝作業系統才能部署服務,作業系統一些參數需要調整,與生産環境保持一緻。
  • 搭建産品服務環境。申請了硬體資源,就要搭建服務環境,确認正常運作。
  • 調試産品服務間網絡環境。部署了服務,服務之間能調通才能實作産品功能,需要調試通過。
  • 搭建伺服器監控環境。性能測試需要監控,才能收集性能測試過程中,伺服器各種資源使用情況,是以,還需要搭建監控環境,監控被測伺服器各種資源使用情況。
  • 檢查、調試性能測試機作業系統參數。性能測試,發起方的機器,需要對作業系統參數做一些定制性的優化,是以,需要檢查、調試發起方的系統參數優化。
  • 調試性能測試機與産品伺服器間網絡。性能測試發起方的機器可能會使多台,必須確定每台機器與被測伺服器之間網絡通信正常。

三、性能腳本開發

20K軟體測試工程師必會 性能測試環境搭建和性能結果分析與調優

上圖,羅列了一些在“性能腳本開發”階段需要去做到工作:

  • 編寫性能測試腳本,并調試通過。做後端伺服器性能測試,不是簡單的接口調用,它的腳本與接口測試腳本不一樣,調通了接口腳本,還需要進行性能轉換,并調試通過。
  • 根據性能需求,實作性能測試場景,并模拟測試通過。腳本調試通過後,就要進行性能場景設定,把性能測試模型轉換為性能場景,并調試通過。
  • 研究、分析性能測試腳本自身性能,并做好優化。性能測試,要向被測伺服器發起大量的請求,如果自身腳本性能很差,發起的請求量就會少,對伺服器造成的壓力也就低,性能結果偏差就大,是以,要研究、分析和優化自身測試腳本。
  • 準備或建造性能測試資料。執行性能測試,腳本中,可能需要使用大量資料,這些資料,在編寫好腳本之後,就要開始準備和建造了。
  • 性能腳本在多負載機上調試通過。性能測試可能需要多個負載機來産生并發使用者數,是以,需要再所有的負載機上調試性能腳本通過。

四、性能測試執行

20K軟體測試工程師必會 性能測試環境搭建和性能結果分析與調優

上圖,羅列了一些在“性能測試執行”階段,需要做的工作:

  • 項目資料庫資料建造。做性能測試,資料庫需要準備一些資料,是以,在執行性能測試時,先要在被測接口關聯的資料庫表中建造一定量的資料。
  • 性能場景的執行與調整。在性能腳本開發階段,雖然實作了性能場景的設計,但是,在真正執行的時候,需要對執行的結果做出分析判斷,然後調整性能場景。
  • 性能測試過程監控與分析。性能測試執行過程中,需要根據性能執行的結果資料進行及時的調整。
  • 伺服器資源監控與及時分析。性能分析需要有性能監控,執行過程中,需要對伺服器各個環節進行監控,并做出及時的分析。
  • 網絡資源監控與及時分析。性能測試,同一時間會有大量請求經過網絡,如果網絡有瓶頸,性能測試的結果資料就得不到真實回報,是以,需要時刻關注網絡監控,并做出及時分析。
  • 負載機資源監控與及時分析。負載機是發起性能測試的機器,是以對負載機的資源也要進行監控和分析,并做出及時調整。
  • 測試資料分析。性能測試執行,就會産生性能測試資料,需要對性能資料進行初步分析,以及時調整下一步執行方案。
  • 性能測試過程記錄。性能測試執行階段,需要反複執行和調整,是以,對每一次的執行,都需要做好記錄,以便在寫測試報告的時候,真實反映測試過程。

五、性能結果分析與調優

20K軟體測試工程師必會 性能測試環境搭建和性能結果分析與調優

上圖,羅列了一些“性能結果分析與調優”階段需要做的工作:

  • 規整一次性能測試執行的各種資料。資料是性能分析的支撐,是以,需要規整一次性能測試執行的所有資料。
  • 對一次執行結果的資料進行整體分析。對規整的資料進行分析,分析一次執行的資料,調整到下一次執行過程中。
  • 對多次執行結果資料進行綜合分析。規整整個測試過程的所有資料,才能在整體上做出問題定位。
  • 分析、定位、調優性能問題,再執行。對于規整好的資料,進行全面的分析,才能深入分析、定位和調優發現的性能問題。

六、編寫測試報告與跟蹤

20K軟體測試工程師必會 性能測試環境搭建和性能結果分析與調優

上圖,羅列了一些在“編寫測試報告和跟蹤”階段的工作:

  • 規整整個測試過程和測試資料,編寫性能測試報告。編寫性能測試要彙總各方面都資料,其中,整個測試過程所有測試相關的資料也是報告中重要的組成部分。
  • 調優性能測試問題。性能測試過程中發現的問題,要經過反複調優和再測試。
  • 記錄、跟蹤、再驗證性能問題。性能測試過程中的問題,不是所有的都能在短時間内解決的,不能解決的問題,需要記錄和持續跟蹤,待修複的時候再次通過測試的檢驗。

這就是性能測試流程各個環節及要做的工作,雖然,不能代表所有,但是,囊括大部分性能測試工作。

繼續閱讀