天天看點

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

一、Loadrunner概述

(一)包含元件

LoadRunner 為通路所有 LoadRunner 元件的統一界面。 可在此進入其下三個元件

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用
  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代替實際使用者,可重複、可預測的方式模拟典型使用者操作,對系統施加負載

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

(一)建立java腳本

點選建立,選擇java vuser。

适用範圍:不支援錄制腳本業務,java相關的系統

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用
  1. 初始化方法

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

Ø Action:業務流程操作事件

Ø Vuser_end:業務流程結束時執行的操作(退出、登出)

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

Init和end隻能疊代一次,Action可以疊代運作多次

業務有重複要求的,需要區分三類方法;無重複要求可以将其他兩方法空着。

  1. JVM及第三方java包引入

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

注意:loadrunner11 最高支援1.6版本jdk

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

(二)編輯腳本内容

1. 事務(transaction)

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

作用:loadrunner可以記錄事務時間,反映的時一個操作過程的響應時間

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

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

2. 思考時間(think time)

定義:思考時間是為了模拟使用者操作,設定的模拟等待時間

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

使用:

  1. 在腳本中插入語句 lr_think_time(20);
    loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用
  2. 在運作時設定中配置思考時間
    loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

    ü 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)

定義:将固定内容轉為可變參數

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

使用:

建立參數

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

選擇參數類型

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

設定:

  • 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. 右鍵插入日志資訊
    loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用
  2. 直接在腳本中寫入

lr.log_message(“log1”);

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用
  1. 運作配置中配置日志
    loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

ü 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. 步調配置

配置腳本執行步調,疊代次數,前後間隔時間

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

Number of iterations:設定Action的疊代運作次數

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

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

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

6. 其他配置

錯誤處理,程序和線程,自動化事務

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

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執行腳本從單使用者轉換為多使用者,模拟大量使用者操作,對單腳本和多腳本業務操作的組合模拟實際業務操作過程,形成類似于真實環境的負載場景。

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

場景(scenario)

用來模拟大量使用者操作的技術手段,通過配置和執行場景對伺服器産生壓力,驗證系統性能是否達标。

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

(一)建立場景

在vuser tools中選擇建立 controller場景

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

建立場景方式:

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

Goal oriented scenario目标場景

Manual scenario 手工場景

Load generator 負載生成器

Group name 組名

Result directory 運作結果儲存路徑

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

1. Manual scenario 手工場景

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

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

使用:

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

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中的場景運作圖形來确認系統性能情況,确定是停止或繼續場景執行,檢視場景中的錯誤

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

Scenario group開始場景組成部分

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

Scenario status 場景狀态

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

聯機圖像檢視

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

圖像度量

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

1. 監控loadrunner性能名額

1. Running vusers 正在運作vusers

可以監控在指定時間内運作的vuser數量

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

可調整使用者運作狀态及使用者運作數量

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

2. Trans response time 事務響應時間

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

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

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

可以監控tps

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

場景運作狀态中可以檢視tps,及錯誤詳情

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用
loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

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

可以監控系統總體性能情況

loadrunner 性能測試_基礎一、Loadrunner概述二、Virtual user Generator使用三、Controller 使用

2. 監控伺服器資源性能名額

CPU 處理器性能

MEM 記憶體性能

I/O 磁盤性能

NIO 網絡讀寫性能