初級軟體測試工程師如何向性能測試工程師進階?獻給迷茫的測試人

效能測試的目的不僅是為了評估系統當前的效能狀況,同時還希望透過故障定位找到系統存在的效能瓶頸,從而進一步最佳化效能,直接提升系統的處理能力,或者對系統的擴充套件能力提供最佳化策略。效能測試工程師的能力可分為三個層次,從初級的效能檢測,到中級的故障定位,再到高階的效能調優,是一個循序漸進,逐步提高的過程,下面就這三個層次的能力進行簡述。能力層次如下圖:

(一)初級——效能檢測能力

初級效能測試工程師需要掌握效能的基礎理論,能夠編制測試方案,使用自動化測試工具,進行初步的資料結果分析。

在效能基礎理論方面,需要知道併發使用者數、響應時間、吞吐量等常用的效能測試指標,知道負載測試、壓力測試、疲勞強度測試、基準測試等主要的效能測試型別,知道測試流程的幾個重要節點,如測試需求分析、測試方案制定、測試環境配置、測試資料準備、測試執行及測試結果分析。測試流程如下圖:

在效能測試方案方面,根據效能測試需求,編制效能測試方案,方案中應包括測試目的、測試依據、測試計劃、測試內容、測試方法、測試環境要求等。其中關鍵的是測試用例及測試資料的準備,測試資料包括鋪底資料、引數化資料及測試資料,資料量的多少及合理性會影響到測試結果的真實性。

在測試工具使用方面,至少會使用一到兩種自動化的效能測試工具,如主流的商業化測試工具LoadRunner、開源的測試工具JMeter等。能夠識別應用協議錄製指令碼、簡單除錯指令碼、配置測試策略、裝載測試資料、收集測試資料。

在測試結果分析方面,重點關心時間特性、資源利用率及容量,包括交易的響應時間、支援的併發使用者數、交易的吞吐量、網路的吞吐量、CPU的使用情況、磁碟讀寫情況等常用指標,透過資料分析可以反映系統當前的效能狀況。

(二)中級——故障定位能力

中級效能測試工程師需要透過透視效能指令碼執行過程來找到影響系統性能提升的故障點,為後續的效能調優提供資料支援。所以需要具備故障診斷分析能力,熟練使用各類的故障分析工具等。

在故障診斷分析方面,當在做效能測試的時候發現系統響應時間過長,沒有達到預期的目標,那麼就需要分析是什麼因素導致了響應慢,是資料庫伺服器響應慢,還是應用伺服器響應慢,如果是資料庫伺服器響應慢,是因為SQL語句執行時間長引起,還是資料庫引數配置不當造成的,這些都是要找出的故障點。故障診斷可以從技術架構、硬體、網路、軟體、應用、安全這幾個方面展開,如下圖:

在故障分析工具方面,掌握一些專有的故障分析工具可以提高故障定位效率,可以透過效能監控工具、日誌分析工具、抓包工具、安全監控軟體等來輔助定位故障,為接下來的系統調優做準備。如Youkit是一款專業的java效能分析工具,可以提供強有力的資料分析功能。Fiddler是一個抓包工具,可對資料包進行截獲、重發、編輯、轉存等操作,也可以用來檢測網路情況。日誌分析工具可以監控伺服器、資料庫、中介軟體等系統日誌,發現問題及時定位,如Facebook日誌系統Scribe、Apache日誌系統Chukwa日誌系統等。

(三)高階——效能調優能力

高階效能測試工程師因需要參與解決效能問題,對測試工程師的要求非常高,需要有比較全面強大的技術基礎及實踐經驗,要熟悉系統架構,熟悉基礎支撐軟體等,還要具備效能最佳化分析能力,通常效能問題的修復成本相對較高,如何使用最低的成本換取最高的效能,是效能調優的重點。

在效能調優知識面,要實現效能調優,需要掌握系統架構、中介軟體、資料庫、作業系統、網路協議等綜合知識,如下圖:

在效能最佳化分析方面,在進行效能測試的時候,透過過程資料分析,可在這幾個方面入手效能調優。應用伺服器調優包括JVM調優、Server調優、JDBC調優、WEB、JMS、EJB調優;資料庫調優包括核心引數調優、資料庫連線池調優、SQL與索引調優、表及檢視的調優;應用程式調優包括通用程式碼調優、JDBC程式碼調優、WEB程式碼調優、JMS程式碼調優、EJB程式碼調優;作業系統調優包括硬體的配置(CPU、記憶體、硬碟等)、核心引數、TCP/IP引數、補丁等。系統架構調優是系統層次上的最佳化,如採用Redis設定系統快取資料庫機制,減少資料庫的訪問代價。

也可考慮系統部署方式、網路和硬體層面的調優,包括對系統部署負載均衡策略、網路頻寬/流量、安全訪問控制策略等情況最佳化系統。根據實際效能結果計算資源瓶頸,對系統硬體資源(記憶體、儲存資源等)進行擴容處理最佳化。通常建議效能最佳化可從程式最佳化、業務處理方式最佳化、系統層次最佳化、系統架構最佳化、網路架構最佳化、硬體最佳化這個順序展開。

版權宣告:本文源自 網路, 於,由 楠木軒 整理釋出,共 1856 字。

轉載請註明: 初級軟體測試工程師如何向性能測試工程師進階?獻給迷茫的測試人 - 楠木軒