




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、信賴源于專業(yè) C語言與LoadRunner腳本本課要解決的問題 為什么要學(xué)習(xí)LoadRunner腳本編程? 認(rèn)識LoadRunner腳本語言 LoadRunner腳本語言架構(gòu)的含義 C語言在LoadRunner腳本中的靈活運用 LoadRunner常用函數(shù)介紹為什么要學(xué)習(xí)腳本編程 性能測試工程師需要編程基礎(chǔ)嗎?答案是肯定的,原因如下:做過性能測試的人都知道,很多情況下,性能測試不能通過簡單的腳本錄制與回放完成的,經(jīng)常需要自行編寫腳本,如果沒有編程基礎(chǔ),是做不到的。對于腳本的調(diào)試與定位問題,需要編程基礎(chǔ)。對腳本的編程,可以使腳本更完善,更接近真實測試場景。腳本編程也是一個性能工程師能力的體現(xiàn)。認(rèn)
2、識LoadRunner腳本語言 LR支持多種協(xié)議,對于不同協(xié)議,腳本使用的語言也不一樣,目前LR腳本支持幾乎所有主流語言,比如C語言,JAVA,VB,.NET;Web(HTTP/HTML)協(xié)議默認(rèn)使用的就是C語言。 在腳本保存目錄,我們可以看到這些文件都是這些文件都是C語言文件語言文件LoadRunner腳本語言架構(gòu) Action介紹 就是一個函數(shù)包,將用戶操作根據(jù)類型存放在不同的函數(shù)中。當(dāng)腳本生成的時候,會在對應(yīng)的目錄下生成vuser_init.c,action.c,vuser_end.c 3個文件。這3個文件會對應(yīng)3個action,每個action是一個組功能的集合,默認(rèn)的action中包
3、含獨立的3個函數(shù)為vuser_init(),action(),vuser_end() . action函數(shù)的結(jié)尾處都有一個return 0 的命令,這是用來退出整個函數(shù)的。Return 0 說明該函數(shù)正常結(jié)束。LoadRunner腳本語言架構(gòu) Vuser_init函數(shù): 一般將用戶初始化的操作放在這里,如登錄操作,分配內(nèi)存。 Action函數(shù): 是虛擬用戶要做的業(yè)務(wù)。用戶的業(yè)務(wù)操作,也就是測試內(nèi)容的主體。 Vuser_end函數(shù): 與Vuser_init相對應(yīng),Vuser_end做收尾的工作.LoadRunner腳本語言架構(gòu) 通過運行結(jié)果我們可以想象LR的實現(xiàn)是這樣的: Int veser_i
4、nit() /*后臺隱藏部分*/ int main() /用戶填寫 /*初始化腳本全局變量和環(huán)境,調(diào)用veser_init */ Int action() veser_init (); /*調(diào)用Action*/ /用戶填寫 Action(); /*調(diào)用veser_end*/ Int veser_init() vuser_end(); return 0; /用戶填寫 C語言在LR腳本中的靈活運用 數(shù)據(jù)類型類 型Bit數(shù)范 圍Unsigned char8bit0255char8bit-128-127Unsigned int32bit0-4294967295Short int16bit-32768-
5、32767double64bit1.7e-3081.7e308int32bit-2147483648-2147483647unsigned long32bit04294967295float32bit3.4e-383.4e38C語言在LR腳本中的靈活運用 表達式語句 表達式語句由表達式加上分號“;”組成Action()int x,y,z;x = 20;y = 30;z = x + y;lr_output_message(%d+%d=%d,x,y,z);return 0;C語言在LR腳本中的靈活運用 函數(shù)調(diào)用語句 函數(shù)調(diào)用語句由函數(shù)名,實際參數(shù)加上分號“;”組成。int sum(a,b) int
6、 x,y,z; x = a; y = b;z = x + y;return z;Action() lr_output_message(sum = %d,sum(20,30);return 0;C語言在LR腳本中的靈活運用 if條件判斷語句C語言在LR腳本中的靈活運用 While 循環(huán)語句Action() int i =1; int sum =0; while (i【 Toggle Breakpoint 】或者按F9設(shè)置斷點。 單步跟蹤 每執(zhí)行一條語句,程序就會停下來,可以結(jié)合日志,分析腳本??梢酝ㄟ^F10,或者【Vuser】【Run Step by Step】進行單步跟蹤。 日志的輸出,也是腳
7、本調(diào)試的重要方法 LR腳本腳本的調(diào)試 Bookmarks設(shè)置標(biāo)簽 按CTRL+F2可以在代碼行上設(shè)置一個標(biāo)簽,通過按F2,可以切換不同的代碼行。 代碼折疊 錄制出來的代碼比較長,可以設(shè)置折疊,方便查看,鼠標(biāo)右鍵,找到菜單expand/collapse,可以設(shè)置腳本為折疊模式。 代碼日志定位 如果需要找到代碼所對應(yīng)的日志位置,可以在函數(shù)上單擊右鍵,選Go to setp in replay log 命令。 快速打開代碼目錄 單擊右鍵,選open script directory 命令就可以打開代碼所在的目錄。Vuser常用函數(shù) lr_end_sub_transaction 標(biāo)記子事務(wù)的結(jié)束以便進
8、行性能分析 lr_end_transaction_instance 標(biāo)記事務(wù)實例的結(jié)束以便進行性能分析 lr_fail_trans_with_error 將打開事務(wù)的狀態(tài)設(shè)置為LR_FAIL并發(fā)送錯誤消息 lr_get_trans_instance_duration 獲取事務(wù)實例的持續(xù)時間(由它的句柄指定) lr_get_trans_instance_wasted_time 獲取事務(wù)實例浪費的時間(由它的句柄指定) lr_get_transaction_duration 獲取事務(wù)的持續(xù)時間(按事務(wù)的名稱)Vuser常用函數(shù)lr_get_transaction_think_time 獲取事務(wù)的思
9、考時間(按事務(wù)的名稱)lr_get_transaction_wasted_time 獲取事務(wù)浪費的時間(按事務(wù)的名稱)Lr_save_string()函數(shù)用于把一個字符串保存到參數(shù)中. 函數(shù)語法結(jié)構(gòu)如下Int Lr_save_string(const char*param_value,const char*param_name);param_value是將要保存的字符串.param_name是保存的參數(shù)名稱. 例如:Lr_save_string(“abcdefgh”,”paramstr”);執(zhí)行后將把字符“abcdefgh”,保存到paramstr中,然后腳本中就可以直接通過paramstr來
10、使用參數(shù)paramstrVuser常用函數(shù)Lr_save_var用來把字符串中的一部分內(nèi)容保存為參數(shù),函數(shù)語法如下Lr_save_var(const char*param_value,unsigned long const value_len,unsigned long const optins,const char*param_name);Param_value是將要進行截取的字符串.value_len是將要戴取的長度.option是留參數(shù)可設(shè)為0Param_name是保存的參數(shù)名稱.例如:lr_save_var(“abcdefgh”,5,0,”paramstr”);執(zhí)行后將把字符串”abc
11、de”保存到參數(shù)paramstr中,然后腳本中就可以直接通過paramstr來使用參數(shù)paramstrLr_eval_string函數(shù)的使用非常廣泛,主要是用來返回參數(shù)中的實際內(nèi)容,也可以返回一個包含參數(shù)的字符串的實際內(nèi)容.語法結(jié)構(gòu)如下Char*lr_eval_string(const char*instring);instrin是參數(shù)或包含參數(shù)的字符串.例如:lr_save_string(“abcdefgh”,”paramstr”);Lr_output_message(“paramstr=%s”,lr_eval_string(“paramstr”);執(zhí)行以上兩語名后將輸出“paramstr=abcdefgh”Vuser常用函數(shù)lr_message/將消息發(fā)送到Vuser日志和輸出窗l(fā)r_debug_message/將調(diào)試消息發(fā)送到輸出窗口lr_error_message/將錯誤消息發(fā)送到輸出窗口lr_get_debug_message/檢索當(dāng)前的消息類lr_log_message/將輸出消息直接發(fā)送到output.txt文件,此文件位于Vuser腳本目錄中該函數(shù)有助于防止輸出消息干擾TCP/IP通信lr_outp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025江蘇揚州現(xiàn)代農(nóng)業(yè)生態(tài)環(huán)境投資發(fā)展集團招聘筆試備考題庫含答案詳解
- 2025廣東選拔汕頭市市級鄉(xiāng)村振興人才80人筆試備考試題及完整答案詳解一套
- 2025年部編版語文四年級下冊第四次月考測試題附答案(共2套)
- 2025年包頭市公務(wù)員考試行測真題及一套答案詳解
- 浙江省杭州市學(xué)軍中學(xué)2025屆高三下學(xué)期模擬預(yù)測語文試題了(含答案)
- 2025年天津市中考物理模擬練習(xí)卷(解析版)
- 山東省煙臺市招遠(yuǎn)市2023-2024學(xué)年高二下學(xué)期4月月考物理試題(解析版)
- 肯德基 食材細(xì)膩烹飪
- 炸雞店的行業(yè)分析與市場調(diào)研
- 高層建筑中的BIM技術(shù)應(yīng)用案例
- 熱力發(fā)電廠課程設(shè)計說明書
- 氣體吸收操作-吸收塔結(jié)構(gòu)認(rèn)知(化工單元操作課件)
- 中藥湯劑的正確熬制和服用方法
- 國際足聯(lián)球員身份及轉(zhuǎn)會規(guī)程及課程教案
- 北京市海淀區(qū)八年級下學(xué)期期末考試語文試題
- 法蘭標(biāo)準(zhǔn)尺寸表
- DB5206T16-2018梵凈山茶葉加工場所基本條件
- 農(nóng)產(chǎn)品供應(yīng)鏈數(shù)字化轉(zhuǎn)型:理論框架與實現(xiàn)路徑共3篇
- 動物園主題認(rèn)識數(shù)字1-5幼兒教育教學(xué)PPT課件(含完整內(nèi)容)
- GB/T 21490-2008結(jié)構(gòu)加固修復(fù)用碳纖維片材
- GB/T 18765-2008野山參鑒定及分等質(zhì)量
評論
0/150
提交評論