loadrunner性能測試從零開始

Vuser 腳本語言基礎

1 腳本結構 :

1.1 vuser_init: 腳本初始化操作 , 一般放置登錄操作 , 分配內存等 , 在播放 vuser_init 時 , Controller 的 Vuser 狀態區域會顯示 initialize 狀態

1.2 Action: 虛擬用戶要做的業務操作 .

1.3 vuser_end: 與 vuser_init 對應 , 做收尾工作 .

2 腳本中使用的三種函數

2.1 VU 通用函數 : lr_ 系列函數

2.2 協議相關函數 : 一般以協議名開頭 , 比如 web 協議就是 web_ 系列

2.3 語言相關函數 : 由 VU 腳本的生成語言決定 . 多用於用戶自定義函數進行腳本擴展 .

3 以 C 語言的 VU 腳本爲例 , 實際上是隱式的存在 main 函數的 , 然後在 main 中去依次調用了 vuser_init, Action, vuser_end 幾個函數 .

4 錄製 HTTP 協議的 web 系統測試腳本時 , 會生成一個 globals.h 文件 , 這個文件用來負責 vuser_init, Action, vuser_end 三個腳本都可用的全局變量的聲明 .

5 lr_whoami(*userid, char **groupname, int *sceneid) 可以用來獲取當前運行 vuser 的 vuserid, 組名 , 場景 id, 在動態參數化的時候 , 可以使用這些值來構建動態參數 .

6 自定義函數 :

6.1 直接引用 : 以 C 語言產生的腳本 , 可以直接在 Action 外部定義函數 , 然後在 Action 內使用 .

6.2 本地加載 : 使用 lr_load_dll(char *dll_file_name); 加載動態鏈接庫 , 然後調用庫中的函數 .

6.3 include 模式 : 把多個函數寫在一個文件中 , 在 vuser_init, Action, vuser_end 中的 include 並調用

6.4 全局加載 (dll) 模式 : 在 LoadRunnder/data 目錄下的 mdrv.dat 文件中 , 查找對應協議 , 然後在下面按照已有內容格式配置鏈接庫即可

7 通用 vu 函數 : 構建在 C 語言基礎上的腳本框架函數 , 以 lr 開頭 , 分爲以下幾類

7.1 事務和事務控制函數 :

7.1.1 lr_end_sub_transaction: 標記子事務的結束以便進行性能分析

7.1.2 lr_end_transaction: 標記 LoadRunner 事務的結束

7.1.3 lr_end_transaction_instance: 標記事務實例的結束以便進行性能分析

7.1.4 lr_fail_trans_with_error: 打開事務的狀態設置爲 LR_FAIL 併發送錯誤消息 .

7.1.5 lr_get_trans_instance_duration: 獲取事務實例的持續時間

7.1.6 lr_get_trans_instance_wasted_time: 獲取事務實例浪費的時間

7.1.7 lr_get_transaction_duration: 獲取事務的持續事件 ( 按事務名稱 )

7.1.8 lr_get_transaction_think_time: 獲取事務的思考時間 ( 按事務名稱 )

7.1.9 lr_get_transaction_wasted_time: 獲取事務浪費的時間 ( 按事務的名稱 )

7.1.10 lr_resume_transaction: 繼續收集事務數據以便進行性能分析

7.1.11 lr_resume_transaction_instance: 繼續收集事務實例數據以便進行性能分析

7.1.12 lr_set_transaction_instance_status: 設置事務實例的狀態

7.1.13 lr_set_transaction_status: 設置打開事務的狀態

7.1.14 lr_set_transaction_status_by_name: 設置事務的狀態

7.1.15 lr_start_sub_transaction: 標記子事務的開始

7.1.16 lr_start_transaction: 標記事務的開始

7.1.17 lr_start_transaction_instance: 啓動嵌套事務 ( 由它的父事務的句柄指定 )

7.1.18 lr_stop_transaction: 停止事務數據的收集

7.1.19 lr_stop_transaction_instance: 停止事務實例的數據收集

7.1.20 lr_wasted_time: 消除所有打開事務浪費的時間 .

7.2 命令行分析函數 : 當 LoadRunner 以命令行方式啓動和運行時 , 以下函數用來分析命令行

7.2.1 lr_get_attrib_double: 檢索腳本命令行中使用的 double 類型變量

7.2.2 lr_get_attrib_long: 檢索腳本命令行中使用的 long 行變量

7.2.3 lr_get_attrib_string: 檢索腳本命令行中使用的字符串

7.3 系統信息函數 : 獲取 VU 的系統信息

7.3.1 lr_user_data_point: 記錄用戶定義的數據採集點

7.3.2 lr_whoami: 將有關 vuser 的信息返回給 vuser 腳本

7.3.3 lr_get_host_name: 返回執行 vuser 腳本的主機名

7.3.4 lr_get_master_host_name: 返回運行 LoadRunner Controller 的計算機名

7.4 字符串函數 :

7.4.1 lr_eval_string: 返回參數的當前值

7.4.2 lr_save_string: 將以 NULL 結尾的字符串保存到參數中

7.4.3 lr_save_var: 將變長字符串保存到參數中

7.4.4 lr_save_datetime: 將當前日期和時間保存到參數中

7.4.5 lr_advance_param: 前進到下一個可用參數

7.4.6 lr_decrypt: 解密已編碼的字符串

7.4.7 lr_eval_string_ext: lr_eval_string 的擴展 , 爲指向包含參數數據的緩衝區的指針

7.4.8 lr_eval_string_ext_free: 釋放由 lr_eval_string_ext 分配的指針

7.4.9 lr_save_searched_string: 在緩衝區中搜索字符串實例 , 並將該字符串實例保存到參數中 .

7.5 消息函數 :

7.5.1 lr_debug_message: 將調試信息發送到輸出窗口

7.5.2 lr_error_message: 將錯誤消息發送到輸出窗口

7.5.3 lr_get_debug_message: 得到當前的消息類

7.5.4 lr_log_message: 將輸出消息直接發送到 output.txt 文件 , 此文件位於 vuser 腳本目錄

7.5.5 lr_output_message: 將消息發送到輸出窗口中

7.5.6 lr_set_debug_message: 爲輸出消息設置消息類

7.5.7 lr_vuser_status_message: 生成格式化輸出並將其打印到 Controller Vuser 狀態區域

7.5.8 lr_message: 將消息發送到 vuser 日誌和輸出窗口 .

7.6 運行時函數 :

7.6.1 lr_load_dll: 加載外部 dll

7.6.2 lr_think_time: 暫停腳本的執行 , 以模擬思考時間

7.6.3 lr_continue_on_error: 指定腳本如何處理錯誤場景 , 是繼續還是退出

7.6.4 lr_rendezvous: 在 vuser 腳本中設置集合點

8 HTTP 協議函數 :

8.1 HTTP 協議 :

8.1.1 header 設置 :

8.1.1.1 web_add_header

8.1.1.2 web_clean_heander

8.1.2 點擊鏈接 :

8.1.2.1 web_link( 文字鏈接 )

8.1.2.2 web_image( 點擊圖片鏈接 )

8.1.3 提交表單 :

8.1.3.1 web_submit_data

8.1.3.2 web_submit_form

8.2 web 系統設置

8.2.1 cache 設置 :

8.2.1.1 web_cache_leanup

8.2.1.2 web_load_cache

8.2.2 cookie 設置

8.2.2.1 web_add_cookie

8.2.2.2 web_cleanup_cookies

8.2.3 proxy 設置

8.2.3.1 web_set_proxy

8.2.3.2 web_set_secure_proxy

8.3 LoadRunner 框架支持

8.3.1 檢查點 :

8.3.1.1 web_find

8.3.1.2 web_image_check

8.3.2 關聯

8.3.2.1 web_create_html_param

8.3.2.2 web_create_html_param_ex

8.3.2.3 web_reg_save_param

8.3.2.4 web_set_max_html_param_len

8.3.3 控制

8.3.3.1 lr_start_transaction

8.3.3.2 lr_rendezvous

8.3.3.3 lr_think_time

用戶行爲模擬器 —VUSER

1 錄製 HTTP 協議的腳本時 , 錄製方式的選擇原則 :

1.1 基於瀏覽器的應用程序使用 HTML-basedScript

1.2 不是瀏覽器的應用使用 URL-based Script

1.3 如果基於瀏覽器的應用程序中包含了 Javascript 並且該腳本向服務器產生了請求 , 比如 DataGrid 的分頁按鈕等 , 也要使用 URL-based 方式錄製

1.4 給予瀏覽器的應用程序中使用了 HTTPS 安全協議 , 使用 URL-based 方式錄製 .

2 幾種有用的日誌 : 腳本能夠正常運行後 , 應當禁用日誌以降低消耗 .

2.1 執行日誌 :

2.1.1 腳本運行時產生 .

2.1.2 描述 Vuser 運行時執行的操作

2.1.3 黑色表示標準輸出消息 , 紅色表示標準錯誤消息 , 綠色用引號括起來的文字字符串 ( 例如 URL), 藍色表示事務信息 ( 開始 , 結束 , 狀態 , 持續時間 );

2.2 錄製日誌 : 在腳本錄製過程中產生 , 詳細描述錄製過程中客戶端與服務器之間的各種交互動作 .

2.3 產生日誌 : 記錄了腳本錄製的設置 , 網絡實踐到腳本函數的轉換過程 .

3 Tools/General Options/Display/Show browser during replay 選中後可以在 VU 運行時查看瀏覽器活動 , 不過這只是一個不完整的解釋器而不是瀏覽器 , 因此一些腳本可能會加載不完全 . 打開運行時查看器後在運行腳本時就會實時播放動作 .

4 關聯 : 對於一些請求 , 需要以前面某次請求服務器響應的數據去作爲請求參數 , 因此 , 不能把這些數據硬編碼 , 而是以參數的方式提供 , 同樣 , 要使用的前面某次請求響應的數據也要寫入到變量中以便使用 .

5 錄製前自動關聯 : 在錄製腳本之前 , 已知尋找需要關聯數據和關聯的規則 , 就可以通過爲 VU 設置規則來讓其自動關聯 .

5.1 內建關聯規則 : 對於一些常用系統 , VU 有內建的關聯規則 , 通過 Recording Options/HTTP Properties/Correlation 中啓用關聯規則 , 然後選擇相應的關聯規則 , 則在錄製對應的系統時 , 就會自動建立關聯 .

5.2 自定義關聯規則 : Recording Options/HTTP Properties/Correlation 中建立新的關聯規則 ( 也需要啓用關聯 )

6 錄製後自動關聯 : 錄製完成後 , 腳本至少需要執行一次 , 在執行中 , 錄製後關聯會試圖找出錄製時和執行時服務器響應內容的差異部分 , 藉以找出需要關聯的數據並建立關聯 .

7 手動關聯 :

7.1 找出需要關聯的數據

7.1.1 使用相同的業務流程和數據 , 錄製兩份腳本

7.1.2 使用 WinDiff 工具找出不同點 : Tools/Compare with Vuser

7.2 使用 web_reg_save_param 函數手動建立關聯

7.3 web_reg_save_param 函數放在要檢查內容的請求之前

7.4 原理 : 捕獲第一個操作的輸出   à 保存爲參數   à   將參數作爲另一個操作的輸入

8 關聯的用戶和意義 :

8.1 簡化和優化腳本代碼

8.2 動態生成數據 : session 等服務器端返回數據的利用

8.3 支持唯一數據

9 除了顯式的以 lr_start_transaction 控制事務外 , 還可以在 vuser 的運行時設置中的 miscellaneous 選項中定義自動事務 .

10 集合點 ( 同步點 ): 爲了模擬較重的用戶負載 , 需要模擬多個 vuser 同時向服務器發送請求 , 此時 , 就可以在 vuser 腳本中通過 lr_rendezvous 來創建集合點 , Controller在遇到集合點時會暫停腳本 , 等待其他 vuser 到達後 , 一起釋放 vuser 運行 .  需要注意的是隻能在 action 中添加集合點 , 而不能在 vuser_init 和 vuser_end 中創建 .

11 思考時間 : 爲了模擬用戶在操作過程中的停頓 , 可以用 lr_think_time 來設置思考時間 , 思考時間的單位是秒 . 有時測試不需要思考時間 , 這時就可以通過 Run-time Settings/Think time 中設置忽略思考時間 .

12 由於集合點和思考時間在 Controller 運行中都會產生等待 , 因此如果在事務中有這兩項操作 , 就可能會對事務的響應時間產生影響導致結果不準確 .

13 參數化的過程 :

13.1 在腳本中用參數取代常量值

13.2 設置參數的屬性以及數據源 .

14 參數數據源類型 : 參數的信息在腳本目錄下的 ” 腳本名 .prm” 文件中

14.1 Data Files: 數據保存在文件中

14.2 User-Defined Functions: 調用外部 dll 函數生成數據

14.3 Internal Data: 虛擬用戶內部產生的數據

14.3.1 Date/Time: 用當前日期 / 時間替換參數 , 需要指定 Date/Time 格式 .

14.3.2 Group Name: 用虛擬用戶組名稱替換參數

14.3.3 Load Generator Name: 用腳本負載生成器的名稱替換參數 , 負載生成器是虛擬用戶在運行的計算機

14.3.4 Iteration Number: 用當前迭代數目替換參數

14.3.5 Random Number: 用一個隨機數替換參數

14.3.6 Unique Number: 用一個唯一的數字來替換參數 .

14.3.7 Vuser Id: 用運行時分配給 Vuser 的 id 替換參數

15 Tools/General Options/Parameterization 可以定義參數的括號類型 .

16 直接的參數化 , 只有在其作爲函數參數時才能夠使用 , 而且 , 有些函數的有些參數是不能被參數化的 , 在這種情況下 , 如果想要參數化 , 可以使用 lr_eval_string() 來代替要參數化的內容 , 而我們去參數化 lr_eval_string() 的參數 .

17 由於 lr_eval_string 返回的是一個指向參數值的指針 , 內容在每次 Iteration 後自動釋放 , 因此 , 對於一個大的 Iteration, 如果使用 lr_eval_string 做參數化可能導致內存遲遲不能釋放 , 此時可以使用 lr_eval_string_ext 和 lr_eval_string_ext_free 配對使用來自己做清理工作 .

18 Vuser/Parameter List 中可以統一管理當前腳本中所有參數的屬性 .

19 參數的 update value on 意義

19.1 each occurrence: 每發生一次換一個

19.2 each iteration: 每次迭代換一個

19.3 once: 所有循環中都使用同一個值

20 參數的 when out of values 的意義

20.1 Abort Vuser: 中止

20.2 Continue in a cyclick manner: 繼續循環取值

20.3 Continue with last value: 取最後一個值

21 從數據庫導入參數

21.1 利用 Microsoft Query 從已存在的數據庫中導入參數數據 (Microsoft Query 是 Office 的套件之一 , 沒有安裝開始菜單中的快捷方式 , 可以在 Office 安裝目錄下找MSQRY32.EXE, 如果沒有 , 可能是安裝 Office 時沒有安裝 , 運行安裝程序添加組件即可 )

21.2 指定數據庫連接或 SQL: 在設置參數的界面如下順序操作

21.2.1 點擊 Data wizard

21.2.2 選擇 Specify SQL statement manually

21.2.3 Creat

21.2.4 新建數據源 , 導入數據即可

22 檢查點 : 對於 web 應用 , vuser 中的請求執行成功並不能代表業務流程是成功的 , 比如用戶名密碼錯誤也會返回 200 響應 , 所以 , 需要檢查服務器的響應內容來判斷業務流程是否執行成功 , 這個判斷的點就是檢查點 .

22.1 全局檢查點 : 運行時設置中設置 ContentCheck, 這種檢查點對於有統一出錯處理頁面的系統是有效的 .

22.2 檢查函數 : 在一個請求完成後 , 運行檢查函數 , 然後作出期望的處理返回 .

22.2.1 web_find: 檢查文本

22.2.2 web_image_check: 檢查圖片

22.2.3 web_reg_find: 與 web_find 類似 , 不過 , 這個函數是先註冊 ( 在請求之前 ), 然後查找 , 並且 , 這個函數可以查找多次 , 通過 SaveCount 保存查找到的次數 .  另外, 通過運行時設置設置的 enable image and text check 對 web_find 有效 , 而對 web_reg_find 無效 , 即 web_reg_find 只要寫了就會查找 .

23 Action/Import Action into vuser 可以將其他 Action 引入進來

24 在 Run-time settings 中可以設置腳本的全局錯誤處理機制 ( 是否繼續執行 ), 但是 , 對於某些特殊段的腳本如果期望得到特殊的效果 , 可以通過 lr_continue_on_error 函數來控制 , 該函數接受參數 0 或 1, 0 表示以下代碼在發生錯誤時退出 , 反之則繼續執行 .

25 動態運行 : Tools/General Options/Replay 中設置動態運行的延時 , 然後在 view 菜單內選擇 Animated run 即可以進入動態運行狀態 , 此時運行腳本每運行一句都會暫停設定的毫秒數 .

26 擴展日誌選項的意義 :

26.1 參數替換 : 記錄指定給腳本的所有參數及其相應的值

26.2 服務器返回的數據 : 記錄服務器返回的所有數據

26.3 高級跟蹤 : 記錄 vuser 在會話期間發送的所有函數和消息 .

27 由於擴展日誌內容較大 , 因此可以選擇性的開啓 , 以自定義函數方式 , 調用處理時同錯誤處理一樣 .

void ud_log_extend(int switch) {

         lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG, switch); // 設置擴展日誌

         lr_set_debug_message(LR_MSG_CLASS_PARAMETERS_LOG, switch); // 設置參數替換日誌

         lr_set_debug_message(LR_MSG_CLASS_RESULT_LOG, switch); // 設置服務器返回數據日誌

         lr_set_debug_message(LR_MSG_CLASS_FULL_LOG, switch); // 設置高級跟蹤日誌

}

Action_test{

         ud_log_extend(1); /* 開啓擴展日誌 */

         web_link(“test”, “Text=test”, LAST);

         ud_log_extend(0); /* 關閉擴展日誌 */

         return 0;

}

28 驗證測試腳本的通常流程 :

28.1 錄製或開發腳本

28.2 單用戶單迭代 : 解決可能存在的關聯問題

28.3 單用戶多迭代 : 驗證參數化問題

28.4 多用戶單迭代 : 驗證可能存在的多線程問題

28.5 多用戶多線程 : 實際就是真正的性能測試開始 .

29 Tools/Create Controller Scenario 根據當前腳本創建場景

性能測試指揮中心 —Controller

1 手工場景 : 負載測試通常使用手工場景 , 首先設置虛擬用戶數目 , 腳本 , 以及它們運行的方式 , 然後運行得出服務器的響應時間等指標 .

2 面向目標的場景 : 首先定義測試要達到的目標 , 然後 LoadRunner 自動基於這些目標創建場景 , 運行過程中 , 不斷把結果和目標相比較決定下一步走向 .

3 虛擬用戶組 : 一組用戶指的就是針對同一個腳本的多個虛擬用戶 , 在同一個場景中 , 可以用多個用戶組使用同一個腳本 .

4 集合點 ( 同步點 ): 如果當前場景中的腳本中包含集合點 (rendezvous), 那麼可以通過 Scenario/Rendezvous 打開集合點信息面板來設置集合點信息

4.1 點擊 Policy 按鈕 : 這裏設置集合點的策略 . 三個 Release 選項用來設置釋放集合點的策略 , timeout 表明第一個 vuser 等待一定時間後就不再等待 , 釋放等待用戶 , 繼續執行場景 .

5 負載生成器 : 網內安裝了負載生成器的機器都可以被同一個 Controller 控制用來生成負載 .

6 在 Controller 中可以對 vuser 組進行運行時設置 , 這裏可以設置網絡帶寬來模擬真實的情況 .

7 在 schedule( 調度欄 ) 內可以設置 vuser 加載及卸載的方式等調度策略 .

8 Scenario/Convert scenario to the percentage mode 可以將場景轉換爲百分比模式 . 百分比模式的場景只是對場景內的 vuser group 中的 vuser 數量進行了百分比分配

9 面向場景的目標類型 : 一次只能設置一個目標 .

9.1 virtual users: 虛擬用戶數量 , 如果測試服務器的併發處理能力 , 使用這個目標 .

9.2 hits per second: 每秒點擊數 , 測試 web 的真正響應處理能力 .

9.3 transaction per second: 每秒事務數 , 這種目標需要選擇事務名 .transaction response time: 事務響應時間 , 需要選擇事務名 , 測試 web 的真正響應處理能力 .

9.4 pages per minute: 每分鐘頁面響應數

10 Controller 的加載策略 :

10.1 在使用 pages per minute, hits/transaction per second 這幾種目標時 , 加載時首先用最小用戶數除以定義的目標 , 得到一個值 , 然後確定每個用戶應該達到的數據 ,然後 Controller 開始按照以下策略加載用戶 :

10.1.1 如果選擇的是自動加載 vuser, controller 會首先記載 50 個 vuser, 如果定義的最大用戶數小於 50, 會一次加載所有的 vuser.

10.1.2 如果選擇的是在場景運行一段時間後達到目標 , LoadRunner 會嘗試在定義的這段時間內達到目標 , 根據時間限制和計算出的單用戶數據確定第一批加載多少vuser.

10.1.3 如果選擇的是按照一定的階段達到目標 ( 也就是 x 長時間內達到 y 數據 , 然後達到下一目標 ), LoadRunner 計算每個用戶應該達到的數字後 , 再確定第一批加載多少用戶 .

10.2 每加載一批用戶 , LoadRunner 會判斷是否達到這批用戶的目標 , 如果這批用戶目標沒有達到 , LoadRunner 重新計算每一個用戶應該達到的目標數字後 , 重新調整下一批加載用戶數量 .

10.3 如果 Controller 加載了最多數量的用戶還沒有達到預訂目標 , 會重新計算每個用戶的目標 , 然後同時運行最大數量的用戶 , 嘗試達到預訂目標

10.4 如果出現以下情況 , pages per minute, hits/transaction per second 三種類型的面向目標場景會置於 ”Failed” 狀態 :

10.4.1 Controller 使用了指定的最大數量用戶 , 並且兩次都沒有達到目標

10.4.2 所有的用戶運行都失敗

10.4.3 沒有足夠的 LoadGenerator 機器

10.4.4 Controller 增加了幾批用戶後 , pages per minute, hits/transaction per second 數據沒有增加 .

11 IP 欺騙設置 : 應對某些服務器要求不允許單 IP 多登的測試 .

11.1 在負載生成器機器上 ( 必須使用固定 IP), “Windows 開始 ”/LoadRunner/Tools/Ip wizard 打開 IP 嚮導 , 根據嚮導配置 IP 列表 .

11.2 在 Controller 中 , Scenario/Enable IP spoofer 打開 IP 欺騙

12 場景的運行時控制

12.1 場景開始運行後 , 可以通過 stop 按鈕停止 , 但是停止的方式需要在運行之前通過 Tools/Options/Run-time settings 中設置好

12.2 場景開始運行後的 reset 按鈕用來將方案中的所有 vuser 組重置爲其方案前的關閉狀態

12.3 Vusers 用來查看 vuser 組內每個 vuser 的詳細狀態

12.4 Run/Stop Vusers 打開 ” 運行 / 停止 vuser” 對話框 , 在場景運行時決定是繼續執行還是停止某個用戶組 .

12.5 運行時釋放集合點用戶 : Scenario/Rendezvous 然後選定用戶 disable vuser

13 如果系統提供的數據採集點不能滿足需求 , 可以在腳本中用 lr_user_data_point 自定義數據採集點 .

14 判斷磁盤瓶頸的方法 : 每磁盤 I/O 數 = [ 讀次數 +(4* 寫次數 )]/ 磁盤個數 , 如果每磁盤的 I/O 數大於磁盤的處理能力 , 那麼磁盤存在瓶頸 .

尋找系統瓶頸的得力助手 —Analysis

1 Analysis 功能 :

1.1 Analysis 圖有助於確定系統性能瓶頸 .

1.2 “ 圖數據 ” 視圖和 ” 原始數據 ” 視圖以電子表格格式顯示用於生成圖的實際數據 .

1.3 “ 報告 ” 功能可以使用戶查看每個圖的摘要 , HTML 報告或各種性能和活動報告 .

2 摘要報告 (summary):

2.1 Analysis summary( 統計摘要 ):

2.1.1 Maximum Running vusers: 最大同時運行用戶數

2.1.2 Total Throughput(bytes): 吞吐量

2.1.3 Average Thoughput(bytes/second): 吞吐率

2.1.4 Total Hits: 總點擊數

2.1.5 Average Hits per Second: 每秒點擊數

2.1.6 View HTTP Responses Summary: 查看 HTTP 響應的摘要

3 Trasaction summary( 事務摘要 ):

3.1 Minimum: 事務最小時間

3.2 Average: 平均事務時間

3.3 Maximum: 事務最大時間

3.4 Std.Deviation: 標準方差 . 值越大數據越離散也就說明不穩定 .

3.5 90 Percent: 90% 的事務消耗的時間 , 通常這個值比總平均時間個更可靠 .

3.6 Pass/Fail/Stop: 通過 / 失敗 / 中途停止的事務數

4 在 Average Transaction Response Time 圖中 , 可以選擇某個事務曲線 , 右鍵 ”Web Page Breakdown for login” 將事務進行分解 , 查看事務過程中每個請求的每一步是怎麼樣完成的 .

5 Time to first buffer breakdown(Over Time) 圖中可以對比頁面響應時間中的服務器時間和網絡時間 , 從而分析是網絡還是服務器造成的耗時 .

6 Page Download Time Breakdown(Over Time) 圖中可以看出每次請求詳細分解的請求時間 ( 包括客戶端時間 , 連接時間 , DNS 解析時間 , 錯誤時間 , 首次緩存時間 , FTP鑑權時間 , 接收時間 , SSL 處理時間等等 ).

7 圖的合併 :

7.1 疊加 : 重疊共用一個 x 軸的兩個圖的內容 , 合併圖使用左右兩個不同的 y 軸

7.2 平鋪 : 共用同一個 x 軸的數據 , 但顯示上上下分離 , 合併圖仍然是左右兩個不同的 y 軸

7.3 關聯 : 當前圖的 y 軸成爲合併圖的 x 軸 , 被合併圖的 y 軸是合併圖的 y 軸

8 可以使用 Reports 生成報告 .

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