LoadRunner(一)——性能測試基礎及性能指標概述


參考學習感謝:《精通軟件性能測試與LoadRunner實戰》

一、典型的性能測試場景

  1. 某個產品要發布了,需要對全市的用戶做集中培訓。通常在進行培訓的時候,老師講解完成一個業務以后,被培訓用戶會按照老師講解的實例同步操作前面講過的業務操作。這樣存在用戶並發的問題,我們在培訓之前需要考慮被培訓用戶的人數在場景中設計酌情設置並發用戶數量。
  2. 同一系統可以采用兩種構架:Java、.Net,決定用哪個。同樣的系統用不同的語言、框架實現效果也會有所不同。為了系統能夠有更好的性能,在系統實現前期,可以考慮設計一個小的Demo,設計同樣的場景,實際考察不同語言、不同框架之間的性能差異,而后選擇性能好的語言、框架開發軟件產品。

  3. 一門戶網站能夠支持多少用戶並發操作(注冊、寫博客、看照片、灌水……)。一個門戶網站應該是經得起考驗的。根據預期的用戶量設計相應用戶的並發量,同時一個好的網站由於隨着用戶的逐漸增長以及推廣的深入,訪問量可能會成數量級的增長。考慮門戶網站這些方面的特點,在進行性能測試的時候也需要考慮可靠性測試、失敗測試以及安全性測試等。

 

二、功能測試與性能測試關系

功能測試和性能測試是相輔相成的,對於一款優秀的軟件產品來講,它們是不可減少的2個重要測試環節; 要因地制宜,結合實際需求,選擇合適的時間點進行,減少不必要的人力、物力浪費,才能實現利益最大化。

 

三、性能測試的概念及其分類

  1. 性能測試
  2. 負載測試
  3. 壓力測試
  4. 配置測試
  5. 並發測試
  6. 容量測試
  7. 可靠性測試
  8. 失敗測試

   概念及其分類

  1. 系統的性能是一個很大的概念,覆蓋面非常廣泛,對一個軟件系統而言,包括:執行效率、資源占用、系統穩定性、安全性、兼容性、可靠性、可擴展性等。性能測試是為描述測試對象與性能相關的特征並對其進行評價,而實施和執行的一類測試。它主要通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。通常大家把性能測試、負載測試、壓力測試等統稱為性能測試。

  2. 負載測試:通過逐步增加系統負載,測試系統性能的變化,並最終確定在滿足系統的性能指標情況下,系統所能夠承受的最大負載量的測試。簡而言之,負載測試是通過逐步加壓的方式來確定系統的處理能力、確定系統能夠承受的各項閥值。例如:逐步加壓,從而得到“響應時間不超過10秒”、“服務器平均CPU利用率低於85%”等指標的閾值。

  3. 壓力測試:通過逐步增加系統負載,測試系統性能的變化,並最終確定在什么負載條件下系統性能處於失效狀態,並來獲得系統能提供的最大服務級別的測試。壓力測試是逐步增加負載,使系統某些資源達到飽和甚至失效。

  4. 配置測試:主要是通過對被測試軟件的軟硬件配置的測試,找到系統各項資源的最優分配原則。配置測試能充分利用有限的軟硬件資源,發揮系統的最佳處理能力,同時可以將其同其它性能測試類型聯合應用,從而為系統調優提供重要依據。
  5. 並發測試:測試多個用戶同時訪問同一個應用、同一個模塊或者數據記錄時是否存在死鎖或者其他性能問題,幾乎所有的性能測試都會涉及一些並發測試。 因並發測試對時間的要求比較苛刻,通常並發用戶的模擬都是借助於工具,采用多線程或多進程方式來模擬多個虛擬用戶的並發性操作,在后續講LoadRunner 工具時,有一個集合點的概念,它就是用來模擬並發的,您可以在VuGen中設置集合點,在Controller中設置其對應的策略,來模擬用例設計的場景。

  6. 容量測試:在一定的軟、硬件條件下,在數據庫中構造不同數量級的記錄數量,通過運行一種或多種業務場景在一定虛擬用戶數量的情況下,獲取不同數量級別的性能指標從而得到數據庫能夠處理的最大會話能力、最大容量等。確定系統可處理同時在線的最大用戶數,通常和數據庫有關。

  7. 可靠性測試:通過給系統加載一定的業務壓力(如CPU資源在70%~90%的使用率)的情況下,運行一段時間,檢查系統是否穩定。因為運行時間較長,通常可以測試出系統是否有內存泄露等問題。

    通常我們不可能做一次可靠性測試執行1年時間,所以多數情況下,可靠性測試是執行一段時間,如:24小時、3×24小時或7×24小時來模擬長時間運行。

  8. 失敗測試:對於有冗余備份和負載均衡的系統,通過這樣的測試來檢驗如果系統局部發生故障用戶是否能夠繼續使用系統,用戶受到多大的影響。如:幾台機器做均衡負載,一台或幾台機器垮掉后系統能夠承受的壓力。

四、性能指標及相關計算公式

  1.  吞吐量
  2. 並發數
  3. 思考時間
  4. 響應時間
  5. 點擊數
  6. 資源利用率
  7. 網絡吞吐量
  8. 錯誤率
  9. 系統穩定性

具體:

  1.  吞吐量(Throughput):指的是單位時間內處理的客戶端請求數量,直接體現軟件系統的性能承載能力。通常情況下,吞吐量用“請求數/秒”或者“頁面數/秒”來衡量。從業務角度來看,吞吐量也可以用“業務數/小時”、“業務數/天”、“訪問人數/天”、“頁面訪問量/天”來衡量。從網絡角度來看,還可以用“字節數/小時”、“字節數/天”等來衡量網絡的流量。
  2. 並發(Concurrency):它最簡單的描述就是指多個同時發生的業務操作。例如,100個用戶同時單擊登錄頁面的“登錄”按鈕操作。通常,應用系統會隨着用戶同時應用某個具體的模塊,而導致資源的爭用問題,例如,50個用戶同時執行統計分析的操作,由於統計業務涉及很多數據提取以及科學計算問題,所以這個時候很有可能內存和CPU會出現瓶頸。並發性測試描述的是多個客戶端同時向服務器發出請求,考察服務器端承受能力的一種性能測試方式。

  3. 思考時間(Think Time):它就是在錄制腳本過程中,每個請求之間的時間間隔,也就是操作過程中停頓的時間。為了真實地描述用戶操作的實際場景,在錄制腳本的過程中,通常,LoadRunner也會錄制這些思考時間,在腳本中lr_think_time()函數就是實現前面所說的思考時間,它實現了在兩個請求之間的停頓。

  4. 響應時間指用戶從客戶端發起一個請求開始,到客戶端接收到從服務器端返回結果的響應結束,結果信息展現在客戶端,整個過程所耗費的時間。
  5. 點擊數是衡量Web服務器處理能力的一個重要指標。它的統計是客戶端向Web服務器發了多少次HTTP請求計算的。這里需要說明的是,點擊數不是通常一般人認為的訪問一個頁面就是1次點擊數,點擊數是該頁面包含的元素(如:圖片、鏈接、框架等)向Web服務器發出的請求數數量。通常我們也用每秒點擊次數(Hits per Second)指標來衡量Web服務器的處理能力。

  6. 資源利用率,是指系統各種資源的使用情況,一般用“資源的使用量/總的資源可用量×100%”形成資源利用率的數據。通常,系統資源的利用率,結合不同行業系統的需求也有所不同,例如,在銀行行業對系統的穩定要求比較嚴格,結合CPU利用率來講,其要求不高於60%,而其他行業的系統要求不是很嚴格CPU利用率不高80%即可。
  7. 網絡吞吐量是指在網絡工作正常的情況下單位時間內通過的網絡的數據數量。通常,該指標用於衡量系統對於網絡設備或鏈路傳輸能力的需求。當網絡吞吐量指標接近網絡設備或鏈路最大傳輸能力時,則需要考慮升級網絡設備,以提升網絡處理吞吐量。
  8. 錯誤率指系統在負載情況下,失敗交易的概率。錯誤率=(失敗交易數/交易總數)*100%。不同系統對錯誤率的要求不同,但一般不超出千分之五。穩定性較好的系統,其錯誤率應該由超時引起,即為超時率。

  9. 系統穩定性:基於系統本身的重要性,通常要求非常高,要求365×24小時無故障運行,通常系統穩定性關注的內容是穩定運行時間,該指標表示系統在標准壓力(系統的預期日常壓力)情況下,能夠穩定運行的時間。

    因為穩定性測試運行時間長,通常至少連續運行24小時以上,所以平時手工測試或短時間性能測試發現不了的問題,可以在該類型的性能測試過程中發現,如:內存泄漏問題等。

計算公式:

吞吐量  

 

 並發數  

 

思考時間

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM