性能測試開始之前,之中,之后,三個不同的時間點上需要考慮很多問題,考慮清楚后再進行LR腳本的錄制或者編寫。下面就介紹一下我玩LR這幾天的一點基礎的心得,忘高手們指導。本人LR測試的是向應用服務器發送Http請求的測試,被測對象是應用服務器和應用程序,LR腳本是JAVA編寫的,被測試應用程序也是JAVA。
1.弄清楚壓力測試的主要關注點:(區分關注壓力還是負載)
(1)壓力測試:
a.被測對象最多可以承受多少用戶后,效率開始降低或者異常(Vuser)
b.被測對想可以最多處理多少事物后,效率開始降低或者異常(Transaction & TPS)
(2)負載測試:
a.被測對象最高用戶數時(臨峰值),持續多長時間后,處理事物的效率開始降低或者異常
b.被測對象處理請求數最多時(臨峰值),持續多長時間后,處理事物的效率開始降低或異常
2.增加壓力方法:
(1)增加用戶數(Vuser,即虛擬用戶數)
(2)增加處理事物數,此方法可視為另一種意義的增加用戶數
(3)腳本中增加循環次數
(4)LR中的Run-time settings中增加循環數(Iteration,腳本的執行迭代次數)
3.增加負載方法:
(1)使用LR控制在線用戶數的時長(即高用戶數量下,運行多長時間)
(2)腳本中增加think_time,模擬在線用戶時間的增加(別忘了調整好Run-time settings中的think_time設置)
4.LR中主要關注的兩種效率:
(1)TPS:每秒處理多少事物
(2)處理一個事物需要多長時間:可以給足數據量(參數化中的數據量)然后將運行方式調整為運行完停止(在loadrunner的controller里配置)最后自己計算這個效率指標。即總耗時比上總事物數(passed)
5.這里介紹一個玩LR時遇到的一個小問題:TPS始終無法增加到目標時應考慮以下問題(以下問題是在應用服務器,壓力服務器等硬件設備,網絡環境等足夠支撐整個性能測試的情況下考慮的,否則首先關注硬件,系統環境,網絡環境)
(1)用戶數量是否夠多,以至于壓力不夠
(2)事物數量是否不夠
(3)統計事物是否過多(即將前一個事物的運行時間也包括到檢查事物中去了)
(4)統計時間是否過短
(5)腳本中的think_time是否過長
(6)被測試程序是否有異常:(這個問題為最后考慮點,主要關注以下幾點)
a.各個硬件設備異常
b.應用程序被測對象等是否異常
c.數據庫異常
d.連接異常
e.session或者cookies異常
d.session占用空間不釋放等
原文轉自:http://www.anti-gravitydesign.com