久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

LoadRunner檢查點(diǎn)使用小結(jié)

時(shí)間:2019-05-13 19:18:40下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《LoadRunner檢查點(diǎn)使用小結(jié)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《LoadRunner檢查點(diǎn)使用小結(jié)》。

第一篇:LoadRunner檢查點(diǎn)使用小結(jié)

LR中檢查點(diǎn)有兩種:圖片和文字。常用檢查點(diǎn)函數(shù)如下:

1)web_find()函數(shù)用于從 HTML 頁中搜索指定的文本字符串;

2)web_reg_find()函數(shù)注冊一個(gè)請求,以在下一個(gè)操作函數(shù)(如 web_url)檢索到的HTML網(wǎng)頁上搜索指定的文本字符串;

3)web_image_check()函數(shù)用于從HTML頁面中查找指定的圖片;

4)web_global_verfication()屬于注冊函數(shù),注冊一個(gè)在web頁面中搜索文本字符串的請求,與web_reg_find只在下一個(gè)Action函數(shù)中執(zhí)行搜索不同的是它在之后所有的Action類函數(shù)中執(zhí)行搜索指定的文本字符串; 下面分別介紹以上函數(shù)的用法:

1、web_find()函數(shù)參數(shù)舉例:

web_find(“web_find”,“RighOf=a”,“LeftOf=b”,“What=name”,LAST);參數(shù)解釋:“web_find”定義該查找函數(shù)的名稱;“LeftOf”和“RighOf=”用來定義查找字符的左右邊界;“What=”定義查找內(nèi)容;

例如上述參數(shù)舉例中的意思就是在頁面中查找左邊界為b,右邊界為a,內(nèi)容為name的信息;

使用該函數(shù)注意事項(xiàng):該函數(shù)是在查找頁面中的內(nèi)容,所以要放在要查找的內(nèi)容的后面;該函數(shù)只能在基于HTML模式錄制的腳本中進(jìn)行查找

注意事項(xiàng):使用該函數(shù)時(shí),要在Vuser->Run-Tme Settings中更改下設(shè)置

勾選Enable Image and text check

系統(tǒng)默認(rèn)是不勾選該選項(xiàng)的。

2、web_reg_find()函數(shù)參數(shù)舉例: web_reg_find(“Search=Body”,“SaveCount=ddd”,“Test=aaa”,LAST);參數(shù)解釋: Search用來定義查找范圍,SaveCount定義查找計(jì)數(shù)變量名稱,該參數(shù)可以記錄在緩存中查找內(nèi)容出現(xiàn)的次數(shù),可以使用該值,來判斷要查找的內(nèi)容是否被找到;

例如上述參數(shù)舉例中的意思就是Body中查找內(nèi)容為aaa的信息,并將出現(xiàn)次數(shù)記錄在變量ddd中;

【代碼一:web_reg_find(“Text=Payment Details”,LAST);代碼思路:1.“Payment Details” 為你要檢查的文本;

2.腳本執(zhí)行到此處,若在頁面上找到了這幾個(gè)字符串,那腳本繼續(xù)執(zhí)行下去;若沒有找到,腳本將在此報(bào)錯(cuò)并且結(jié)束。】

【代碼二:web_reg_find(“Text=Payment Details”, “SaveCount=para_count”, LAST);//check 的函數(shù)

web_submit_form(“reservations.pl_2”, //要check的頁面的錄制時(shí)的代碼 “Snapshot=t22.inf”, ITEMDATA, “Name=outboundFlight”, “Value=003;0;06/23/2007”, ENDITEM, “Name=reserveFlights.x”, “Value=61”, ENDITEM, “Name=reserveFlights.y”, “Value=2”, ENDITEM, LAST);if(atoi(lr_eval_string(“{para_count}”))>0)//驗(yàn)證是否找到了頁面上的要檢查的字符串

lr_output_message(“we find the string!”);else lr_output_message(“sorry,don't find the string!”);代碼思路:1.“Payment Details” 為你要檢查的文本;

2.腳本執(zhí)行到此處,不管頁面上是否存在你要檢查的字符串,腳本都不會報(bào)錯(cuò),而是執(zhí)行下去。3.此段代碼將找到的你要檢查的字符串的個(gè)數(shù),存為一個(gè)參數(shù)。然后在頁面代碼的后面,通過檢查這個(gè)參數(shù)的值是否大于0,來判斷是否找到了你所要檢查的字符串。】 【代碼三:

A.web_reg_find(“Text=Payment Detdils”, “Fail=NotFound”,LAST);或 B.web_reg_find(“Text=Payment Detdils”, “Fail=Found”,LAST);代碼思路:

1.“Payment Details” 為你要檢查的文本;

2.若是A代碼:腳本執(zhí)行到此處,若沒有找到check的字符串,腳本將FAIL,并且停止執(zhí)行下去。反之,則一直執(zhí)行下去。

3.若是B代碼:腳本執(zhí)行到此處,若找到check的字符串,腳本將FAIL,并且停止執(zhí)行下去。反之,則一直執(zhí)行下去】

使用該函數(shù)注意事項(xiàng):該函數(shù)是在緩存中查找相應(yīng)的內(nèi)容,所以要放在查找內(nèi)容之前;通常情況下寫在如下六個(gè)函數(shù)之前:Web_castom_request();web_image();web_link();web_submit_data();web_submit_form();web_url(); 使用技巧:在該函數(shù)的參數(shù)中有個(gè)“SaveCount”,該參數(shù)可以記錄在緩存中查找內(nèi)容出現(xiàn)的次數(shù),我們可以使用該值,來判斷要查找的內(nèi)容是否被找到,下面舉個(gè)例子來說明:(引用LR的幫助中的例子)// Run the Web Tours sample web_url(“MercuryWebTours”, “URL=http://localhost/MercuryWebTours/”, “Resource=0”, “RecContentType=text/html”, “Referer=”, “Snapshot=t1.inf”, “Mode=HTML”, LAST);// Set up check for successful login by looking for “Welcome” web_reg_find(“Text=Welcome”, “SaveCount=Welcome_Count”, LAST);// Now log in web_submit_form(“l(fā)ogin.pl”, “Snapshot=t2.inf”, ITEMDATA, “Name=username”, “Value=jojo”, ENDITEM, Name=password“, ”Value=bean“, ENDITEM, ”Name=login.x“, ”Value=35“, ENDITEM, ”Name=login.y“, ”Value=14“, ENDITEM, LAST);// Check result if(atoi(lr_eval_string(”{Welcome_Count}“))> 0){ //判斷如果Welcome字符串出現(xiàn)次數(shù)大于0 lr_output_message(”Log on successful.“);}//在日志中輸出Log on successful else{ //如果出現(xiàn)次數(shù)小于等于

lr_error_message(”Log on failed“);//在日志中輸出Log on failed return(0);} 我覺得這個(gè)方法非常有用,我們可以舉一反三,應(yīng)用到我們實(shí)際的項(xiàng)目 注:在錄制過程中添加的檢查點(diǎn),用到的函數(shù)是web_reg_find(),且參數(shù)只有“Text=”

3、web_image_check()函數(shù)參數(shù)說明: web_image_check(”web_image_check“,”Alt=“,”Src=“,LAST);參數(shù)解釋:“Alt”和“Src”的值直接取該圖片在網(wǎng)頁源代碼中相應(yīng)參數(shù)的值; 注意事項(xiàng):使用該函數(shù)時(shí),要在Vuser->Run-Tme Settings中勾選Enable Image and text check,具體操作請看web_find()中的注意事項(xiàng)。經(jīng)過測試,該函數(shù)用到查找內(nèi)容前面或后面,都不影響查找結(jié)果。舉例說明(腳本)

該腳本記錄的是登陸系統(tǒng)后退出的操作,在腳本中用到atoi()函數(shù)和lr_eval_string(”{SaveCount定義的變量}”)兩個(gè)函數(shù)結(jié)合使用,判斷查找內(nèi)容出現(xiàn)的次數(shù)是否大于0,若大于0,則輸入登錄成功的信息。vuser_init(){ web_url(”xjcost“, ”URL=http://gczj-server8:9205/xjcost/“, ”Resource=0“, ”RecContentType=text/html“, ”Referer=“, ”Snapshot=t1.inf“, ”Mode=HTML“, EXTRARES, ”Url=jsp/images/index/index.swf“, ENDITEM, ”Url=jsp/images/index/xxfb2.gif“, ENDITEM, ”Url=jsp/images/index/ywpt2.gif“, ENDITEM, LAST);web_url(”userAction.struts“, ”URL=http://gczj-server8:9205/xjcost/userAction.struts?actionType=reLogin“, ”Resource=0“, ”RecContentType=text/html“, ”Referer=“, ”Snapshot=t2.inf“, ”Mode=HTML“, LAST);return 0;} Action(){ lr_start_transaction(”Log_on“);lr_rendezvous(”Log_on“);web_add_cookie(”userAccount=admin;DOMAIN=gczj-server8“);web_reg_find(”Text=歡迎您“, ”SaveCount=歡迎您_Count“, LAST);web_image_check(”web_image_check“, ”Src=/xjcost/jsp/images/index1/edit_01.gif“, LAST);web_submit_data(”userLogin.struts“, ”Action=http://gczj-server8:9205/xjcost/userLogin.struts?actionType=userLogin“, ”Method=POST“, ”RecContentType=text/html“, ”Referer=http://gczj-server8:9205/xjcost/userAction.struts?actionType=reLogin“, ”Snapshot=t3.inf“, ”Mode=HTML“, ITEMDATA, ”Name=userAccount“, ”Value=admin“, ENDITEM, ”Name=pwd“, ”Value=1111“, ENDITEM, EXTRARES, ”Url=jsp/images/index1/edit_01a.gif“, ”Referer=http://gczj-server8:9205/xjcost/userLogin.struts?actionType=userLogin“, ENDITEM, LAST);web_find(”web_find“, ”What=歡迎您“, LAST);lr_end_transaction(”Log_on“,LR_AUTO);//檢查是否登錄成功

//如果“歡迎您”這個(gè)字符出現(xiàn)次數(shù)大于0,輸出“Log on successfully!”

if(atoi(lr_eval_string(”{歡迎您_Count}“))>0)lr_output_message(”Log on successfully!“);else lr_error_message(”Log on failed!“);return 0;return 0;} //atoi()函數(shù)的作用是將一個(gè)ASCII字符串轉(zhuǎn)換為整型

//lr_eval_string()函數(shù)作用是取得參數(shù)值,將字符串變量中的參數(shù)值替換為當(dāng)前的參數(shù)值并將這個(gè)字符串返回 vuser_end(){ lr_think_time(4);web_url(”userAction.struts_2“, ”URL=http://gczj-server8:9205/xjcost/userAction.struts?actionType=reLogin“, ”Resource=0“, ”RecContentType=text/html“, ”Referer=“, ”Snapshot=t4.inf“, ”Mode=HTML“, LAST);return 0;} Global.h:

#ifndef _GLOBALS_H #define _GLOBALS_H //------// Include Files #include ”lrun.h“ #include ”web_api.h“ #include ”lrw_custom_body.h“ //------// Global Variables #endif // _GLOBALS_H Replay Log常見信息說明

1、web_find()和web_image_check()函數(shù)的日志信息(這兩個(gè)日志信息實(shí)際上是一樣的,只是輸出的函數(shù)名和參數(shù)不同)

1)信息1Action.c(22): Verification checks not enabled.web_image_check is skipped.See the 'Run-time settings/Preferences/Checks' [MsgId: MMSG-27197] Action.c(22): web_image_check was successful [MsgId: MMSG-26392] 出現(xiàn)該信息,說明沒有勾選Enable Image and text check 2)信息2Action.c(22): ”web_image_check“ succeeded(1 occurrence(s)found.Alt=”“, Src=”/xjcost/jsp/images/index1/edit_01.gif“)[MsgId: MMSG-27192] Action.c(22): web_image_check was successful [MsgId: MMSG-26392] 出現(xiàn)該信息,說明檢查點(diǎn)設(shè)置成功,且已經(jīng)查找到信息

3)信息3Action.c(22): Error-27191: ”web_image_check“ failed(0 occurrence(s)found.Alt=”“, Src=”/xjcost/jsp/images/index1/edit_1.gif“)[MsgId: MERR-27191] Action.c(22): web_image_check highest severity level was ”ERROR“ [MsgId: MMSG-26391] 出現(xiàn)該信息,說明要查找的內(nèi)容沒有找到。這時(shí)依次嘗試以下操作:(1)檢查參數(shù)的信息是否寫錯(cuò);

(2)如果是web_find(),檢查函數(shù)的位置是否在要查找內(nèi)容的后面;(3)如果是web_image_check(),查看該圖片的源代碼,看其是否是這個(gè)頁面上的圖片,很可能是圖片選擇錯(cuò)誤,即所選圖片不屬于該頁面。

2、web_reg_find()函數(shù)的日志信息

1)信息1Action.c(15): Registering web_reg_find was successful [MsgId: MMSG-26390] 出現(xiàn)該信息,說明內(nèi)容已查找到

2)信息2Action.c(27): Error-26366: ”Text=ABC“ not found for web_reg_find [MsgId: MERR-26366] Action.c(27): web_submit_data(”userLogin.struts“)highest severity level was ”ERROR", 18364 body bytes, 918 header bytes, 13 chunking overhead bytes [MsgId: MMSG-26387] 該信息在replay log頁面是紅色顯示的,說明沒有找到內(nèi)容,出現(xiàn)此情況嘗試以下兩個(gè)操作:

(1)參數(shù)的信息是否正確;

(2)查看該函數(shù)是否在查找內(nèi)容的前面。插入函數(shù)的方法:

1、手工寫入,在需要插入函數(shù)的位置手工寫入該函數(shù);

2、光標(biāo)停留在要插入函數(shù)的位置,在INSERT菜單中,選擇new step,在列表中選擇或查找要插入的函數(shù),根據(jù)提示填寫必要的參數(shù);

3、在tree view模式下,在樹狀菜單中選中要插入函數(shù)的位置,右鍵,選擇insert after或insert before,根據(jù)提示填寫必要的參數(shù); 總結(jié):

1、這兩個(gè)函數(shù)函數(shù)類型不同,WEB_FIND是普通函數(shù),WEB_REG_FIND是注冊函數(shù);

2、WEB_FIND使用時(shí)必須開啟內(nèi)容檢查選項(xiàng),而WEB_REG_FIND則不沒有此限制;

3、WEB_FIND只能用在基于HTML模式錄制的腳本中,而WEB_REG_FIND沒有此限制;

4、WEB_FIND是在返回的頁面中進(jìn)行內(nèi)容查找,WEB_REG_FIND是在緩存中進(jìn)行查找;

5、WEB_FIND在執(zhí)行效率上不如WEB_REG_FIND;

第二篇:LoadRunner檢查點(diǎn)使用小結(jié)

LoadRunner檢查點(diǎn)使用小結(jié)

LR中檢查點(diǎn)有兩種:圖片和文字。這兩種檢查點(diǎn)可用以下三個(gè)函數(shù)實(shí)現(xiàn):web_find()、web_reg_find()和web_image_check()下面分別介紹三種函數(shù)的用法

1、web_find()函數(shù)

函數(shù)作用:在頁面中查找相應(yīng)的內(nèi)容

參數(shù)舉例:web_find(“web_find”,“RighOf=a”,“LeftOf=b”,“What=name”,LAST);參數(shù)解釋:“web_find”定義該查找函數(shù)的名稱;“LeftOf”和“RighOf=”用來定義查找字符的左右邊界;“What=”定義查找內(nèi)容。

例如上述參數(shù)舉例中的意思就是在頁面中查找左邊界為b,右邊界為a,內(nèi)容為name的信息 函數(shù)用法:該函數(shù)是在查找頁面中的內(nèi)容,所以要放在要查找的內(nèi)容的后面。注意事項(xiàng):使用該函數(shù)時(shí),要在Vuser->Run-Tme Settings中更改下設(shè)置

勾選Enable Image and text check

系統(tǒng)默認(rèn)是不勾選該選項(xiàng)的。

2、web_reg_find()函數(shù)

函數(shù)作用:在緩存中查找相應(yīng)的內(nèi)容

參數(shù)舉例:web_reg_find(“Search=Body”,“SaveCount=ddd”,“Test=aaa”,LAST);參數(shù)解釋: Search用來定義查找范圍,SaveCount定義查找計(jì)數(shù)變量名稱,該參數(shù)可以記錄在緩存中查找內(nèi)容出現(xiàn)的次數(shù),可以使用該值,來判斷要查找的內(nèi)容是否被找到

例如上述參數(shù)舉例中的意思就是Body中查找內(nèi)容為aaa的信息,并將出現(xiàn)次數(shù)記錄在變量ddd中。函數(shù)用法:該函數(shù)是在緩存中查找相應(yīng)的內(nèi)容,所以要放在查找內(nèi)容之前。

注:在錄制過程中添加的檢查點(diǎn),用到的函數(shù)是web_reg_find(),且參數(shù)只有“Text=”

3、web_image_check()函數(shù)

函數(shù)作用:在頁面中查找一個(gè)具體的圖片。

參數(shù)說明:web_image_check(“web_image_check”,“Alt=”,“Src=”,LAST);;參數(shù)解釋:“Alt”和“Src”的值直接取該圖片在網(wǎng)頁源代碼中相應(yīng)參數(shù)的值。函數(shù)用法:該函數(shù)是在緩存中查找相應(yīng)的內(nèi)容,所以要放在查找內(nèi)容之前。

注意事項(xiàng):使用該函數(shù)時(shí),要在Vuser->Run-Tme Settings中勾選Enable Image and text check,具體操作請看web_find()中的注意事項(xiàng)。

經(jīng)過測試,該函數(shù)用到查找內(nèi)容前面或后面,都不影響查找結(jié)果。舉例說明(腳本)

該腳本記錄的是登陸系統(tǒng)后退出的操作,在腳本中用到atoi()函數(shù)和lr_eval_string(”{SaveCount定義的變量}”)兩個(gè)函數(shù)結(jié)合使用,判斷查找內(nèi)容出現(xiàn)的次數(shù)是否大于0,若大于0,則輸入登錄成功的信息。

vuser_init()

{

web_url(“xjcost”,“URL=http://gczj-server8:9205/xjcost/”,“Resource=0”,“RecContentType=text/html”,“Referer=”, “Snapshot=t1.inf”, “Mode=HTML”, EXTRARES,“Url=jsp/images/index/index.swf”, ENDITEM, “Url=jsp/images/index/xxfb2.gif”, ENDITEM, “Url=jsp/images/index/ywpt2.gif”, ENDITEM,LAST);

web_url(“userAction.struts”, “URL=http://gczj-server8:9205/xjcost/userAction.struts?actionType=reLogin”,“Resource=0”,“RecContentType=text/html”,“Referer=”, “Snapshot=t2.inf”, “Mode=HTML”,LAST);return 0;

} Action()

{

lr_start_transaction(“Log_on”);lr_rendezvous(“Log_on”);web_add_cookie(“userAccount=admin;DOMAIN=gczj-server8”);

web_reg_find(“Text=歡迎您”, “SaveCount=歡迎您_Count”,LAST);

web_image_check(“web_image_check”, “Src=/xjcost/jsp/images/index1/edit_01.gif”,LAST);

web_submit_data(“userLogin.struts”, “Action=http://gczj-server8:9205/xjcost/userLogin.struts?actionType=userLogin”,“Method=POST”, “RecContentType=text/html”, “Referer=http://gczj-server8:9205/xjcost/userAction.struts?actionType=reLogin”,“Snapshot=t3.inf”, “Mode=HTML”, ITEMDATA, “Name=userAccount”, “Value=admin”, ENDITEM,“Name=pwd”, “Value=1111”, ENDITEM,EXTRARES,“Url=jsp/images/index1/edit_01a.gif”, “Referer=http://gczj-server8:9205/xjcost/userLogin.struts?actionType=userLogin”, ENDITEM,LAST);

web_find(“web_find”, “What=歡迎您”,LAST);

lr_end_transaction(“Log_on”,LR_AUTO);

//檢查是否登錄成功

//如果“歡迎您”這個(gè)字符出現(xiàn)次數(shù)大于0,輸出“Log on successfully!”

if(atoi(lr_eval_string(“{歡迎您_Count}”))>0)lr_output_message(“Log on successfully!”);

else

lr_error_message(“Log on failed!”);

return 0;return 0;

} //atoi()函數(shù)的作用是將一個(gè)ASCII字符串轉(zhuǎn)換為整型

//lr_eval_string()函數(shù)作用是取得參數(shù)值,將字符串變量中的參數(shù)值替換為當(dāng)前的參數(shù)值并將這個(gè)字符串返

回 vuser_end()

{

lr_think_time(4);

web_url(“userAction.struts_2”, “URL=http://gczj-server8:9205/xjcost/userAction.struts?actionType=reLogin”,“Resource=0”,“RecContentType=text/html”,“Referer=”, “Snapshot=t4.inf”, “Mode=HTML”,LAST);return 0;

} Global.h: #ifndef _GLOBALS_H #define _GLOBALS_H //------

// Include Files #include “l(fā)run.h” #include “web_api.h” #include “l(fā)rw_custom_body.h” //------

// Global Variables #endif // _GLOBALS_H Replay Log常見信息說明

1、web_find()和web_image_check()函數(shù)的日志信息(這兩個(gè)日志信息是上一樣的,只是輸出的函數(shù)名和參數(shù)不同)

1)信息1Action.c(22): Verification checks not enabled.web_image_check is skipped.See the 'Run-time settings/Preferences/Checks' [MsgId: MMSG-27197] Action.c(22): web_image_check was successful [MsgId: MMSG-26392] 出現(xiàn)該信息,說明沒有勾選Enable Image and text check 2)信息2Action.c(22): “web_image_check” succeeded(1 occurrence(s)found.Alt=“", Src=”/xjcost/jsp/images/index1/edit_01.gif“)[MsgId: MMSG-27192] Action.c(22): web_image_check was successful [MsgId: MMSG-26392] 出現(xiàn)該信息,說明檢查點(diǎn)設(shè)置成功,且已經(jīng)查找到信息

3)信息3Action.c(22): Error-27191: ”web_image_check“ failed(0 occurrence(s)found.Alt=”“, Src=”/xjcost/jsp/images/index1/edit_1.gif“)[MsgId: MERR-27191] Action.c(22): web_image_check highest severity level was ”ERROR“ [MsgId: MMSG-26391] 出現(xiàn)該信息,說明要查找的內(nèi)容沒有找到。這時(shí)依次嘗試以下操作:(1)檢查參數(shù)的信息是否寫錯(cuò);

(2)如果是web_find(),檢查函數(shù)的位置是否在要查找內(nèi)容的后面;

(3)如果是web_image_check(),查看該圖片的源代碼,看其是否是這個(gè)頁面上的圖片,很可能是圖片選擇錯(cuò)誤,即所選圖片不屬于該頁面。

2、web_reg_find()函數(shù)的日志信息

1)信息1Action.c(15): Registering web_reg_find was successful [MsgId: MMSG-26390] 出現(xiàn)該信息,說明內(nèi)容已查找到

2)信息2Action.c(27): Error-26366: ”Text=ABC“ not found for web_reg_find [MsgId: MERR-26366] Action.c(27): web_submit_data(”userLogin.struts“)highest severity level was ”ERROR", 18364 body bytes, 918 header bytes, 13 chunking overhead bytes [MsgId: MMSG-26387] 該信息在replay log頁面是紅色顯示的,說明沒有找到內(nèi)容,出現(xiàn)此情況嘗試以下兩個(gè)操作:(1)參數(shù)的信息是否正確;

(2)查看該函數(shù)是否在查找內(nèi)容的前面。

第三篇:loadrunner使用cookie模擬

loadrunner使用cookie模擬

自己的工作總結(jié),大家討論討論

1為什么要使用cookie模擬

從日常項(xiàng)目測試過程中的問題說起。

比如要進(jìn)行論壇中的文件下載功能的測試。我們都知道只有登錄用戶才能進(jìn)行下載操作,這樣我們的測試過程可能就變成了先登錄系統(tǒng),然后再進(jìn)行下載操作。在使用loadrunner設(shè)計(jì)腳本時(shí)就要先在初始化部分寫登錄腳本,然后再action中寫下載操作,當(dāng)單個(gè)用戶運(yùn)行時(shí)我們可能看不到什么問題。當(dāng)用戶并發(fā)量較多時(shí),問題馬上暴露出來了。大部分用戶可能很長時(shí)間也沒有下載成功,大量的初始化登錄操作已經(jīng)給系統(tǒng)造成了很大的壓力,而在日常訪問中,這種大量短時(shí)間登錄的壓力是不容易出現(xiàn)的。這樣的測試結(jié)果可能無法達(dá)到我們的測試目標(biāo)。的確,不能處理較大的登錄吞吐可能已經(jīng)是系統(tǒng)的瓶頸了,我們可以通過這種全流程的測試方式發(fā)現(xiàn)登錄的問題。但是后續(xù)的測試我們可能就無法進(jìn)行下去了。當(dāng)項(xiàng)目組解決了登錄的吞吐問題時(shí),可能項(xiàng)目工期已經(jīng)十分緊張了,再進(jìn)行重要的下載功能測試可能已經(jīng)太晚了。

這種情況在測試過程中經(jīng)常會出現(xiàn),我們要如何繞過登錄盡早的進(jìn)行后續(xù)的下載操作呢?如果網(wǎng)站使用了cookie的機(jī)制,則我們可以嘗試使用下面的方法。

2怎么使用loadrunner模擬

Loadrunner的web函數(shù)中提供了幾個(gè)關(guān)于cookie的函數(shù)。

web_remove_cookie()

web_add_cookie()

web_cleanup_cookies();

web_reg_add_cookie();

這里我們?yōu)榱四Mcookie繞過登錄使用web_add_cookie();

首先獲取網(wǎng)站留在客戶端上的cookie都存儲了什么。通常主要內(nèi)容包括名字,值,過期時(shí)間,作用域和路徑,分為會話cookie和文件cookie。會話cookie存儲在內(nèi)存里,關(guān)閉瀏覽器后就沒有了,這種很難模擬。文件cookie是將cookie信息寫到硬盤上,關(guān)閉瀏覽器再次打開后仍可以使用。我們要模擬的就是這種存儲在硬盤文件里的cookie。我們觀察cookie文件的內(nèi)容,如果使用ie的話,在“C:Documents and Settings用戶名Local SettingsTemporary Internet Files”中的用戶名@域名的文件里,cookie存儲都是加密的,所以我們直接看并看不出什么特別的東西,也搞不清楚具體是什么。這時(shí)我們借助IE webdeveloper 工具獲取cookie值如下所示:

cdb_cookietime=2592000;cdb_smile=1D1;cdb_sid=71WKOd;cdb_auth=TzsVl16XRFahjqkfuWyoF5OzI%2BrekHgiy0YXJd8m1y9vq6aV4bg3GGMsa9s;cdb_visitedfid=20;cdb_onlineusernum=28

獲得了cookie信息后,我們進(jìn)行編輯loadrunner腳本。將cookie每個(gè)分號分行,使用UltraEdit進(jìn)行列模式操作,在每句后面加上域名。(域名在webdeveloper的Attributes下也可以找到domain對應(yīng)值),修改完成后如下。

web_add_cookie(“cdb_cookietime=2592000;domain=172.16.1.3”);

web_add_cookie(“cdb_smile=1D1;domain=172.16.1.3”);

web_add_cookie(“cdb_sid=71WKOd;domain=172.16.1.3”);

web_add_cookie(“cdb_auth=TzsVl16XRFahjqkfuWyoF5OzI%2BrekHgiy0YXJd8m1y9vq6aV4b

g3GGMsa9s;domain=172.16.1.3”);

web_add_cookie(“cdb_visitedfid=20;domain=172.16.1.3”);

web_add_cookie(“cdb_onlineusernum=28;domain=172.16.1.3”);

把這些值放在要訪問的url的web函數(shù)之前,你就可以繞過登錄進(jìn)行后續(xù)操作了。如:

Action()

{

web_add_cookie(“cdb_cookietime=2592000;DOMAIN=172.16.1.3”);

web_add_cookie(“cdb_smile=1D1;DOMAIN=172.16.1.3”);

web_add_cookie(“cdb_oldtopics=D280D39523D39418D;DOMAIN=172.16.1.3”);

web_add_cookie(“cdb_sid=eSuWgw;DOMAIN=172.16.1.3”);

web_add_cookie(“cdb_auth=TzsVl16XRFahjqkfuWyoF5OzI%2BrekHgiy0YXJd8m1y9vq6aV4bg3GGMsa9s;DOMAIN=172.16.1.3”);

web_add_cookie(“cdb_visitedfid=20;DOMAIN=172.16.1.3”);

web_url(“cookies”,“URL=http://172.16.1.3:8080/bbs/index.php”,“referer=http://172.16.1.3/newiweb/index/dealIndex.do?action=Index”,“Mode=HTML”,“RecContentType=text/html”,LAST);

return 0;

}

最后注明一下:loadrunner的web錄制功能是自動(dòng)的增加cookie的,只要在cookie不過期的情況下,我們不需要手工的增加cookie,當(dāng)出現(xiàn)錄制不上或錄制的值發(fā)生變化時(shí)可以手工進(jìn)行添加。

在loadrunner場景設(shè)計(jì)使用其他負(fù)載機(jī)器時(shí),同樣可以使用你本機(jī)的這個(gè)cookie值進(jìn)行,不會因?yàn)榭蛻舳藱C(jī)器發(fā)生變化而產(chǎn)生影響。

第四篇:LoadRunner測試總結(jié)

性能測試(并發(fā)負(fù)載壓力)測試分析-簡要篇

在論壇混了多日,發(fā)現(xiàn)越來越多的性能測試工程師基本上都能夠掌握利用測試工具來作負(fù)載壓力測試,但多數(shù)人對怎樣去分析工具收集到的測試結(jié)果感到無從下手,下面我就把個(gè)人工作中的體會和收集到的有關(guān)資料整理出來,希望能對大家分析測試結(jié)果有所幫助。

分析原則:

? 具體問題具體分析(這是由于不同的應(yīng)用系統(tǒng),不同的測試目的,不同的性能關(guān)注點(diǎn))? 查找瓶頸時(shí)按以下順序,由易到難。

服務(wù)器硬件瓶頸-〉網(wǎng)絡(luò)瓶頸(對局域網(wǎng),可以不考慮)-〉服務(wù)器操作系統(tǒng)瓶頸(參數(shù)配置)-〉中間件瓶頸(參數(shù)配置,數(shù)據(jù)庫,web服務(wù)器等)-〉應(yīng)用瓶頸(SQL語句、數(shù)據(jù)庫設(shè)計(jì)、業(yè)務(wù)邏輯、算法等)注:以上過程并不是每個(gè)分析中都需要的,要根據(jù)測試目的和要求來確定分析的深度。對一些要求低的,我們分析到應(yīng)用系統(tǒng)在將來大的負(fù)載壓力(并發(fā)用戶數(shù)、數(shù)據(jù)量)下,系統(tǒng)的硬件瓶頸在哪兒就夠了。? 分段排除法 很有效

分析的信息來源:

?1 根據(jù)場景運(yùn)行過程中的錯(cuò)誤提示信息

?2 根據(jù)測試結(jié)果收集到的監(jiān)控指標(biāo)數(shù)據(jù)

一.錯(cuò)誤提示分析

分析實(shí)例:?Error: Failed to connect to server “10.10.10.30:8080”: [10060] Connection

?Error: timed out Error: Server “10.10.10.30” has shut down the connection prematurely

分析:

?A、應(yīng)用服務(wù)死掉。

(小用戶時(shí):程序上的問題。程序上處理數(shù)據(jù)庫的問題)

?B、應(yīng)用服務(wù)沒有死

(應(yīng)用服務(wù)參數(shù)設(shè)置問題)

例:在許多客戶端連接Weblogic應(yīng)用服務(wù)器被拒絕,而在服務(wù)器端沒有錯(cuò)誤顯示,則有可能是Weblogic中的server元素的AcceptBacklog屬性值設(shè)得過低。如果連接時(shí)收到connection refused消息,說明應(yīng)提高該值,每次增加25%

?C、數(shù)據(jù)庫的連接

(1、在應(yīng)用服務(wù)的性能參數(shù)可能太小了

2、數(shù)據(jù)庫啟動(dòng)的最大連接數(shù)(跟硬件的內(nèi)存有關(guān)))

2Error: Page download timeout(120 seconds)has expired

分析:可能是以下原因造成?A、應(yīng)用服務(wù)參數(shù)設(shè)置太大導(dǎo)致服務(wù)器的瓶頸

?B、頁面中圖片太多

?C、在程序處理表的時(shí)候檢查字段太大多

二.監(jiān)控指標(biāo)數(shù)據(jù)分析

1.最大并發(fā)用戶數(shù):

應(yīng)用系統(tǒng)在當(dāng)前環(huán)境(硬件環(huán)境、網(wǎng)絡(luò)環(huán)境、軟件環(huán)境(參數(shù)配置))下能承受的最大并發(fā)用戶數(shù)。在方案運(yùn)行中,如果出現(xiàn)了大于3個(gè)用戶的業(yè)務(wù)操作失敗,或出現(xiàn)了服務(wù)器shutdown的情況,則說明在當(dāng)前環(huán)境下,系統(tǒng)承受不了當(dāng)前并發(fā)用戶的負(fù)載壓力,那么最大并發(fā)用戶數(shù)就是前一個(gè)沒有出現(xiàn)這種現(xiàn)象的并發(fā)用戶數(shù)。

如果測得的最大并發(fā)用戶數(shù)到達(dá)了性能要求,且各服務(wù)器資源情況良好,業(yè)務(wù)操作響應(yīng)時(shí)間也達(dá)到了用戶要求,那么OK。否則,再根據(jù)各服務(wù)器的資源情況和業(yè)務(wù)操作響應(yīng)時(shí)間進(jìn)一步分析原因所在。

2.業(yè)務(wù)操作響應(yīng)時(shí)間:

? 分析方案運(yùn)行情況應(yīng)從平均事務(wù)響應(yīng)時(shí)間圖和事務(wù)性能摘要圖開始。使用“事務(wù)性能摘要”圖,可以確定在方案執(zhí)行期間響應(yīng)時(shí)間過長的事務(wù)。

? 細(xì)分事務(wù)并分析每個(gè)頁面組件的性能。查看過長的事務(wù)響應(yīng)時(shí)間是由哪些頁面組件引起的?問題是否與網(wǎng)絡(luò)或服務(wù)器有關(guān)?

? 如果服務(wù)器耗時(shí)過長,請使用相應(yīng)的服務(wù)器圖確定有問題的服務(wù)器度量并查明服務(wù)器性能下降的原因。如果網(wǎng)絡(luò)耗時(shí)過長,請使用“網(wǎng)絡(luò)監(jiān)視器”圖確定導(dǎo)致性能瓶頸的網(wǎng)絡(luò)問題

3.服務(wù)器資源監(jiān)控指標(biāo):

內(nèi)存:UNIX資源監(jiān)控中指標(biāo)內(nèi)存頁交換速率(Paging rate),如果該值偶爾走高,表明當(dāng)時(shí)有線程競爭內(nèi)存。如果持續(xù)很高,則內(nèi)存可能是瓶頸。也可能是內(nèi)存訪問命中率低。Windows資源監(jiān)控中,如果ProcessPrivate Bytes計(jì)數(shù)器和ProcessWorking Set計(jì)數(shù)器的值在長時(shí)間內(nèi)持續(xù)升高,同時(shí)MemoryAvailable bytes計(jì)數(shù)器的值持續(xù)降低,則很可能存在內(nèi)存泄漏。

內(nèi)存資源成為系統(tǒng)性能的瓶頸的征兆:

很高的換頁率(high pageout rate);

進(jìn)程進(jìn)入不活動(dòng)狀態(tài);

交換區(qū)所有磁盤的活動(dòng)次數(shù)可高;

可高的全局系統(tǒng)CPU利用率;

內(nèi)存不夠出錯(cuò)(out of memory errors)

處理器:UNIX資源監(jiān)控(Windows操作系統(tǒng)同理)中指標(biāo)CPU占用率(CPU utilization),如果該值持續(xù)超過95%,表明瓶頸是CPU。可以考慮增加一個(gè)處理器或換一個(gè)更快的處理器。如果服務(wù)器專用于SQL Server,可接受的最大上限是80-85%

合理使用的范圍在60%至70%。Windows資源監(jiān)控中,如果SystemProcessor Queue Length大于2,而處理器利用率(Processor Time)一直很低,則存在著處理器阻塞。

CPU資源成為系統(tǒng)性能的瓶頸的征兆:

很慢的響應(yīng)時(shí)間(slow response time)

CPU空閑時(shí)間為零(zero percent idle CPU)

過高的用戶占用CPU時(shí)間(high percent user CPU)

過高的系統(tǒng)占用CPU時(shí)間(high percent system CPU)

長時(shí)間的有很長的運(yùn)行進(jìn)程隊(duì)列(large run queue size sustained over time)

磁盤I/O:UNIX資源監(jiān)控(Windows操作系統(tǒng)同理)中指標(biāo)磁盤交換率(Disk rate),如果該參數(shù)值一直很高,表明I/O有問題。可考慮更換更快的硬盤系統(tǒng)。Windows資源監(jiān)控中,如果 Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec頁面讀取操作速率很低,則可能存在磁盤瓶徑。

I/O資源成為系統(tǒng)性能的瓶頸的征兆 :

過高的磁盤利用率(high disk utilization)

太長的磁盤等待隊(duì)列(large disk queue length)

等待磁盤I/O的時(shí)間所占的百分率太高(large percentage of time waiting for disk I/O)太高的物理I/O速率:large physical I/O rate(not sufficient in itself)

過低的緩存命中率(low buffer cache hit ratio(not sufficient in itself))

太長的運(yùn)行進(jìn)程隊(duì)列,但CPU卻空閑(large run queue with idle CPU)

4.?dāng)?shù)據(jù)庫服務(wù)器:

SQL Server數(shù)據(jù)庫:SQLServer資源監(jiān)控中指標(biāo)緩存點(diǎn)擊率(Cache Hit Ratio),該值越高越好。如果持續(xù)低于80%,應(yīng)考慮增加內(nèi)存。如果Full Scans/sec(全表掃描/秒)計(jì)數(shù)器顯示的值比1或2高,則應(yīng)分析你的查詢以確定是否確實(shí)需要全表掃描,以及SQL查詢是否可以被優(yōu)化。Number of Deadlocks/sec(死鎖的數(shù)量/秒):死鎖對應(yīng)用程序的可伸縮性非常有害,并且會導(dǎo)致惡劣的用戶體驗(yàn)。該計(jì)數(shù)器的值必須為0。Lock Requests/sec(鎖請求/秒),通過優(yōu)化查詢來減少讀取次數(shù),可以減少該計(jì)數(shù)器的值。

Oracle數(shù)據(jù)庫:如果自由內(nèi)存接近于0而且?guī)炜齑婊驍?shù)據(jù)字典快存的命中率小于0.90,那么需要增加

SHARED_POOL_SIZE的大小。

快存(共享SQL區(qū))和數(shù)據(jù)字典快存的命中率:

select(sum(pins-reloads))/sum(pins)from v$librarycache;

select(sum(gets-getmisses))/sum(gets)from v$rowcache;

自由內(nèi)存:select * from v$sgastat where name=’free memory’;如果數(shù)據(jù)的緩存命中率小于0.90,那么需要加大DB_BLOCK_BUFFERS參數(shù)的值(單位:塊)。緩沖區(qū)高速緩存命中率:

select name,value from v$sysstat where name in('db block gets’,'consistent gets','physical reads');

Hit Ratio = 1-(physical reads /(db block gets + consistent gets))如果日志緩沖區(qū)申請的值較大,則應(yīng)加大LOG_BUFFER參數(shù)的值。

日志緩沖區(qū)的申請情況 :

select name,value from v$sysstat where name = 'redo log space requests';如果內(nèi)存排序命中率小于0.95,則應(yīng)加大SORT_AREA_SIZE以避免磁盤排序。

內(nèi)存排序命中率 :

select round((100*b.value)/decode((a.value+b.value), 0, 1,(a.value+b.value)), 2)from v$sysstat a, v$sysstat b where a.name='sorts(disk)' and b.name='sorts(memory)'

注:上述SQL Server和Oracle數(shù)據(jù)庫分析,只是一些簡單、基本的分析,特別是Oracle數(shù)據(jù)庫的分析和優(yōu)化,是一門專門的技術(shù),進(jìn)一步的分析可查相關(guān)資料。

說明:

以上只是個(gè)人的體會和部分資料的整理,并不代表專家之言。算拋磚引玉,有不同看法和更深入的分析的,希望大家勇要發(fā)言,以推動(dòng)我們國內(nèi)的性能測試工作。

第五篇:LoadRunner學(xué)習(xí)總結(jié)

LoadRunner學(xué)習(xí)小結(jié)

今年十月份我到北京跟張坤學(xué)習(xí)性能測試知識,共花了三個(gè)星期學(xué)習(xí)LoadRunner。以下是我的學(xué)習(xí)小結(jié)。

一. 什么是LoadRunner LoadRunner是一種預(yù)測系統(tǒng)行為和性能的工業(yè)標(biāo)準(zhǔn)級負(fù)載測試工具。通過以模擬多個(gè)用戶實(shí)施并發(fā)負(fù)載測試及實(shí)時(shí)性能檢測的方式來確認(rèn)和查找問題,能對整個(gè)企業(yè)架構(gòu)進(jìn)行測試。

二. LoadRunner的優(yōu)點(diǎn)

1.輕松創(chuàng)建虛擬用戶:通過記錄下業(yè)務(wù)流程轉(zhuǎn)為測試腳本,在機(jī)器上產(chǎn)生多個(gè)用戶訪問,減少負(fù)載測試需要的硬件和人力資源。

2.創(chuàng)建真實(shí)的負(fù)載:可以通過Controller設(shè)定負(fù)載方案,如定義用戶在什么時(shí)候訪問系統(tǒng)以產(chǎn)生負(fù)載,所有用戶同時(shí)執(zhí)行一個(gè)動(dòng)作來模擬峰值負(fù)載情況等。3.實(shí)時(shí)監(jiān)測器:可以實(shí)時(shí)顯示交易性能數(shù)據(jù)(如響應(yīng)時(shí)間)和其他系統(tǒng)組件如數(shù)據(jù)庫,網(wǎng)絡(luò)等的實(shí)時(shí)性能。

4.分析結(jié)果以精確定位問題所在:LoadRunner能收集匯總所有測試數(shù)據(jù),提供高級的分析和報(bào)告工具。

三. LoadRunner的安裝與使用

1.安裝過程詳見上傳的LoadRunner使用手冊,在此不再詳細(xì)介紹。2.具體使用:

點(diǎn)擊File新建錄制文件,也可以點(diǎn)擊下面的NEW快捷鍵進(jìn)行新建。使用File新建,會彈出協(xié)議選擇窗口,選擇新的單協(xié)議腳本(New Single Protocol Script)的Web(HTTP/HTML)項(xiàng),確定即可(選擇Web項(xiàng)是因?yàn)槲覀儨y試的是Web應(yīng)用)。接著會彈出開始錄制的設(shè)置項(xiàng),需要寫入錄入系統(tǒng)的地址,點(diǎn)擊確定后就會根據(jù)錄入地址展現(xiàn)系統(tǒng)頁面,開始錄制腳本,出現(xiàn)小工具條:

第一個(gè)按鈕為錄制鍵 第二個(gè)為回放腳本鍵 第三個(gè)為停止錄制鍵 第四個(gè)為暫停錄制鍵 第五個(gè)為編譯腳本鍵

第六個(gè)為創(chuàng)建新的Action鍵。LR的錄制腳本分為三個(gè)部分,vuser_init、vuser_end和 Action。腳本循環(huán)執(zhí)行時(shí),只執(zhí)行一次vuser_init和vuser_end,而多次循環(huán)Action部分。比如錄制投保業(yè)務(wù)時(shí),登陸系統(tǒng)部分放入vuser_init,退出登陸放到vuser_end,中間的投保操作放到Action中,則循環(huán)執(zhí)行時(shí)就會登陸一次投保系統(tǒng)開始反復(fù)執(zhí)行投保操作直到結(jié)束退出系統(tǒng)。

第七個(gè)為用來改變錄制的options設(shè)置按鈕

第八個(gè)和第九個(gè)為插入事務(wù)的起始點(diǎn)和結(jié)束點(diǎn)鍵,結(jié)合起來構(gòu)成一個(gè)完整事物,用來衡量服務(wù)器的性能。比如錄制腳本過程中,投保系統(tǒng)的查詢投保單號操作,可以在輸入完查詢信息后點(diǎn)擊查詢按鈕前插入事務(wù)的起始點(diǎn),查詢出數(shù)據(jù)后插入事務(wù)的結(jié)束點(diǎn),這樣在運(yùn)行測試腳本時(shí),Loadrunner在運(yùn)行到該事務(wù)時(shí),便會計(jì)算出這個(gè)查詢操作所花時(shí)間,便于衡量服務(wù)器執(zhí)行查詢操作的性能。

第十個(gè)為插入集合點(diǎn)鍵,可用于衡量在加重負(fù)載的情況下服務(wù)器的性能。比如要驗(yàn)證系統(tǒng)是否能承受100人同時(shí)進(jìn)行報(bào)案操作,便可在腳本錄入過程中,點(diǎn)擊報(bào)案確認(rèn)鍵操作前插入集合點(diǎn),這樣當(dāng)腳本運(yùn)行到集合點(diǎn)時(shí),Loadrunner會讓100個(gè)虛擬用戶同時(shí)點(diǎn)擊報(bào)案確認(rèn)按鈕(如果有的用戶還沒運(yùn)行到集合點(diǎn),先到用戶要等未到用戶一起操作)進(jìn)行報(bào)案,從而達(dá)到測試目的。

最后一個(gè)為設(shè)置驗(yàn)證點(diǎn)鍵,在創(chuàng)建事物后,設(shè)置一個(gè)驗(yàn)證點(diǎn)可以用來確認(rèn)事物執(zhí)行是否成功。比如進(jìn)行查詢事務(wù)操作時(shí),LR只要檢測到網(wǎng)頁的響應(yīng),就認(rèn)為事務(wù)pass,而不管顯示頁面內(nèi)容是否正確。因此為了檢查Web服務(wù)器返回的網(wǎng)頁是否正確,可以插入Text/Image檢查點(diǎn),驗(yàn)證網(wǎng)頁上是否存在指定的Text或Image。

設(shè)置驗(yàn)證點(diǎn)時(shí),如果我們驗(yàn)證的文本內(nèi)容是中文,有時(shí)會返回?zé)o法找到驗(yàn)證內(nèi)容的報(bào)錯(cuò)信息,而頁面顯示又是正確的,出現(xiàn)問題的原因可能是因?yàn)長R對中文的支持部好,盡量選擇驗(yàn)證信息為數(shù)字或字母;也可能是設(shè)置問題,可以嘗試將Tools->Recording Options->HTTP Properties下的Advanced選項(xiàng)里設(shè)置支持UTF-8,再檢查開發(fā)人員有沒有設(shè)置支持中文。

錄制結(jié)束后,先點(diǎn)擊保存腳本,同時(shí)為腳本命名。然后編譯腳本,看是否存在語法錯(cuò)誤,編譯成功后,即可回放,看錄制腳本是否成功。

LoadRunner錄制得到的腳本基本沒有錯(cuò)誤,不像robot會有錄入數(shù)據(jù)的缺失,只是會錄入一些非錄入系統(tǒng)的網(wǎng)頁信息,根據(jù)地址可以識別并刪除掉。

四. LoadRunner腳本錄制學(xué)習(xí)小結(jié)

1.LoadRunner錄制腳本,主要是為了進(jìn)行壓力測試,所以跑流程時(shí),跑了主要流程即可,也就是系統(tǒng)必須的信息錄入就可以了。2.LoadRunner的腳本運(yùn)行過程中,只能用于一次業(yè)務(wù)辦理的數(shù)據(jù)需要做參數(shù)化,如車輛車架號,車牌,報(bào)案號等,以免出現(xiàn)重復(fù)投保或報(bào)案無法立案現(xiàn)象,不能繼續(xù)進(jìn)行下去。參數(shù)化步驟:

1)將需要做參數(shù)化的數(shù)據(jù)右鍵點(diǎn)擊,選擇Replace with a parameter,進(jìn)行設(shè)置。2)在彈出編輯框里,設(shè)置易懂的參數(shù)名稱,再點(diǎn)擊Properties進(jìn)行屬性設(shè)置。3)點(diǎn)擊Create Table 按鈕,生成參數(shù)表格,再點(diǎn)擊Edit with Notepad按鈕,即可在記事本里添加新的參數(shù),添加完后再次回車(不回車可能最后條數(shù)據(jù)讀取不到)關(guān)閉,參數(shù)化操作完成。

4)使用Ctrl +H鍵可以找到替換同樣的需要參數(shù)化的數(shù)據(jù)。

3.腳本跑流程過程中,因?yàn)闃I(yè)務(wù)運(yùn)轉(zhuǎn),前面生成的投保單要接著進(jìn)行提交核保業(yè)務(wù),而每次生成的投保單號不一樣,用于進(jìn)行提交核保的單號也要與之前的保持一致,因此需要做關(guān)聯(lián)處理,讀取到生成的新投保單號給提交核保流程。關(guān)聯(lián)步驟:

1).查找關(guān)聯(lián)數(shù)據(jù)第一次出現(xiàn)的位置,判斷該數(shù)據(jù)是由什么函數(shù)返回的。

2).在樹形結(jié)構(gòu)里點(diǎn)擊返回該數(shù)據(jù)值的函數(shù),看它的Server Response信息,用復(fù)制的關(guān)聯(lián)數(shù)據(jù)進(jìn)行查找它的返回語句,找到區(qū)分度明顯的語句(不一定要是第一個(gè)返回語句),然后使用web_reg_save_param函數(shù)進(jìn)行關(guān)聯(lián)。

注:關(guān)聯(lián)函數(shù)一定要寫在第一個(gè)返回該數(shù)據(jù)值的函數(shù)前。

3).web_reg_save_param(const char *ParamName, , LAST);

函數(shù)的第一個(gè)參數(shù)是用來對關(guān)聯(lián)數(shù)據(jù)進(jìn)行定義的,取名最好可讀性強(qiáng);第二個(gè)參數(shù)是用來標(biāo)識關(guān)聯(lián)數(shù)據(jù)在返回語句里的具體位置的,寫出該數(shù)據(jù)的左右邊界,程序才能識別;LAST表示屬性列的結(jié)束。比如辦理理賠業(yè)務(wù)的流程號,在服務(wù)器的返回語句里是:

做關(guān)聯(lián)為:

web_reg_save_param(“LogFlowID”,“LB=name=flowID type=”hidden“ value=”,“RB=>”,LAST);定義的參數(shù)名就叫LogFlowID,表示流程號,易于明白;左邊界從name取就可以標(biāo)識了,也可取長點(diǎn)或短點(diǎn),只要能區(qū)分;右邊界只有>,寫上就好;最后寫上LAST。

在定義的左右邊界中,如果有雙引號,在腳本中是需要轉(zhuǎn)義的,因?yàn)殡p引號在C中是有意義的,這里只要表示語句信息,加上右斜杠。尖括號直寫。

左右邊界也需要用雙引號括起來。定義好的參數(shù)寫在程序中,需要在加上單尖括號:swfLogFlowID={LogFlowID} 五. 腳本執(zhí)行過程中的報(bào)錯(cuò)處理

1.vuser_init.c(3051): Error-26377: No match found for the requested parameter “proposalNo”.Check whether the requested boundaries exist in the response data.Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size [MsgId: MERR-26377] 2.vuser_init.c(3051): web_submit_data(“UIPrPoEnInputNext.jsp”)highest severity level was “ERROR”, 4312 body bytes, 258 header bytes [MsgId: MMSG-26388]

兩個(gè)錯(cuò)誤一起出現(xiàn),出錯(cuò)語句都是在關(guān)聯(lián)函數(shù)下的提交數(shù)據(jù)函數(shù)位置,但是具體出錯(cuò)有可能是:

1).關(guān)聯(lián)函數(shù)左右邊界沒寫對,所有信息都要用字符輸入,不能是中文或其他。

2).在關(guān)聯(lián)函數(shù)確認(rèn)寫對的情況下,看提交數(shù)據(jù)函數(shù)中的業(yè)務(wù)設(shè)置,比如有可能是因?yàn)楸尾樵冋Z句,設(shè)置的查詢時(shí)間是過去的時(shí)間,新生成的投保單當(dāng)然查不到,這樣程序也會報(bào)這樣的錯(cuò)。

3.loadrunner 執(zhí)行理賠的立案處理,錄制好腳本后,回放,報(bào)錯(cuò):

腳本日志信息提示:

1.Action.c(400): Error-26366: “Text=立案信息提交成功” not found for web_reg_find [MsgId: MERR-26366] 2.Action.c(400): web_submit_data(“claimSave.do”)highest severity level was “ERROR”, 4424 body bytes, 258 header bytes [MsgId: MMSG-26388] 腳本執(zhí)行過程停止在立案信息提交頁面,錯(cuò)誤原因:數(shù)據(jù)問題,可能是有的應(yīng)該變化的信息沒有變。

在該流程中,一個(gè)報(bào)案號只能做一次立案,而初始腳本沒有設(shè)置參數(shù)、關(guān)聯(lián),使用保單號進(jìn)行查詢,錯(cuò)誤被掩蓋。在立案系統(tǒng)中,一個(gè)保單號可以重復(fù)報(bào)案,但是一個(gè)報(bào)案號只能一次立案,要跑通流程,需要先將這一保單再重復(fù)報(bào)案,得到新的報(bào)案號。

六. 性能測試的場景設(shè)置

腳本錄制完畢后,接著準(zhǔn)備測試場景。1.首先準(zhǔn)備測試數(shù)據(jù)。比如車險(xiǎn)投保,需要投保人和車架號信息來唯一標(biāo)識一輛被保車,因此就需要將投保人和車架號做參數(shù)化處理,編輯文本框錄入大量數(shù)據(jù)讓腳本唯一讀取:

1).錄入投保人參數(shù),車架號參數(shù),過程同腳本錄制的參數(shù)化處理

2).因?yàn)橥侗H撕蛙嚰芴栆黄鹕梢粭l投保數(shù)據(jù),可設(shè)置車架號隨投保人參數(shù)一起讀取,設(shè)置步驟為:

投保人文件存放路徑--File path

投保人參數(shù)數(shù)據(jù)讀取方式

腳本按列名讀取參數(shù),每行數(shù)據(jù)讀取一次,每次循環(huán)取一次新值。接著設(shè)置車架號參數(shù)信息:

車架號參數(shù)讀取文件路徑設(shè)為和投保人文件路徑一樣

腳本按列名讀取參數(shù),行號選擇和讀取的投保人數(shù)據(jù)同一行

這樣得到所需的投保單生成參數(shù)數(shù)據(jù)

2.設(shè)置測試場景

點(diǎn)擊Tools->Create Controller Scenarios,彈出場景類型選擇框:

錄入需要的虛擬用戶數(shù),選擇生成結(jié)果存放路徑和組名。確定后進(jìn)入具體設(shè)置頁面:

Quantity表示虛擬用戶個(gè)數(shù),group name為組名。

1).設(shè)置運(yùn)行時(shí)間選項(xiàng)Run – time Settings

選擇循環(huán)次數(shù)Run Logic->Iteration Count,設(shè)置循環(huán)10次,虛擬用戶數(shù)為之前設(shè)置的5人,則預(yù)計(jì)一共可生成50張投保單。

設(shè)置思考時(shí)間,思考時(shí)間通常是錄制腳本過程中,填寫頁面信息花費(fèi)的時(shí)間,選擇忽略項(xiàng),節(jié)省跑腳本的時(shí)間。

設(shè)置網(wǎng)絡(luò)連接時(shí)間,點(diǎn)擊網(wǎng)絡(luò)協(xié)議項(xiàng)Internet Protocol 的Options鍵,將彈出頁面里的HTTP-request connect timeout和 HTTP-request receive timeout的數(shù)值改為1000。使得能在網(wǎng)絡(luò)狀況不太好的情況下向服務(wù)器發(fā)送接收數(shù)據(jù)。

2).設(shè)置Edit Schedule

選擇虛擬用戶加載方式:

可以一次加載所有用戶,也可以按需要設(shè)置,一秒加載一個(gè)用戶或其他。

選擇結(jié)束方式:

當(dāng)選擇一秒加載一個(gè)用戶時(shí),結(jié)束設(shè)置為直到跑完所有腳本停止執(zhí)行。如果選擇選擇一次加載所有用戶可以選擇運(yùn)行多少時(shí)間后停止和不停止選項(xiàng)。

這些設(shè)置完成后,一次測試場景布置完成。可以進(jìn)行基線檢查或單點(diǎn)并發(fā)測試。

七. 性能測試步驟

一).除測試工具外性能測試必備的系統(tǒng)及業(yè)務(wù)知識

1、熟悉保險(xiǎn)行業(yè)業(yè)務(wù)特點(diǎn),有助于與開發(fā)和客戶討論需求,制定測試用例;

2、熟悉系統(tǒng)的實(shí)現(xiàn)特點(diǎn),開發(fā)實(shí)現(xiàn)方式,有助于選擇程序處理復(fù)雜、消耗系統(tǒng)資源的用例點(diǎn);

3、熟悉數(shù)據(jù)結(jié)構(gòu),了解數(shù)據(jù)存儲規(guī)則,對腳本調(diào)試、數(shù)據(jù)準(zhǔn)備、測試執(zhí)行和監(jiān)視都有幫助;

4、熟悉系統(tǒng)所使用的數(shù)據(jù)庫、操作系統(tǒng)、中間件的監(jiān)視和性能問題查看,有助于測試監(jiān)視和發(fā)現(xiàn)問題;

5、熟悉系統(tǒng)架構(gòu)及系統(tǒng)集成方式,有助于分析及明確定位性能問題。

二)性能測試執(zhí)行過程 1.基線檢查

1).目的:驗(yàn)證環(huán)境是否可用;

驗(yàn)證腳本是否能在場景正常執(zhí)行。

2).方法:1個(gè)人單獨(dú)循環(huán)5次--沒有其他人干擾,干凈的環(huán)境

3).結(jié)果:一般一個(gè)事物的響應(yīng)時(shí)間超過3秒就可能存在問題,要提報(bào)開發(fā)人

2.單點(diǎn)并發(fā)

1).目的:為了快速的發(fā)現(xiàn)問題,如多進(jìn)程的鎖機(jī)制,看是否相互間有影響。2).方法:一般是10人或20人執(zhí)行10到15分鐘,執(zhí)行過程忽略思考時(shí)間。

忽略思考時(shí)間可以減少客戶端時(shí)間,加快向服務(wù)器傳送數(shù)據(jù)速度,很大程度上增大了服務(wù)器的壓力,20個(gè)人單點(diǎn)并發(fā)的壓力就相當(dāng)于200人正常執(zhí)行帶給服務(wù)器的壓力。

3).單點(diǎn)測試的數(shù)據(jù)可以用來進(jìn)行混發(fā)測試,但是有可能單點(diǎn)測試的數(shù)據(jù)不足以進(jìn)行混發(fā),需要自己再準(zhǔn)備足夠的數(shù)據(jù)。

3.方案測試--混發(fā)測試

1).目的:模擬生產(chǎn)環(huán)境

2).方法:執(zhí)行1小時(shí)左右,加上思考時(shí)間

八.資源監(jiān)控及調(diào)優(yōu)

性能測試執(zhí)行過程中,需要監(jiān)控系統(tǒng)各項(xiàng)資源,看是否能滿足用戶實(shí)際需要,如內(nèi)存使用,SQL SERVER等,結(jié)合LR生成的分析報(bào)告,分析系統(tǒng)哪里可能存在問題,需要改進(jìn),進(jìn)行調(diào)優(yōu),這也是我之后要接著進(jìn)行學(xué)習(xí)的地方。

1.學(xué)習(xí)使用weblogic,了解weblogic常配參數(shù)的意義。通過weblogic自身的監(jiān)控臺,可以了解到目前的JVM的大小、數(shù)據(jù)庫連接池的使用情況以及目前連接的客戶端數(shù)量以及請求狀況等等。

2.學(xué)習(xí)oracle使用,熟悉它的體系結(jié)構(gòu),尤其是oracle10里 的awr,awr能采集與統(tǒng)計(jì)數(shù)據(jù),并從那些統(tǒng)計(jì)數(shù)據(jù)中導(dǎo)出性能量度,以跟蹤潛在的問題。

3.需要繼續(xù)學(xué)習(xí)LR的理論知識和實(shí)際操作,參考書籍《Web性能測試實(shí)戰(zhàn)》、《軟件性能測試過程詳解與案例剖析》

下載LoadRunner檢查點(diǎn)使用小結(jié)word格式文檔
下載LoadRunner檢查點(diǎn)使用小結(jié).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    loadrunner計(jì)數(shù)器分析總結(jié)

    Loadrunner性能計(jì)數(shù)器分析總結(jié) 2009-12-02 14:48 Memory: 內(nèi)存使用情況可能是系統(tǒng)性能中最重要的因素。如果系統(tǒng)“頁交換”頻繁,說明內(nèi)存不足。“頁交換”是使用稱為“頁面”......

    Loadrunner中參數(shù)設(shè)置詳細(xì)分析

    Loadrunner中參數(shù)設(shè)置詳細(xì)分析 做負(fù)載或者壓力測試時(shí),很多人選擇使用了Loadrunner測試工具。該工具的基本流程是先將用戶的實(shí)際操作錄制成腳本,然后產(chǎn)生數(shù)千個(gè)虛擬用戶運(yùn)行腳......

    加油站執(zhí)法檢查點(diǎn)5則范文

    加油站執(zhí)法檢查點(diǎn): 1、違反本辦法第五條第(三)項(xiàng)規(guī)定的:“使用屬于強(qiáng)制檢定的計(jì)量器具應(yīng)當(dāng)?shù)怯浽靸裕虍?dāng)?shù)刭|(zhì)量技術(shù)監(jiān)督部門備案,并配合質(zhì)量技術(shù)監(jiān)督部門及其指定的法定計(jì)量檢定......

    定向越野檢查點(diǎn)說明

    五,關(guān)于檢查點(diǎn)說明 在定向越野比賽中,參與者在具備讀圖記圖及確立站立點(diǎn),熟練使用指北針以外,還需要掌握檢查點(diǎn)說明符號意義。定向越野的一個(gè)重要目標(biāo),就是通過尋找檢查點(diǎn)的方式,......

    sqlldr使用小結(jié)

    sqlldr使用小結(jié) sqlldr userid=lgone/tiger control=a.ctl LOAD DATA INFILE ’t.dat’ // 要導(dǎo)入的文件 // INFILE ’tt.date’ // 導(dǎo)入多個(gè)文件// INFILE * // 要導(dǎo)入的......

    GridCtrl使用小結(jié)

    http://www.tmdps.cn/ GridCtrl使用詳解 CGridCtrl類主要是通過grid樣式顯示數(shù)據(jù) 在單文檔中的使用方法 步驟一 初始化 在CView類的.h頭文件中包含文件: #include......

    git使用小結(jié)

    git使用小結(jié) 1. git-config 配置git,一般需要配置的是user.name,user.email,有時(shí)sendemail.smtpserver也要配置,比如,我使用msmtp: git-config –global sendemail.smtpserver /us......

    ICC使用小結(jié)

    ICC使用小結(jié)(1) ICC的輸入文件 MilkyWay(physical library),TLUPlus文件(interconnect文件),lib文件(logical library),netlist,constraints(sdc),floorplan文件(.fp或.def) 由于ICC會使用Mil......

主站蜘蛛池模板: 天干夜天天夜天干天2004年| 国产无遮挡又黄又爽免费网站| 中国孕妇变态孕交xxxx| 伊人久久婷婷五月综合97色| 欧美性受xxxx黑人猛交| 国产精品十八禁在线观看| 大地资源在线观看官网第三页| 日本熟妇hdsex视频| 国产精品爆乳奶水无码视频免费| 无码精品人妻 中文字幕| 亚洲а∨天堂2014在线无码| 亚洲不卡av一区二区三区| 两个人看的www视频免费完整版| 无码人妻一区二区三区麻豆| 国产精品久久久久精品一区二区| 在线高清理伦片a| 亚洲日韩av无码美腿丝袜| 久久久久亚洲精品无码系列| 中字幕一区二区三区乱码| 亚洲色精品vr一区二区三区| 狠狠噜狠狠狠狠丁香五月| 国产a精彩视频精品视频下载| 欧美精品久久久久久久自慰| 色婷婷在线精品国自产拍| 国产99久久久国产精品免费看| av免费不卡国产观看| 天堂中文最新版在线中文| 麻豆国产原创视频在线播放| 国产韩国精品一区二区三区久久| 久久夜色撩人精品国产小说| 欧美伊香蕉久久综合网另类| 一区二区狠狠色丁香久久婷婷| 色八a级在线观看| 免费国产污网站在线观看不要卡| 最近免费中文字幕大全免费版视频| 中文乱码字慕人妻熟女人妻| 亚洲国产综合另类视频| 伊人久久大香线蕉综合中文字幕| 免费ā片在线观看| 天天影视网天天综合色| 国产av无码专区亚洲版综合|