1. 程式人生 > >loadrunner之 學習二:loadrunner函式

loadrunner之 學習二:loadrunner函式

學習二:loadrunner函式

一、基礎函式

在VU左邊導航欄中,有三個LR框架函式,分別是vuser_init(),Action(),vuser_end()。這三個函式存在與任何Vuser型別的指令碼中。

  • vuser_init():虛擬使用者的初始化函式,存放使用者初始化操作,如登入、分配記憶體等。(只執行一次)
  • Action:虛擬使用者要做的業務,也就是測試內容的主體。引數化只對Action有效,Action重複執行。
  • vuser_end():與init()相對,做收尾工作,如退出登入,free記憶體。(同樣只執行一次)

在LR指令碼中,我們可以呼叫三種函式:

  1. VU通用函式,一般以lr開頭,如lr_start_transaction函式。
  2. 協議相關函式,不同型別的Vuser的函式一般以本協議型別開頭。如果指令碼是Web(HTTP/HTML)型別的,web_url就是一個協議函式。
  3. 語言相關函式。如VU指令碼用C語言寫的,那麼C語言的標準函式庫或DLL都可以在這裡被載入和使用。

二、通用VU函式

通用VU函式是構建在C語言基礎之上的指令碼框架函式,起支援作用。通用VU函式有一個特徵,就是以LR開頭,以標明它們屬於LR,而不專屬於任何協議,只要是C指令碼,都可以使用。

通用VU函式可分為:

  • 事務控制函式
  • 命令列分析函式
  • 系統資訊函式
  • 字串函式
  • 日誌函式
  • 執行時函式

1.事務與事務控制函式

軟體系統的效能就是以一個個事務來度量的。LR中事務的定義就是靠事務函式來進行,在執行效能測試時,LR會採集完成其定義的每個事務所花費的時間,並在效能測試後在Analysis中進行統計分析

  • lr_end_sub_transaction:標記子事務的結束以便進行效能分析。
  • lr_end_transaction:標記LoadRunner事務的結束。
  • lr_end_transaction_instance:標記事務例項的結束以便進行效能分析。
  • lr_fail_trans_with_error:將開啟事務的狀態設定為LR_FAIL併發送錯誤訊息。
  • lr_get_trans_instance_duration:獲取事務例項的持續時間。
  • lr_get_trans_instance_wasted_time:獲取事務例項浪費的時間。
  • lr_resume_transaction:繼續收集事務資料以便進行效能分析。
  • lr_resume_transaction_instance:繼續收集事務例項資料以便進行效能分析。
  • lr_set_transaction_instance_status:設定事務例項的狀態。
  • lr_set_transaction_status:設定開啟事務的狀態。
  • lr_set_transaction_status_by_name:設定事務的狀態。
  • lr_start_sub_transaction:標記子事務的開始。
  • lr_start_transaction:標記事務的開始。
  • lr_start_transaction_instance:啟動巢狀事務。
  • lr_stop_transaction:停止事務資料的收集。
  • lr_stop_transaction_instance:停止事務資料的收集。
  • lr_wasted_time:消除所有開啟事務浪費的時間。

2.命令列分析函式

當LoadRunner用命令列方式啟動和執行時,以下函式用來分析命令列,以得到命令列中的引數資訊。

  • lr_get_attrib_double:檢索指令碼命令列中使用的double型別變數。
  • lr_get_attrib_long:檢索指令碼命令列中使用的long型別變數。
  • lr_get_attrib_string:檢索指令碼命令列中使用的字串。

3.系統資訊函式

用來得到VU系統資訊:

  • lr_user_data_point:記錄使用者定義的資料採集點。
  • lr_whoami:將有關Vuser的資訊返回給Vuser指令碼。
  • lr_get_host_name:返回執行Vuser指令碼的主機名。
  • lr_get_master_host_name:返回執行LoadRunner Controller的計算機名。
      

4.字串函式

主要是對引數進行操作,包括對不同型別引數的讀取、儲存和移動。

  • lr_eval_string:返回引數的當前值。
  • lr_save_string:將以NULL結尾的字串儲存到引數中。
  • lr_save_var:將變長字串儲存到引數中。
  • lr_save_datetime:將當前日期和時間儲存到引數中。
  • lr_advance_param:前進到下一個可用引數。
  • lr_decrypt:解密已編碼的字串。
  • lr_eval_string_ext:lr_eval_string的擴充套件,為指向包含引數資料的緩衝區的指標。
  • lr_eval_string_ext_free:釋放由lr_eval_string_ext分配的指標。
  • lr_save_searched_string:在緩衝區中搜索字串例項,並將改字串例項儲存到引數中。
      

5.訊息函式

是VU傳送和記錄log的函式

  • lr_debug_message:將除錯訊息傳送到輸出視窗。
  • lr_error_message:將錯誤訊息傳送到輸出視窗。
  • lr_get_debug_message:得到當前的訊息類。
  • lr_log_message:將輸出訊息直接傳送到output.txt檔案,此檔案位於Vuser指令碼目錄中。
  • lr_output_message:將訊息傳送到輸出視窗。
  • lr_set_debug_message:為輸出訊息設定訊息類。
  • lr_vuser_status_message:生成格式化輸出並將其列印到Controller Vuser狀態區域。
  • lr_message:將訊息傳送到Vuser日誌和輸出視窗。
      

6.執行時函式

執行時(run-time)多數是通過VU的runtime來設定的。

  • lr_load_dll,載入外部dll。
  • lr_think_time:暫停指令碼的執行,以模擬思考時間。
  • lr_continue_on_error,指定指令碼如何處理錯誤場景,是繼續還是退出。
  • lr_rendezvous:在Vuser指令碼中設定集合點。

三、協議相關函式

除了通用Vuser函式以外,Vugen還會在錄製時生成特定於協議的函式,並將它們插入到Vuser指令碼中。

1.http協議

Header設定函式:

  • Web_add_header
  • Web_clean_header

點選連結:

  • Web_link
  • Web_image

提交表單:

  • Web_submit_data
  • Web_submit_form

2.web系統設定

Cache設定:

  • Web_cache_leanup
  • Web_load_cache

Cookie設定:

  • Web_add_cookie
  • Web_cleanup_cookies

Proxy設定:

  • Web_set_proxy
  • Web_set_secure_proxy

3.LR框架支援

檢查點:

  • Web_find
  • Web_image_check

關聯:

  • Web_create_html_param
  • Web_create_html_param_ex
  • Web_reg_save_param
  • Web_set_max_html_param_len

控制:

  • Lr_start_transaction
  • Lr_rendzvous
  • Lr_think_time

相關推薦

loadrunner 學習loadrunner函式

學習二:loadrunner函式 一、基礎函式 在VU左邊導航欄中,有三個LR框架函式,分別是vuser_init(),Action(),vuser_end()。這三個函式存在與任何Vuser型別的指令碼中。 vuser_init():虛擬使

loadrunner 學習分析結果,給出報告

學習九:分析結果,給出報告 1.Analysis初接觸 Analysis可以通過Launcher開啟,也可以通過controller開啟。包含下列主要視窗: 會話瀏覽器:顯示已經開啟可供檢視的報告和圖。可開啟新報告或圖,也可刪除不想檢視的報告和圖。

loadrunner 學習將結果寫入日誌檔案

學習六:將結果寫入日誌檔案 1.指令碼實現 首先根據網上找到的內容跟著進行指令碼實現,程式碼如下: //定義要寫入的日誌,開啟檔案 char *filename = "d:\\lr_script\\test001.log"; long file_st

吳恩達機器學習 學習筆記 代價函式和梯度下降演算法

二、 2-1 Model Representation 我們學習的第一個演算法是線性迴歸,接下來會講什麼樣的模型更重要,監督學習的過程是什麼樣子。 首先舉一個需要做預測的例子:住房價格上漲,預測房價,我們擁有某一城市的住房價格資料。基於這些資料,繪製圖形。 在已有房價資

STL學習函式物件和謂詞

本文主要介紹函式物件和謂詞的示例程式碼。函式物件是屬於類物件,能突破函式的概念 ,用以保持條用狀態資訊。具體的使用資訊科參見程式碼中的註釋部分。  示例程式碼主要包含: 1 .函式物件的定義   函式物件和普通函式的區別; 2. 分清楚STL演算法返回的值時迭代器 還是 謂

Mysql學習JDBC連接數據庫DriverManager方法

url state 種類 delet rom 條件 管理系 ont into JDBC連接數據庫 ?創建一個以JDBC連接數據庫的程序,包括7個步驟: 1、載入JDBC驅動程序: 在連接數據庫之前。首先要載入想要連接的數據庫的驅動到JVM

Tensorflow深度學習基礎圖像處理

fcm 數字 ssi port con tty .net term file Tensorflow深度學習之十二:基礎圖像處理之二 from:https://blog.csdn.net/davincil/article/details/76598474 首先放出

小程式學習開發工具部分功能和專案結構介紹

上一篇講到了新建專案進來,本篇主要講解開發工具部分功能和專案結構介紹,按照我的風格來,先上目錄 開發工具的部分功能簡介 小程式專案目錄簡介 以下幾個功能是我覺得比較方便喜歡的 自動儲存(設定----編輯設定-----選中修改檔案時自動儲存) console(控

kubernetes學習筆記資源指標API及自定義指標API

第一章、前言 以前是用heapster來收集資源指標才能看,現在heapster要廢棄了從1.8以後引入了資源api指標監視 資源指標:metrics-server(核心指標) 自定義指標:prometheus,k8s-prometheus-adapter(將Prometheus採集的資料轉換為指

基礎學習筆記opencv(24)imwrite函式的使用

  前言   OpenCV中儲存圖片的函式在c++版本中變成了imwrite(),這應該是向matlab中影象處理的的一些函式風格靠近吧。儲存圖片這個功能還是很重要的,比如說在寫科研論文的時候需要把一些中間圖片給貼出來,這樣就可以在程式中間利用該函式儲存圖片了。甚至還可以將這些儲存的圖片供後續的matla

Java Web 學習筆記JBoss RestEasy處理跨域OPTIONS請求方式

跨域請求問題 前提 前後端分離的B/S架構系統 前後端獨立開發,後端採用JBoss restEasy 框架搭建restful服務 後端程式碼開發完成並且部署在某一臺測試機上 前端開發過程中,需

Tensorflow深度學習基礎影象處理

首先放出原始影象: 1、影象的翻轉 import tensorflow as tf import cv2 # 這裡定義一個tensorflow讀取的圖片格式轉換為opencv讀取的圖片格式的函式 # 請注意: # 在tensorflow中,一個畫素

我的Go語言學習入門初體驗 Hello World

好吧,所有的程式設計師們都已經習慣了,學習任何一門語言,我們都會以Hello World例項開始我們的學習,我也不例外。先來一個簡單的例子 開啟編輯器 (可以用記事本,我已經習慣 Notepad++了)輸入以下內容 package main import

C++虛擬函式虛擬函式表與虛擬函式呼叫

繼續前一篇《C++ 虛擬函式之一:物件記憶體佈局》,這次來分析一下虛擬函式表的結構和虛擬函式的呼叫過程。 虛擬函式表結構 如何檢視虛擬函式表的結構?使用gdb直接檢視記憶體固然可以,但是不夠直觀,那麼有沒有更好的方法呢?使用gcc的-fdump-clas

十一、Oracle學習筆記編寫函式和觸發器

一、函式或過程的選擇     1.如果要進行DML(增刪改),選擇儲存過程     2.如果沒有DML,選擇函式     二、函式 1.格式 create or replace function 函式名(引數1 型別,引數2 型別, 。。。) return

【Java並發編程】線程間通信中notifyAll造成的早期通知問題(含代碼)

data light lan 添加項 article util tool 元素 seconds 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17229601 如果線程在等待時接到通知,但線程等待的條件

WPF學習TextBlock和Label的區別

padding eight 前景 繼承 man ont blog led use TextBlock和Label都是用來顯示少量數據的。好多文章對Label存在的描述都是它允許使用"快速獲取"。"快速獲取"就是允許你用Alt加上其它的按鍵快速和UI界面的某個控件交互,比如你

pythonmultiprocessing()multiprocessing.Pool

centos6 bsp ins keys name roc set turn system [實現:多進程paramiko] 1.server_list.txt :格式 HOST PORT USER PASSWD localhost 22 root roo

垃圾收集器與內存分配策略垃圾收集器

開啟 full gc 行處理 意義 方案 發現 特征 sea 互聯網 五、垃圾收集器 如果說收集算法是內存回收的方法論,那麽垃圾收集器就是內存回收的具體實現。由於java虛擬機規範對垃圾收集器實現沒有任何的規範因此不同的廠商,不同的版本的虛擬機所提供的垃圾收集器都有可

應用負載均衡LVS()VS_TUN和VS_DR的arp問題

sets 現在 win data info defined -m ping不通 scss 本文目錄:1. ARP協議簡介2. arp_ignore和arp_announce變量的作用分析 2.1 arp_ignore 2.2 arp_announce3. 設置arp_i