loadrunner性能測試基礎

一、Loadrunner概述

(一)包含組件

LoadRunner 爲訪問所有 LoadRunner 組件的統一界面。 可在此進入其下三個組件
在這裏插入圖片描述

  1. Virtual user Generator虛擬用戶(vuser)腳本
    創建不同類型的測試腳本適用於各類系統的模擬報文發送。

  2. Controller控制器
    將虛擬用戶腳本單用戶執行轉爲用戶併發執行,形成負載場景Scenario。用於組織、驅動、管理和監控負載測試。

  3. Analysis 分析器
    對測試結果查看、分析,形成壓力測試報告。

(二)性能測試流程

  1. 性能測試需求分析:系統吞吐量目標,機器性能參數,關聯繫統

  2. 性能測試計劃:制定測試計劃,持續時間

  3. 性能測試準備:測試環境準備,測試參數調整

//循環過程

  1. 開發腳本、執行測試:開發相關模擬用戶腳本,創建併發場景,執行測試計劃
  2. 測試結果分析:查看分析Analysis 結果,查看分析系統性能參數
  3. 系統調優:相關性能參數修改,服務器資源配置
  4. 編寫測試報告:測試報告總結修改

(三)常用指標

  1. 響應時間(response time)
    網站響應時間:2-5-8原則
    接口響應時間:越小越好
  2. 吞吐量(throughput)
    單位時間內客戶端和服務器傳輸數據量(TPS)
  3. 資源使用率(resource utilization)
    常見的有CPU、MEM、I/O、NIO
  4. 每秒點擊數(hits per second)
    客戶端每秒向服務端提交請求數量
  5. 併發用戶數(concurrent users)
    在客戶端的一批用戶同時執行一個操作的數量。併發數反映了系統併發能力

誤區:使用系統的全部用戶數,用戶在線數量

二、Virtual user Generator使用

在物理機上使用vuser代替實際用戶,可重複、可預測的方式模擬典型用戶操作,對系統施加負載
在這裏插入圖片描述

(一)建立java腳本

點擊新建,選擇java vuser。

適用範圍:不支持錄製腳本業務,java相關的系統
在這裏插入圖片描述

  1. 初始化方法

Ø Vuser_init:業務流程開始前的初始化操作(登錄、服務器初始化)

Ø Action:業務流程操作事件

Ø Vuser_end:業務流程結束時執行的操作(退出、註銷)
在這裏插入圖片描述
Init和end只能迭代一次,Action可以迭代運行多次
業務有重複要求的,需要區分三類方法;無重複要求可以將其他兩方法空着。

  1. JVM及第三方java包引入

可在運行時設置中引入java vuser所需要的java包,並在腳本中import對應java包,在方法中就可以引用相關java包的class

注意:loadrunner11 最高支持1.6版本jdk
在這裏插入圖片描述

(二)編輯腳本內容

1. 事務(transaction)

定義:衡量對應事務操作的性能,在操作開始和結束插入的標誌。

作用:loadrunner可以記錄事務時間,反映的時一個操作過程的響應時間
在這裏插入圖片描述

可以右鍵選擇插入開始/結束事務

2. 思考時間(think time)

定義:思考時間是爲了模擬用戶操作,設置的模擬等待時間

作用:可以更接近真實用戶操作,也可以插入事務中,降低用戶併發

使用:

  1. 在腳本中插入語句 lr_think_time(20);
    在這裏插入圖片描述
  2. 在運行時設置中配置思考時間
    在這裏插入圖片描述
    ü Ignore think time 忽略思考時間,在腳本中設置的思考時間也會無效
    ü Replay think time 回放思考時間
    ü As recorded:取決於記錄,使用腳本中設置的思考時間
    ü Multiply recorded think time by:錄製思考時間乘以,使用思考時間的倍數
    ü Use random percentage of recorded think time:使用錄製思考時間的百分比範圍
    ü Limit think time to:設置思考時間的最大值

3. 參數化(parameter)

定義:將固定內容轉爲可變參數

作用:將重複的東西變成不重複的,應用在日期、時間、流水號等

使用:

新建參數
在這裏插入圖片描述

選擇參數類型
在這裏插入圖片描述

設置:

  • Parameter type 參數類型

ü Date/time 日期時間

ü File 文件

ü Iteration number 迭代數

ü Random number 隨機數

ü Unique number 唯一數

  • Select next row 選擇下一行

ü 順序(sequential):按參數化的數據順序,一個一個來

ü 隨機(rundom):參數化中的數據,每次隨機抽取

ü 唯一(unique):爲每個虛擬用戶分配一條唯一數據

  • Update value 更新時的值

ü 每次迭代(each iteration):每次迭代時取新值,在腳本迭代時更新

ü 每次出現(each occurrence):每次參數化時取新值,可能前後兩次用同一參數,此時取值不一樣

ü 只取一次(once):參數化中數據,一條數據只取一次

4. 日誌(Log message)

作用:腳本驗證時可以通過日誌來了解腳本執行的內容

使用:

  1. 右鍵插入日誌信息
    在這裏插入圖片描述

  2. 直接在腳本中寫入

lr.log_message(“log1”);
在這裏插入圖片描述

  1. 運行配置中配置日誌
    在這裏插入圖片描述

ü Enable logging:使用日誌

ü Log options:

ü Send messages only when an error occurs:只有當發生錯誤時才發送日誌信息

ü Always send messages:總是發送日誌

Standard log 標準日誌

Extended log 擴展日誌

	Parameter substitution 顯示參數賦值取值
	
	Data return by server 顯示服務器返回的數據
	
	Advance trace 高級的追蹤

5. 步調配置

配置腳本執行步調,迭代次數,前後間隔時間
在這裏插入圖片描述

Number of iterations:設置Action的迭代運行次數

As soon as the previous iteration ends:在前一次迭代結束後直接下一次

After previous iteration ends:在前一次迭代結束後延時多少時間進行下一次 fixed(固定)、random(隨機)

At fixed/random intervals every sec:在前一次和下一次之間的時間,包含前一次的執行時間

6. 其他配置

錯誤處理,進程和線程,自動化事務
在這裏插入圖片描述

Error handing 錯誤處理,按默認即可

Multithreading 進程與線程,按線程運行虛擬用戶

Automatic transactions 自動化事務,默認情況下不選擇,在腳本中自行定義事務

注意:在controller中一個action和我們自行定義的事務重複出現,將自動化事務中的兩個勾勾上後再去掉,重啓後解決改問題

(三)負載前準備

  1. Generate:單交易編譯運行,編輯驗證腳本

  2. SUSI(single user single iteration,單用戶單循環):直接編譯運行腳本

  3. SUMI(single user multi iteration,單用戶多循環):參數化腳本在運行時配置中設置iteration次數,驗證參數化情況

  4. MUSI(multi user single iteration,多用戶單循環):controller中多用戶運行腳本,驗證腳本中可能的多線程問題

  5. MUMI(multi user single iteration,多用戶多循環):性能測試開始

(四)自帶常用函數

1. 事務函數

lr.start_transaction("start");
lr.end_transaction("start",lr.AUTO);

2. 日誌函數

lr.debug_message(0,"start");
lr.error_message("start");
lr.output_message("start");

3. 控制函數

lr.abort("start");
lr.continue_on_error(1);
lr.exit();

三、Controller 使用

使用controller 將vuser執行腳本從單用戶轉換爲多用戶,模擬大量用戶操作,對單腳本和多腳本業務操作的組合模擬實際業務操作過程,形成類似於真實環境的負載場景。
在這裏插入圖片描述

場景(scenario)

用來模擬大量用戶操作的技術手段,通過配置和執行場景對服務器產生壓力,驗證系統性能是否達標。

Controller 管理場景包括:設計場景(design)、運行場景(run ,場景監控)。

(一)建立場景

在vuser tools中選擇創建 controller場景
在這裏插入圖片描述
創建場景方式:
在這裏插入圖片描述
Goal oriented scenario目標場景

Manual scenario 手工場景

Load generator 負載生成器

Group name 組名

Result directory 運行結果保存路徑

注意:負載生成器生成每個vuser大概花2-3M內存,直接單機測試時,若vuser數量要求較多,對壓測機器內存性能要求較高。當內存使用率超過 70%時,該機器就成負載測試瓶頸,影響測試性能。可以使用其他裝有LR Agent的機器來生成vuser。

1. Manual scenario 手工場景

定義:自行設置vuser變化,通過設計用戶添加和減少的過程,模擬實際用戶請求。

作用:用於定位性能瓶頸,瞭解系統併發處理能力,在負載測試和壓力測試中應用。

使用:
在這裏插入圖片描述
Scenario group 場景組合

添加組、腳本、vuser數

Scenario schedule 場景計劃

schedule by

Scenario多個腳本之間按照設定的場景計劃來統一運行

Group 多個腳本之間按照獨立設置的模式跑,單獨設置虛擬用戶和運行時間

Run mode

Real world schedule 實際計劃,可以多個用戶變化過程

Basic schedule 基本計劃,只能設置一次運行設置,不能設置用戶變化

Global schedule 全局計劃

Initialize 初始化設置

Start vusers 運行虛擬用戶設置

Duration 運行時間設置

Stop vusers 停止虛擬用戶設置

2. Goal oriented scenario目標場景

定義:設置一個目標,自動化負載。

目標場景類型:

Virtual users:虛擬用戶數量,驗證所需支持的用戶數

Hits per second:服務請求響應數,驗證每秒可處理請求數

Transctions per
second:tps 每秒事務數,驗證系統處理操作能力

Transctions
response time:事務響應時間,驗證系統壓力下所需要的響應時間

Pages per minute:每分鐘頁面刷新次數,驗證系統整理處理能力

適用:驗證系統各方面能力是否達標。

3. SLA service level agreement 服務水平協議

定義:負載測試具體目標定義,在運行結束後會與定義的目標值進行比較,SLA狀態表示是否符合所定義的服務標準(運行的vuser數,吞吐量,響應時間等)。

(二)監控場景

監控loadrunner中的場景運行圖形來確認系統性能情況,確定是停止或繼續場景執行,查看場景中的錯誤
在這裏插入圖片描述

Scenario group開始場景組成部分
在這裏插入圖片描述

Scenario status 場景狀態
在這裏插入圖片描述

聯機圖像查看
在這裏插入圖片描述

圖像度量
在這裏插入圖片描述

1. 監控loadrunner性能指標

1. Running vusers 正在運行vusers

可以監控在指定時間內運行的vuser數量
在這裏插入圖片描述

可調整用戶運行狀態及用戶運行數量
在這裏插入圖片描述

2. Trans response time 事務響應時間

可以監控每個事務響應時間變化趨勢

在這裏插入圖片描述

3. Trans/sec passed 每秒成功通過的事務數

可以監控tps
在這裏插入圖片描述

場景運行狀態中可以查看tps,及錯誤詳情
在這裏插入圖片描述
在這裏插入圖片描述

4. Total Trans/sec passed 合計每秒成功通過的事務數

可以監控系統總體性能情況
在這裏插入圖片描述

2. 監控服務器資源性能指標

CPU 處理器性能

MEM 內存性能

I/O 磁盤性能

NIO 網絡讀寫性能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章